More
See all Show me
5. Spectrum Analysis 3: Spectrotune is born
1 year ago
2. Solar 1
1 year ago
1. Repulse 1
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.

Credits

15 Likes

  • Memo Akten plus 1 year ago
    If I understand correctly this is doing pitch detection on the wav? If so thats awesome! its detecting each note in chords etc as well? What kind of polyphony can it handle?
  •  
  • Corban Brook 1 year ago
    That is correct, it takes a wav file as the input, scans through it and detects the pitches being played and then outputs to MIDI. What you are hearing is Reason 4.0 Advanced Sampler[Grand Piano] playing the outputted midi notes.

    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.
  •  
  • Daniel Piker 1 year ago
    This is awesome stuff
  •  
  • Conor 1 year ago
    It does sound like sanatarium. Good job. I'd love to hear the input file you used.
  •  
  • Richard Caceres 10 months ago
    Good Job! (Where) can the code be downloaded?
  •  
  • Lawrie Cape 10 months ago
    Wow! This is great.
    I'd love to have a play with this when it's done.
  •  
  • andre wakko 5 months ago
    really good!
    It is possible to have the code for processing and so?

    I will love to understand that!
    Thanks
  •  
  • Corban Brook 3 months ago
    Well it has been almost a year since ive worked on this.. but that is sort of how things go. I have decided to upload the processing source to github so that people can play with it and contribute to make it better.

    github.com/corbanbrook/spectrotune/tree/master

    Sorry for the wait. Perhaps putting the code out there will spur me on.
  •  
  • Paulo Barcelos 3 months ago
    Amazing application man! In a few months I am starting a new project that will massively use spectrograms writers AND readers, and your codes are kin to be in the used libraries :)

    Got some great inspiration from your architecture, thanks!
  •  
  • Corban Brook 3 months ago
    Im glad it was helpful. Keep an eye on the github page as im going to be pushing v0.4.0 today which adds:

    * 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.
  •  
This conversation is missing your voice. Take five seconds to join Vimeo or log in.

Advertisement

Statistics

  •  
    plays
    likes
    comments
  • Total
    plays 266
    likes 15
    comments 10
  • Dec 8th
    plays 3
    likes 0
    comments 0
  • Dec 7th
    plays 0
    likes 0
    comments 0
  • Dec 6th
    plays 0
    likes 0
    comments 0
  • Dec 5th
    plays 0
    likes 0
    comments 0
  • Dec 4th
    plays 1
    likes 0
    comments 0
  • Dec 3rd
    plays 0
    likes 0
    comments 0
  • Dec 2nd
    plays 1
    likes 0
    comments 0
  • Dec 1st
    plays 0
    likes 0
    comments 0
Previous Week

Downloads

Please join Vimeo or log in to download the original file. It only takes a few seconds.