An IOS app that simulates an acoustic modem
By Applidium
Local code is cloned to tkzic/AudioModem
Student project by Greg Malysa and Arseney Romanenko
“Sound offers features not available with other short-range, low bandwidth communication technologies, such as radio and infrared, enabling communication among small computing devices and humans in a ubiquitous computing environment.”
By Cristina Videira Lopes and Pedro M.Q. Aguiar
https://www.ics.uci.edu/~lopes/documents/pervasive%20computing%2003/lopes-aguiar.pdf
Signals, for more accurate timing
from cycling74.com
http://cycling74.com/wiki/index.php?title=MSP_Sequencing_Tutorial_1:_Audio-Rate_Sequencing
http://www.dataip.co.uk/Reference/BaudotTable.php
Binary
|
Decimal
|
Hex
|
Octal
|
Letter
|
U.S.
Figures |
CCITT No.2
Figures |
00000
|
0
|
0
|
0
|
N/A
|
N/A
|
N/A
|
00001
|
1
|
1
|
1
|
E
|
3
|
3
|
00010
|
2
|
2
|
2
|
LF
|
LF
|
LF
|
00011
|
3
|
3
|
3
|
A
|
–
|
–
|
00100
|
4
|
4
|
4
|
Space
|
Space
|
Space
|
00101
|
5
|
5
|
5
|
S
|
BELL
|
‘
|
00110
|
6
|
6
|
6
|
I
|
8
|
8
|
00111
|
7
|
7
|
7
|
U
|
7
|
7
|
01000
|
8
|
8
|
10
|
CR
|
CR
|
CR
|
01001
|
9
|
9
|
11
|
D
|
$
|
WRU
|
01010
|
10
|
A
|
12
|
R
|
4
|
4
|
01011
|
11
|
B
|
13
|
J
|
‘
|
Bell
|
01100
|
12
|
C
|
14
|
N
|
,
|
,
|
01101
|
13
|
D
|
15
|
F
|
!
|
!
|
01110
|
14
|
E
|
16
|
C
|
:
|
:
|
01111
|
15
|
F
|
17
|
K
|
(
|
(
|
10000
|
16
|
10
|
20
|
T
|
5
|
5
|
10001
|
17
|
11
|
21
|
Z
|
“
|
+
|
10010
|
18
|
12
|
22
|
L
|
)
|
)
|
10011
|
19
|
13
|
23
|
W
|
2
|
2
|
10100
|
20
|
14
|
24
|
H
|
#
|
£
|
10101
|
21
|
15
|
25
|
Y
|
6
|
6
|
10110
|
22
|
16
|
26
|
P
|
0
|
0
|
10111
|
23
|
17
|
27
|
Q
|
1
|
1
|
11000
|
24
|
18
|
30
|
O
|
9
|
9
|
11001
|
25
|
19
|
31
|
B
|
?
|
?
|
11010
|
26
|
1A
|
32
|
G
|
&
|
&
|
11011
|
27
|
1B
|
33
|
Figures Shift
|
Figures Shift
|
Figures Shift
|
11100
|
28
|
1C
|
34
|
M
|
.
|
.
|
11101
|
29
|
1D
|
35
|
X
|
/
|
/
|
11110
|
30
|
1E
|
36
|
V
|
;
|
=
|
11111
|
31
|
1F
|
37
|
Letters Shift
|
Letters Shift
|
Letters Shift
|
Not a good idea to connect a piezo directly to the output of an iPod. Apparently the impedance is too low and it fried the audio circuit and battery. I should have just dropped it (the iPod) in the water instead of the piezo.
I was able to get excellent underwater sound using a piezo for a mic – it was a little over an inch diameter, broken out of the radio shack black plastic case – with some hot glue to cover the wire connections – probably not necessary.
See this article about working with Radio Shack piezo transducers
http://www.edrums.info/radio_shack_piezo.htm
The speaker was a Dayton Audio Weatherproof Extreme Exciter – from Amazon – http://amzn.com/B0031K2XBA
And I used a small power amp to feed it. http://amzn.com/B0049P6OT
Note: the exciter also sounds great when its duct taped to a cymbal.
Today I was able to get an AFSK (audio frequency shift keying) system running in Max – sort of – It encodes text into ASCII bits and decodes the signal back into text – with a clock set at around 30ms (32 bits/second) – but there is no clock synchronization yet. Or stop bits, etc., The patch just uses the transmitter clock to sync the receiver (cheating)
Listen to an example of the word ‘hello’ at 32 bits/sec
local file is in max teaching examples/rtty-sim5.maxpat
Next step will be to get receiver sync happening – then make it conform to RTTY standard – probably a few days effort for this, but at least this is a proof of concept.
The synchronization may need to happen at the sample level (gen~) because it requires finding the beginning and end of bits – in order to set the clock pulses accurately.
By Norbert Varga
http://dp.nonoo.hu/projects/ham-dsp-tutorial/
From the IIR RTTY tutorial, a Paper on decoding RTTY in Linux:
http://www.ele.uva.es/~jesus/rtty/rtty-2.0/doc/rtty.pdf
http://www.aa5au.com/gettingstarted/rtty_diddles_technical.htm