====== Sending Microphone Input to another device over TCP ====== ===== How it Works ===== * Essentially we are using **NETCAT** to pipe audio from a mic input on one computer to the audio output of another computer. * It appears that **ssh** adds a lot of latency around 1-2 secs which is not acceptable more most instances * Netcat on the receiver need to starts before the transmitter starts to send otherwise the transmitter script will exit with a connection refused. ===== Requirements ===== * **Alsa** needs to be working on both computers and alsa-utils should be installed to save mixer settings * **aplay/arecord** also need to be installed along with **netcat**. In most distributions they are installed as base packages * Obviously some sort of tcp/ip must be running to for the netcat communication to work. ===== Wifi Setup ===== ... auto wlan0 iface wlan0 inet dhcp wpa-ssid ssid wpa-psk #### ... ===== Audio setup ===== * By default the usb audio adapter is detected as card 1 not card 0(default). I tried disable the bcm sound module but for some reason that disables the mixer of the usb audio adapter. * I was able to set the default card using asound.conf pcm.!default { type hw card 1 } ctl.!default { type hw card 1 } ====== Receiver ====== #!/bin/sh PORT="8080" RATE="2" BUFFER="10" FORMAT="cd" while [ true ] do netcat -l -p ${PORT} | aplay -B ${BUFFER} -r ${RATE} -f ${FORMAT} done ====== Transmitter ====== * **RECV_ADDR** will need to changed to something valid like a ip address or a hostname/fqdn. #!/bin/sh PORT="8080" RATE="2" BUFFER="10" FORMAT="cd" RECV_ADDR="" RECV_PORT="8080" arecord -B ${BUFFER} -r ${RATE} -f ${FORMAT} | netcat ${RECV_ADDR} ${RECV_PORT} ====== Audio Passtrough ====== * Check mixer controls for input ampifcation if clipping occurs arecord -f S16_LE -c2 -r48000 -f dat | aplay -f S16_LE -c2 -r48000 -f dat ====== Price List ====== [[https://docs.google.com/spreadsheets/d/1jROjZBKDP32I1MQKS9gV2c9oLo5q8K8QiZUgWr6fepo/edit#gid=333349986|Price List]] ====== Parts List ====== * Arm Computer * Wifi Adapter * Audio Adapter * Power Supply * Flash Card (Storage) ====== Raspberry Pi Issues ====== * I get this error whenever I try to change either the buffer size, buffer time, or interrupt period on both the R Pi 1 and R Pi 2aplay: set_params:1305: Can't use period equal to buffer size (256 == 256) * I picked up a C-Media CM108 Chipset usb audio adapter and it fixed the problem. I able to adjust the sample and buffer size [[http://www.amazon.com/External-Adapter-Windows-Drivers-Needed/dp/B00V9E9YRG|Link]] ====== Other Notes ====== * The "Chip" microcomputer looks really promising it includes storage, wifi, and audio all on board and is selling for $9. Their website says they will be shipping in June 2016 [[http://getchip.com/]]