Next Steps - msmallegan/cicada GitHub Wiki

Our first step will just be to get two laptops to produce two separate tones, and converge on each other by listening to the microphone port.

We'll start by exploring audio capabilities in Python. It looks like Friture ( http://friture.org/ ) will be relevant. They are using pyaudio ( http://people.csail.mit.edu/hubert/pyaudio/ ) to get audio from the microphone.

Also, if we end up going the hybrid app route to use the iPads, here's Ionic: http://ionicframework.com/

Pitch detection

The "pitch detection problem" apparently has a long history: http://en.wikipedia.org/wiki/Pitch_detection_algorithm It seems that doing it well requires fiddling, so we probably want to use something someone's already written...

Some potential Python algorithms:

To do 11/3/2014

  • More pleasant sound! (MIDI?)
  • (Eventually) Multiple platforms
  • Look into www.pygame.org
  • Try chords?
  • Web-based database for visualizations
  • Signal propagation with many individuals

To do 11/17/2014

  • Tempo/rhythm matching
  • Use frequency plots from real-world examples (e.g. orchestra tuning, or more random process)

To do 12/8/2014

  • Send pitches to server for plotting
  • Get running on Windows laptops

To do 12/15/2014

Time to do a web-based implementation!

To Do 1/28/2015

  • Initialize frequencies randomly
  • Dropdown on positions
  • Don't send data until a valid position is set.
  • Implement multiple stepping methods & allow for changes to gap duration.
  • Pause button.
  • Curmudgeon button?
  • Make old cicadas disappear
  • Historical visualization