windows 10 loudspeaker used as microphone - audio

I have a computer that uses any loudspeaker as microphon and loudspeaker at once, no matter it's a build in, connected via jack or an USB-Device. This renders the audio-system useles as it created a feedbeck-loop.
How I can reconfigure this.

Related

Establish a connection between smartphone and PC via Bluetooth automatically

I'm trying to establish a connection between my PC running Ubuntu and my iPhone via Bluetooth automatically when it becomes available, after being manually paired beforehand. I've seen this to be possible with certain peripherals, mainly audio. For example, my phone will automatically connect to a Bluetooth speaker when it is turned on and Bluetooth is active on my phone; another example is my phone automatically connects to my car's radio system via Bluetooth when I turn the car on.
I'm not able to connect my phone to my PC without first initiating the connection from the smartphone's Bluetooth menu. I'm thinking that I could possibly write an application for the PC to attempt to connect to the device every few minutes or something, but it seems that the phone needs to be the device to initiate the connection.
The only information that I need for what I'm trying to do ultimately is that the devices can pair successfully. Essentially I'm trying to build a sort of proximity trigger between my phone and my PC without using Wi-Fi and GPS - I can't use these for some specific reasons.
Is there any way to make this happen?
Yes this should be doable as long as you use the Background Processing feature for iOS apps. In the example I'll give below, we'll have the PC be the peripheral and the phone be the central, but you can really have it working either way. You will need to do the following:-
First initial connection needs to be performed in the foreground (this is due to iOS's background limitations).
On the iOS side, you need an application that acts as a central that scans and connects to the remove device (check this example as a starting point).
Upon connection, you need to bond with the PC. Bonding is important as it will prevent you from having to do the pairing again in the future. However, pairing/bonding is managed by the iPhone's OS so you cannot write it in your application, so the workaround is to have an encrypted characteristic on the PC side that will force the iPhone to bond (this is covered later).
On the PC side, you need to have a BlueZ script that acts as a peripheral that is always advertising. You can do this using bluetoothctl (check the examples here and here).
Before you start advertising, you need to have a GATT server on the PC side (to do this, check this example).
When registering characteristics, ensure that one of them has the encrypt-read property (you can find a full list of the properties here).
Now when you attempt to read this characteristic from the iOS side, the two devices should bond (make sure that your PC is bondable which you can do this via these commands).
Once the devices are paired, your iOS app needs to be working in the background constantly scanning and attempting to connect to the same peripheral (have a look at this and this example).
You can find more useful information at the links below:-
Getting started with Bluetooth Low Energy
The Ultimate Guide to CoreBluetooth Development
How to manage Bluetooth devices on Linux using bluetoothctl

How to send large text over Bluetooth low energy

I have to send large text towards the server, but each time single packet is coming on the server.
I have to send commands and data to the server and vice versa, I can send commands but no data. Already looked over for several threads but unable to send a large text. Using Android device as server and client.
Can someone please share any working example.
Few More informations
1) Large data ranges 0- 10KB
2) Min Android OS 4.4
Let me add one Possible Example;
Suppose I have a Standalone Music player with a remote app in Android.
I started a playlist of 100 Songs (All songs are on Player not on Android, So Not using RFCOMM for streaming).
I remotely can place any commands like play/ pause/ Next/ Prev/ Vol+/ Vol- etc.
But List of songs should be sent on Player from remote (This is the part where data suppose to be huge)
Once players started with Playlist, my phone can be undiscoverable or out of the range or all possible cases to not communicating with the player. Meanwhile, I can Manually operate player, but same should be reported somewhere locally.
Once again I will connect with Player, Both will sync and share logs.

Reading Bluetooth data and command (Raspberry pi 3)

I am currently working on a project that make me control media center and a few domotic parts in my living room.
I have connected on my raspberry pi 3 a NAS, my Spotify account (with hifiberry, controls to close my amp, my PC and a few lights...
At first to control it all I programmed a web server that I can access on my phone. That made the job but it is not completely user friendly since I have to have my phone go to the interface and do whatever I have to... And I'm not a web designer 😁 it's far from perfect!
I've made some research and I have decided to build a bluetooth remote control (raspberry pi 3 do have Bluetooth low energy).
Since nothing exist as I want, it is going to be a custom one made with Arduino mini and hm10 module.
But I'm stuck on the raspberry part!
How can I read the Bluetooth data send by my remote and launch scripts according to the command sent?
Via a serial listener of some kind?
Yes, in fact, you should use a serial port to connect your pi with Bluetooth module.
You then use software input information for your purposes, but you must first implement the hardware and hardware interface first.
You can build application software with the Python programming language.

How to make A2DP and HSP work simultaneously

I have a bluetooth headset. When connecting it to Windows 10, it installs two profiles in Playback devices list:
Hands-Free. (HSP profile)
Stereo. (A2DP profile)
The Second one (Stereo) is set to be the "Default Device" and the "Default Communication Device" on the system.
When I start any program that uses the mic (recorder, chat, VoIP Calls, gaming, etc.) The sound suddenly stops working And I can only use the mic until I stop the recorder or the call.
To enable the sound again I need to make the Hands-Free (HSP) profile handle both input and output (sound and mic). Unfortunately, HSP gives really poor sound quality.
I want to know If there is a way, using code, I can change Bluetooth behavior so the two profiles work simultaneously. One handles the sound and one handles the mic so I can have high quality sound and use the mic at the same time.
You will probably never find a solution. I had the same problem (I was trying to create a walkie talkie with 2 headsets connected to the same smartphone).
On Windows (but also on Android) you can't access directly to a BT-microphone or BT-speaker because it is automatically detected as BT headset and the OS take the control of the device.
Your app can then access the OS-device and not directly the hardware device. The only OS able to do that was Symbian I think which had the most BT-protocols. On Windows you will probably never be able to do that and on Android you have to write your own A2DP-protocol if you want to access the device directly without OS interference.
So sad...
Luckily, under windows you can define different devices for communications and sound.
So, you have two choices:
Choosing Hands-free for both mic/speaker only for communication (which will switch back to A2DP after the call/teams).
Choosing another mic for communication which allow you to still use the speaker profile even in communication.
That is a bluetooth restriction : A2DP (high quality audio) cannot be use simultaneously with HFP (hands-free profile)

UWP App: Interact with a windows application with something else than a mouse/keyboard?

I'm currently doing a test UWP app, the goal would be to put this on a Raspberry PI with Win 10 IOT ont it.
I've not much content, the application just display all the zodiac signs, and when one signed is clicked, it displays the current sign information. This will be display on a monitor here. So I would like to be able to navigate between sign, with a remote by example(but I'm open to any other proposal).
What would be the more adequate to navigate on the application(knowing that I don't need to enter anything, that it's not a touch screen but a simple monitor).
Thank you
You could use the GPIO port on the Raspberry Pi to connect the device with any of external controllers of your choice. Wired buttons would be pretty simple, and for a remote your could use an infrared receiver. The GPIO allows you to interact with pretty much anything electronic so the possibilities are pretty much endless.
For interacting with the GPIO port you need to add a reference to the "Windows IoT Extension SDK" to your universal windows app project.
The samples repository has code examples on how to interact with the GPIO port, and many of them are explained with tutorials.

Resources