Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

This is awesome!! #1

Open
hsablonniere opened this issue Nov 16, 2016 · 3 comments
Open

This is awesome!! #1

hsablonniere opened this issue Nov 16, 2016 · 3 comments

Comments

@hsablonniere
Copy link

I've been playing with your project for a few hours. You really need to continue the research it's very promising ;-)

I want to "transport" a payload of JSON with your lib. I played with quiet.js but some things seems broken.

A few questions :

  • What are you using it for?
  • Do you have some docs so I can try different freqs and different speed of transmission?
  • Have you imagined something using checksums or anything else to guaranty the message?

Thx ;-)

@robertrypula
Copy link
Owner

Thanks man! I'm very happy that you like it - those kind of 'issues' on the GitHub are really motivating :D Please find answers for your questions below:

  1. 'What are you using it for?'
    I'm using only pure JavaScript and Web Audio API without any other dependency. The goal is to use Phase Shift Keying modulation to send symbols between two machines. It is already working but performance is poor. I already started to rewriting core of the lib in order to move heavy computations to Web Workers. On multi core machines it would work much faster. It's still not finished - I only need to find some time to do it :)

  2. 'Do you have some docs so I can try different freqs and different speed of transmission?'
    So far there is only some kind of developer sandbox here:
    https://audio-network.rypula.pl/example/01-001-physical-layer-full/physical-layer-full.html
    When I was testing some of the scenarios it looks like in theory it's possible to have speeds around 10 B/s (80 bits/s). That speed is enough to send keyboard keys in the real-time while typing. You could basically write text on the other machine without big delay.

  3. 'Have you imagined something using checksums or anything else to guaranty the message?'
    Yes - in future. Entire v1.x is only about Physical Layer (like in OSI model). It will give you only packets with arrays of received symbols. In v2.x I'm planning to implement some kind of Ethernet frames (Data Link Layer) with SRC and DEST address and some basic checksum. It would return not symbols but real bytes. Every new major version of the lib would add new layer to the network stack. You can verify road map here: https://audio-network.rypula.pl/changelog.html

Recently I'm not working directly on the lib but it doesn't mean that the project is dead. Now I'm writing second part of the article about the project for polish Programista Magazine. First part was published on September 2016 (https://programistamag.pl/transmisja-danych-dzwiekiem-w-javascript-od-podstaw/). The plan is to translate it into English and publish on the page somewhere in 2017.

As you can see this project is still in very 'alpha' state. I treat current lib core more like as a proof of concept than some finished piece of code.

One question to you: How big JSON structures are you planning to send?

Thanks,
Robert

@kurnoolmohammadmujahid
Copy link

Hi,
I am using this library in my project. I have following doubts kindly clarify if possible.

  1. Sometimes, data what I send in binary format will receive in wrong order. Due to this binary to text conversion is getting failed. I have crossed checked with binary to text converter in online what ever data is passed to convert its correctly converting. Actually data is received in wrong order by receiver. This is frequently happening when i tried with big text. its goes correct in order I have crossed checked in other online tools to convert string to binary.
  2. Is there any way I can receive data faster because its receiving bit by bit. Can we make this process speed. If yes, kindly tell the process.
    Kindly reply asap.
    Thanks,
    K Mohammad Mujahid

robertrypula added a commit that referenced this issue Aug 17, 2017
@robertrypula
Copy link
Owner

Hello,
Thanks for your question and sorry for ultra big delay. I's my hobby project and my time is limited. Please find answers below:

  1. It's hard to tell if why this is happening. I think it could more more beacuse bits getting corrupted and you get just wrong bit instead of reversed order. Transmitter is buffering the data in the array and it's just picking it one by one. There is no chance that it will pick some bit in the middle.
  2. In general existing solution that you can find in the npm package of Audio Network lib uses PSK modulation. I was pretty new to the DSP and was more learning than implementing some solution that I was 100% sure. I realized later that it could be written much better so I started rewriting whole PhysicalLayer. It not yet mentioned in on the website and not yet availabe as npm package. For more info please read my answer at the issue Could we make the handshake process simpler? #3. In general existing solution will be soon deprecated and it's no longer maintained. It will be replaced by FSK modulation with better synchronization mechanism. My plan is to add it to the npm package in Fall 2017. Aditionally it will be more flexible and could be easly extended to use OFDM technique.

Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants