quiet / org.quietmodem.Quiet

Quiet for Android - TCP over sound
1.43k stars 125 forks source link

Some reliablitiy issue #8

Closed vishal2947 closed 7 years ago

vishal2947 commented 7 years ago

Hi, I am trying out this library and noticed - This only works when mic and speaker are just opposite of each other. I checked out another app "S-Contact" (https://play.google.com/store/apps/details?id=com.totmob.scontact&hl=en") which works fairly well even at longer distance. One reason i can think of is sound produced by "S-Contact" app is louder than what produced by "Quiet".

Is there any way i can increase the volume of sound being produced by Quiet?

P.S: I tested both application on same phone and phone volume set at max level.

Any suggestion from you will really help me.

brian-armstrong commented 7 years ago

Hi @vishal2947,

Sure, the easiest way to try this is by increasing the gain value for the profile you're using in quiet_profiles.json. The largest value it accepts is 0.50.

Which profile are you trying? Some do better at high transfer throughput but short distances. ultrasonic-experimental is probably the best for long distances.

Cheers

vishal2947 commented 7 years ago

Thanks for quick response. I was using "audible-7k" profile but 5 out of 10 times data transfer was missed. I also tried ultrasonic but again distance was issue. I will try again after increasing the gain value and will let you know the outcome.

brian-armstrong commented 7 years ago

Hi @vishal2947,

If you haven't tried "ultrasonic-experimental" I'd definitely recommend it. It's a much slower modem but more reliable, and you might have better luck tuning it into what you want. "audible-7k" is definitely very short range as you have discovered.

Also, it might be worth trying the voice_recognition_preset branch of this repo. It makes a small change that might improve your transmission capability. I tried it on my device and it didn't seem to change much but every Android device is different and it may help with yours.

brian-armstrong commented 7 years ago

I'm closing this issue for inactivity. If you try again and have further questions or problems please feel free to open a new issue

eelcocramer commented 6 years ago

I'm investigating if I can replace Google Nearby with the Quite library for Android. Google Nearby can be used to discover devices that are in the same room using ultrasound, but it uses the Google Server to send the actual data between these devices. As my data payloads are relatively small I'm looking for a way to send my payload directly to surrounding devices.

Quiet looks like a very nice solution to my problem and I'm trying it out using the QuitShare PoC app and the ultrasonic-experimental profile. It works quite well if the devices are relatively close (with 50cm range) but larger distances do not seem possible. I've set the gain value to 0.5 like suggested above.

It this the best possible I can get using this library? Or can I tweak it to allow larger distances.

brian-armstrong commented 6 years ago

@eelcocramer

I would definitely recommend reducing the gain. Less gain normally helps, I had only suggested more there as a debugging idea

Try increasing samples_per_symbol. If you only need to transmit a short identifier, the slower transmission speed won't be too bad, and you might get more distance.

Also you could set checksum to "none" so that you get transmissions that have small errors in them. You might be able to recover those, depending on your application, and either way it will give you an idea of how bad the errors get from further away

eelcocramer commented 6 years ago

Thank you @brian-armstrong. I will play with these values to see if it improves the distance for me.

aboozaid commented 5 years ago

any news @eelcocramer ?

eelcocramer commented 5 years ago

It didn’t really work for me at that time.