Author Topic: Experimental software idea  (Read 4162 times)

0 Members and 1 Guest are viewing this topic.

Offline SquirrelMonkey

  • Newbie
  • Posts: 29
  • Youtuber and GIPHY artist
    • View Profile
    • Joluijten.com
Experimental software idea
« on: December 21, 2020, 01:01:47 am »
This is a stupid idea, but I think that it could lead to interesting ideas, so I still share it with you.

I saw a program written by @Petr that makes it possible to visualize WAV files (and I saw this piece of art:
) . I modified his example program a little and I managed to convert any sound into a 1 and no sound into a 0. With this basic ingredient it is possible to convert a morse code recording into text and it would also be possible to listen to binary code from an audio file and write it into a file. This would make it possible to broadcast and receive files through audio broadcasts.

 I see a lot of experiment possibilities for this:
- Radio amateurs could send each other binary files in any format over a long distance without using the internet.
- With a Velleman FM oscillator and a webcam Raspberry pi project it's possible to receive images wirelessly from a distance of < 200 meters/650 feet, so you could for instance check at home if the mailbox is filled with junk mail or an important letter.
- With a TubeSat pico-satellite ("only" $8000 including launching) you could broadcast pictures from space to Earth.
- You could store files on an old school cassette tape, just like in the past.
- With the Gakken EZ recorder ($80) you could write a file on a vinyl record.
- You could broadcast software and receive data, which makes it possible to broadcast RPGs/text adventures.
- You could store very low resolution video black and white videos on an audio tape and maybe find a way to play the video live.

Any thoughts and ideas?

Offline Petr

  • Forum Resident
  • Posts: 1720
  • The best code is the DNA of the hops.
    • View Profile
Re: Experimental software idea
« Reply #1 on: December 21, 2020, 06:51:09 am »
If I remember correctly, it is possible (but it is not used much today) to transmit data files using citizen radio stations in amateur bands (in our country they are CB on the frequency 27 MHz). Professional radio bands probably allow it too, but I don't have this concession, so I can't confirm that. I do not have detailed knowledge of how to solve data transfer. Either the harmonic frequency that is below the main carrier signal of the sound is used, or the sound itself is used. Of course, the transmission quality decreases with the distance at which the signal is distorted.
Basically, you just need to create two different signals, for 0 and 1, or 256 different signals, each for one byte, or as you say, make two signals (actually three, the third will be a break in transmission) and send each byte as a Morse code. The question is what is technically most appropriate.
Maybe use a signal with a different transmission length for the first tests? Short beep and long beep for each bit? This will eliminate any problems with frequency sensing. Of course, transmission in this way will be slow (if we construct it in the audible range). Just count it:
If I want to transfer 1024 bytes with a different beep length method:
1024 byte * 8 bites = 8192 bites. Each bit will contain some value. For zero let's say a 0.1 second long tone, for 1 a 0.4 second long tone. To separate the bits (tones), let's say a silence of 0.1 seconds. If the ratio of zeros to ones is half to half, it will take at least 4096 * 0.1 + 4096 * 0.4 + 8192 * 0.1 = 409.6 seconds + 1638.4 + 819.2 = 2867.2 seconds = rounded 48 minutes to transmit 1 kilobyte of information.

So we shorten the pulses 1000 times. As a result, the human ear will no longer evaluate every single pulse, it will sound like 8-bit computers recording a program from a tape, but the transmission will be significantly faster. No audio signal is required for this, but a data stream. It's basically the same thing, just at a much higher frequency. So the TCP / IP protocol could be used, just the output from the network card is redirected to the transmitter and receiver.

Because we use the powerful QB64 language, it already has networking commands implemented. I would recommend using it for the intended data transfer, these are _CONNECTED, _OPENHOST, _OPENCLIENT, _CONNECTIONADDRESS $ and similar functions. Of course, these commands are not used at all in the referenced program.

There are other options, such as adding an image to the audio track (this can be done without an audible difference) if you place the added bytes far enough apart in the audio. You can also play the image as a music track (normal images generate cracking and whistling, but some sound interesting, depending on how you get each music data, what bandwidth you choose, which channel to use as the main channel from the image, whether you combine different pixels, if you use the alpha channel of the image for different interpretations of the R, G, B channel, etc. It just allows you to be completely crazy things). You can also save your work with my program SaveSound16, which is also published somewhere on the forum, I think in the thread Drum machine, written by Dav.

