
Spectrum Analysis 3: Spectrotune is born
1 year ago
Decided to give this project an official name, Spectrotune.
Updated and beautified the interface. Added octave filters, Pitch Class Profiling, FFT bin distance weighting, FFT Smoothing, FFT Envelopes and Equalization, amongst other things. The detection is a great deal more accurate tho I still have a lot of work to do before im happy with it.
The Song is a MAAD - Sanitarium (Metallica Cover), its a chip tune remix. Minimal and not a lot in the way to clutter up my detection.
What you are hearing is the recorded MIDI output from the scanned wav file.
Updated and beautified the interface. Added octave filters, Pitch Class Profiling, FFT bin distance weighting, FFT Smoothing, FFT Envelopes and Equalization, amongst other things. The detection is a great deal more accurate tho I still have a lot of work to do before im happy with it.
The Song is a MAAD - Sanitarium (Metallica Cover), its a chip tune remix. Minimal and not a lot in the way to clutter up my detection.
What you are hearing is the recorded MIDI output from the scanned wav file.
-
Vimeo: About / Blog / Developers / Jobs / Community Guidelines / Community Forums / Help Center / Site Map / Merchandise
/ Get Vimeo

Previous Week
It detects the chords and pitches in 2 ways, 1 is by looking at all the peaks in the spectrum and converting their freq to a pitch. The other is to create a Pitch Class Profile of the current buffer it is looking at which shows the Strength of the various notes of a chord.
The Octave filter allows me to turn on/off octaves for detection so that i can narrow in on a melody range in a song, for instance turning off octaves 0-3 to filter out bass drums and other low freq noises.
Depending on the song ive experienced varying degrees of accuracy, but have included many options to adjust so it should be possible to get a detection that is "Close Enough(tm)" that wont be too difficult to clean up the recorded MIDI results by hand in your sequencer.
I am in the process of porting the Processing Application to C++ with the OpenFrameworks library so I should be able to save it as a .app or .exe for sharing soon enough.
I'd love to have a play with this when it's done.
It is possible to have the code for processing and so?
I will love to understand that!
Thanks
github.com/corbanbrook/spectrotune/tree/master
Sorry for the wait. Perhaps putting the code out there will spur me on.
Got some great inspiration from your architecture, thanks!
* MIDI octave channel segmenting - Allows you to specify segment each octave to a seperate midi channel. ie. Send octaves 0,1,2 to channel 1 which is a bass synth, send octaves 3 and 4 to a channel 2 on a lead synth, and octaves 5 and up to channel 3 for upper harmonics.
* Scale locking - Trys to precompute the scale the audio source is using and then skews detected pitches to that scale.
* Better User Interface - Ive added the ControlP5 library so there are better control widgets, sliders and clickable radio buttons.
* You can now seek to any part in the track and pause with the progress bar.
Stay tuned.