Chordify is an online music-education service – made for and by music enthusiasts – that transforms music from YouTube, Deezer, SoundCloud, or your private collection into chords. Our service automatically recognizes chords from an audio signal and aligns them to the music in a simple and intuitive player. Chordify uses cutting-edge technology to help both novice and trained musicians play the music they want to play.
> Technology behind Chordify
How does Chordify work?
Since Chordify launched we’ve done our best to safeguard the simplicity and usability of our website and the Android and iOS app, even though there is some complex technology behind Chordify. We can break it down into two processes: we need to know the chords of a song, and we want to know the position of the chords on the beat of the song, i.e. chord recognition and beat tracking. So how does that work?
Waveforms and spectrograms
We start off with a song’s audio – a digitized waveform that describes deviations in air pressure over time that we as humans, in the end, perceive as sound. It is close to impossible to observe any meaningful information about chords or beats in a song’s waveform directly. Therefore, we convert the audio into a representation that reveals some insights into its musical content: a spectrogram. A spectrogram is a time-frequency representation that already gives us a better idea of the musical content in the given audio.
Deep neural networks
Still, both chord recognition and beat tracking are challenging tasks, even on this representation. To solve them, we use deep neural networks. You can think of a deep neural network as a robot that you program to have a certain input-output behavior. For example, you ‘feed’ it a spectrogram and ‘ask’ it to return chords, or you feed it a spectrogram and ask it to return beat positions to you. Initially the robot really has no clue how to recognize a chord or how to detect a beat and therefore just gives you random outputs.
Thousand and thousands of songs
So instead you start to train the robot by showing it vast amounts of spectrograms of songs along with the chord labels that you would expect it to recognize. And of course, you can do the same for beats. This way, the robot will eventually learn how to recognize a chord or how to detect a beat, i.e. find its way from input to output. After showing the robot enough examples (thousands and thousands of songs), it will know how to perform its task on audio that it has never seen before, and that’s when we release it on our website and app, to show off its newly learned skills to all of you!
Now you know the gist of the process. There’s a little more going on under the hood, but explaining that will make this story needlessly complicated. Happy jamming!