Everything you describe can be done. You just always need the right converter.


I'm really glad you like my program (video) :)
« Last Edit: December 21, 2020, 07:24:20 am by Petr »

FellippeHeitor

  • Guest
Re: Experimental software idea
« Reply #2 on: December 21, 2020, 07:07:46 am »
@SquirrelMonkey Welcome to the forum! I have to say I'm a big fan of your work. Glad to have you around!


Offline Dav

  • Forum Resident
  • Posts: 792
    • View Profile
Re: Experimental software idea
« Reply #3 on: December 21, 2020, 10:21:25 am »
Sounds like a great idea to me. Reminds me of CDW.  When I started studying for a HAM license (havent got it yet) I stumbled on the CDW project that transmits data over morse code:http://qrp.gr/cdw

Like Fellippe, Ive watched your youtube channel before. Very creative stuff, like the joy of ascii with bob ross. Lol.

- Dav

Offline SquirrelMonkey

  • Newbie
  • Posts: 29
  • Youtuber and GIPHY artist
    • View Profile
    • Joluijten.com
Re: Experimental software idea
« Reply #4 on: December 21, 2020, 02:25:01 pm »
Basically, you just need to create two different signals, for 0 and 1, or 256 different signals, each for one byte, or as you say, make two signals (actually three, the third will be a break in transmission) and send each byte as a Morse code. The question is what is technically most appropriate.

The 256 signals is probably the fastest method if the connection is good.

Maybe use a signal with a different transmission length for the first tests? Short beep and long beep for each bit? This will eliminate any problems with frequency sensing. Of course, transmission in this way will be slow (if we construct it in the audible range). Just count it:
If I want to transfer 1024 bytes with a different beep length method:
1024 byte * 8 bites = 8192 bites. Each bit will contain some value. For zero let's say a 0.1 second long tone, for 1 a 0.4 second long tone. To separate the bits (tones), let's say a silence of 0.1 seconds. If the ratio of zeros to ones is half to half, it will take at least 4096 * 0.1 + 4096 * 0.4 + 8192 * 0.1 = 409.6 seconds + 1638.4 + 819.2 = 2867.2 seconds = rounded 48 minutes to transmit 1 kilobyte of information.
It would be acceptable for some projects.

Because we use the powerful QB64 language, it already has networking commands implemented. I would recommend using it for the intended data transfer, these are _CONNECTED, _OPENHOST, _OPENCLIENT, _CONNECTIONADDRESS $ and similar functions. Of course, these commands are not used at all in the referenced program.
There are other options, such as adding an image to the audio track (this can be done without an audible difference) if you place the added bytes far enough apart in the audio. You can also play the image as a music track (normal images generate cracking and whistling, but some sound interesting, depending on how you get each music data, what bandwidth you choose, which channel to use as the main channel from the image, whether you combine different pixels, if you use the alpha channel of the image for different interpretations of the R, G, B channel, etc. It just allows you to be completely crazy things). You can also save your work with my program SaveSound16, which is also published somewhere on the forum, I think in the thread Drum machine, written by Dav.
Wow. Thanks!

Offline SquirrelMonkey

  • Newbie
  • Posts: 29
  • Youtuber and GIPHY artist
    • View Profile
    • Joluijten.com
Re: Experimental software idea
« Reply #5 on: December 21, 2020, 02:25:42 pm »
@SquirrelMonkey Welcome to the forum! I have to say I'm a big fan of your work. Glad to have you around!

Thank you!

Offline SquirrelMonkey

  • Newbie
  • Posts: 29
  • Youtuber and GIPHY artist
    • View Profile
    • Joluijten.com
Re: Experimental software idea
« Reply #6 on: December 21, 2020, 02:29:55 pm »
Sounds like a great idea to me. Reminds me of CDW.  When I started studying for a HAM license (havent got it yet)
Cool! I know it's not easy and that there are a lot of broadcast rules.

I stumbled on the CDW project that transmits data over morse code:http://qrp.gr/cdw

Like Fellippe, Ive watched your youtube channel before. Very creative stuff, like the joy of ascii with bob ross. Lol.

- Dav
Thanks!