ep-4yy13 DSP – week 13

“I think its just the biggest conceptual art project uninentional or otherwise that anyone ever made. it puts Christo and those other guys to shame. Its planetary”

Roman Mars “Episode 97 – Numbers Stations” from 99% Invisible


  • Measuring the invisible
  • What is the difference between sound waves and radio waves?
  • What is an antenna?
  • Wave propagation is frequency dependent
  • Sunspots and magnetic fields http://spaceweather.com
  • Extreme frequencies, negative frequencies?


Internet radio streams and recordings

Frequencies and modes
  • Macbook trackpad: Noise 5 mHz. (try holding radio near screen too)
  • Macbook AC adapter: Noise 600-1400 kHz. (~1000)
  • AC adapters, LED’s, Utility poles: 3.2 Khz
  • Arduino transmitter: AM 1330 kHz.
  • Laser light at 650nM
  • Wireless micorophone (Orange-brown): Wide FM 614.150 MHz. (R band)
  • Cordless phone: Narrow FM 926 mHz.
  • Cell phone: Digitally encrypted trunking FM 836 mHz.
  • Wifi: Digitally encoded PCM 2.4 gHz.
  • FM broadcast band: Wide FM 89.7 mHz (Raspberry Pi example 98.1 Mhz)
  • TV audio 600 mhz/660 mhz FMW
  • The sun http://www.ips.gov.au/Solar/3/4

Topics not covered

(due to snow and stuff)



  • d3
  • processing
  • jitter
  • hardware control




Please send me a copies of your earlier compositions. Have a prototype ready to demonstrate or talk about for the next class.


Raspberry-Pi Osc synthesizer

A variation on the Midi synthesizer from this post: https://reactivemusic.net/?p=4960

The synthesizer was built in PureData (Pd extended) using the visual interface on a MacBook. Then the pd file was run in command line mode on the r-pi. The sound card is a Griffin i-Mic, running at 22.5 Khz sample rate. Although there’s no reason why you couldn’t use the builtin DAC on the r-pi.

The r-pi is connected via the ethernet port to a wi-fi network which receives Osc (Open Sound Control) messages from an iPod running touch-Osc. The network connection could have been made using a USB wifi adapter.

All together the cost of this arrangement (less the iPod) would be less than $50. The software is all open source.  The huge financial barriers to working with music synthesis and signal processing, that have been associated with these fields for years, simply don’t exist anymore.

Alternative ways of controlling the synth – if a wiFi router is not available, include:

  • USB keyboard (usually free)
  • USB Midi Keyboard ($25)
  • switches or dials via the GPIO pins (spare parts)
  • direct ethernet connection to another device.
Here is a screenshot of the Pd Patch.


Pd file: tkzic/rpi/pd/piSynth1_OSC.pd

recieve port is 8000 – and it uses page 1 of the simple touchOSC template

pd-extended -nogui -noadc  piSynth1_Osc.pd

Note: there is some special code to prevent seg faults when you go from page 2 to page 1 of the touchOSC template

Here’s a great tutorial on using OSC with Pure Data





GPS on Raspberry Pi

Successfully installed this GPS board on the R-Pi.

By Kevin Townsend at adafruit.com


The drivers for the console cable were already in the Raspian distribution on the R-Pi.

I installed the gpsd (daemon) software as directed in the above tutorial.

Documentation for gpsd is here:


Sample C code is: gpxlogger.c and cgps.c – which can be found in tkzic/rpi/gpsd 3.7/

(todo – write sample code and add to telemetry tracker)

How to add a random post button in WordPress

by teachyourselfwebsites.com

I used this method to add a “random post” to this site. I didn’t create a child theme. So it will break when the theme gets updated.


4/24/2016 note:

Here are some details. You need to create a new file inside the theme called page-random.php based on the original page.php.

the added code looks like this and goes right before get_header():


/* Template Name: Random Post */

$randomPost = get_posts(array(
 'numberposts' => 1,
 'orderby' => 'rand'
foreach ($randomPost as $post) {

how to open, read, and write from a serial port in C (linux)

With applications for Raspberry Pi


by hobbytronics.com


C – programming example:


An R-Pi thread about connecting Arduino to R-Pi. R-Pi does TTL (3.3 v level and Arduino is rs-232 5v) so you need a level converter for them to communicate.


Another similar example, connecting Arduino and R-pi via USB


The WiringPi library for serial io:







RTTY with Arduino

Transmitting on 434.650 MHz.

Successfully ran the configuration described in this article

By Anthony Stirk at UKHAS


Have only tried 50 baud – but the beacon ran for over an hour without errors. The receiving   setup was done on a Windows 7 computer:

  • Funcube (software defined radio)
  • FCHID (software to tune the Funcube)
  • Spectraview (demodulate signal from Funcube to SSB)
  • FLDigi (decode RTTY using custom setup)

The bandwidth of the RTTY signal was close to 900 instead of something more reasonable like 50. This can be adjusted by trying various resistor values in the voltage divider circuit.

Next steps include building antennas and increasing the baud rate.


raspberry pi – external sound card sucess

Installed a Griffin iMic USB sound card on Raspberry Pi today.

Here’s how:

  • plug in imic
  • Edit alsa  config file so that imic is default sound cart
  • test


For editing alsa, follow instructions at beginning of this post for editing /etc/modprobe.d/alsa-base.conf 

But you can stop following the instructions after the first reboot.


For testing, use this command:

sudo aplay /usr/share/sounds/alsa/Front_Center.wav





Arduino INPUT_PULLUP mode


When reading the value of a switch with Arduino, its useful to set the INPUT_PULLUP mode so you don’t need to use an external pullup resistor. By the way, the internal pull-up resistor is 20K ohms.

See this tutorial:


If its not clear what a pull-up resistor does,  read the links on this forum post.


Everybody has their own way to explain it. I would say that when the switch is open, the pull-up resistor weakly pulls the logic value high, so you don’t get random signal readings.