[PD] Control over audio

Chris McCormick chris at mccormick.cx
Mon Mar 7 12:34:05 CET 2022


Dear Pd-List,

I was hoping to get some advice on the following problem.

I have a Raspberry Pi sending stereo audio into a 2nd Raspberry Pi which 
takes stereo input using a USB sound card. I would like for the first 
device to be able to encode some basic control data on top of the audio 
stream such that it is not audible but can be read by the 2nd device. 
The control data is very basic (a timing sync pulse, maybe BPM or tick 
mod 16, but that's not essential).

I could set up a WiFi connection or Bluetooth etc. it seems like 
overkill for a simple sync pulse. It would be great if I can get this 
working so it would be "plug and play" without fiddling around with 
network stuff. Features that would be nice:

1. Make the signal was somewhat robust to volume changes (e.g. if the 
source volume was not at max it can still be read).
2. Make the signal robust o quite a saturated spectrum (e.g. if the 
source is playing high bandwidth music the signal is still recoverable).
3. Make the signal inaudible such that if it goes into a regular mixing 
desk it doesn't make it sound bad.

Does anybody know of an existing protocol or method I could use to 
encode basic timing data into the audio stream like that?

My first thought was to use a frequency above or below the range of 
human hearing and put a low volume square wave carrier in there, then 
filter for it with band pass. I am not sure the best Pd objects to use 
to do that. Suggestions most welcome.

I also saw this, but it seems to require access to the signal before it 
hits the CPU:

https://electronics.stackexchange.com/questions/242883/how-do-media-buttons-on-a-plain-wired-headset-work


Cheers,

Chris.


-- 
https://mccormick.cx/





More information about the Pd-list mailing list