Spectrotune added to github

Spectrotune is a fun processing application which performs pitch detection on a polyphonic audio source and outputs detected semitones in MIDI. It will scan over an audio file like a wav or mp3 and attempt to detect which cords are being played. MIDI output allows you to boot up any MIDI enabled soft sequencer like Cubase, Reason, Fruityloops, etc and record a, somewhat rough, interpretation of the audio source. Perfect for doing remixes and covers of your favorite electro tunes. Written in processing.

Spectrotune in action!

It has been almost a year since I started this project and I really haven’t done a lot of work on it lately. I decided to clean up the source a little and add the project to github as a way to spur my motivation. Spectrotune has definitely been one of my more passionate projects to work on over the years. I learned a great deal about fourier transforms, sound, synthesis, and processing while working on it. Expect more to come.

Spectrum Analysis 3: Spectrotune is born from Corban Brook on Vimeo.

Features

  • Pitch class profiling (PCP)
  • FFT bin distance weighting
  • FFT Envelope
  • FFT Equalization
  • Adjustable noise smoothing
  • Adjustable peak detect threshold
  • MIDI output
  • Spectrograph image output

Future Roadmap

  • Do a complete source code audit. This code is a year old and my processing skills have improved a great deal since then.
  • Add better peak and detection.
  • Add controlp5 UI controls
  • Add a file browser so users can specify which audio file they want to load.
  • Bundle the project into a standalone program.
  • Move UI widgets to ControlP5

Ideas

Some ideas im playing around with:

Scale locking

Have an option to lock to a scale. Spectrotune will pre-scan an entire audio track and compute a scale and then lock detected peaks to that scale. This has an advantage over pitch class profiling as pitch class profiling is done on the fly and only looks at one FFT buffer time worth of audio information. Scale locking would precompute a scale of best fit for the entire track before doing any pitch detection work.

MIDI octave segmenting

Have an option which allows the user to segment octaves by MIDI channel so they can direct bass freqeuncies to a bass channel synthesizer, leads to a lead synth, and upper harmonics to a flute.



About this entry


About

    Buildingsky.net is comprised of Corban Brook and Maciek Adwent. We build experimental web applications.

    We are interested in computer science, ruby-lang, javascript, web technologies, audio synthesis, finance/economics.

Contact

Projects

Categories