Loading ...
SIMPLE MODE
INSTRUCTIONS
Hum2Song! is an AI-powered web application that is able to compose the musical accompaniment of a melody produced by a human voice. Once the site has loaded, you only need to click on the "Record Audio" button, start humming/singing (from 2 to 8 seconds) and click on the "Stop" button to start the conversion process. Google Chrome in a desktop browser is recommended.
This is a client-side only application, this means that all the files are stored locally and the processing happens in your browser. The first time you load this website, it downloads ~100Mb in models and sounds, that takes in average ~1 minute depending on your internet connection. Please be patient.
This is a client-side only application, this means that all the files are stored locally and the processing happens in your browser. The first time you load this website, it downloads ~100Mb in models and sounds, that takes in average ~1 minute depending on your internet connection. Please be patient.
INPUT
This work was based and inspired on piano-scribe
Made with Tensorflow.js and Magenta.js . See the code on GitHub. Contact us.
Made with Tensorflow.js and Magenta.js . See the code on GitHub. Contact us.
ADVANCED MODE
INSTRUCTIONS
Hum2Song! is an AI-powered web application that is able to compose the musical accompaniment of a melody produced by a human voice. Once the site has loaded, you only need to click on the "Record Audio" button, start humming/singing (from 2 to 8 seconds) and click on the "Stop" button to start the conversion process. Google Chrome in a desktop browser is recommended.
This is a client-side only application, this means that all the files are stored locally and the processing happens in your browser. The first time you load this website, it downloads ~100Mb in models and sounds, that takes in average ~1 minute depending on your internet connection. Please be patient.
This is a client-side only application, this means that all the files are stored locally and the processing happens in your browser. The first time you load this website, it downloads ~100Mb in models and sounds, that takes in average ~1 minute depending on your internet connection. Please be patient.
INPUT
OUTPUT
STEP BY STEP
Step 0.- We store locally the recorded sound.
Step 1.- The audio is transcribed to notes by using a RNN model. You can find more information about this model here.
Step 2.- The notes are normalized, cleaned and adjusted to 4/4
Step 3.- Now we use a DNN model to predict the most likely genre from the melody. You can find more information about this model here.
The predicted genre is:
GENRE
The scores are:ROCK: 0.0
DANCE: 0.0
JAZZ: 0.0
Step 4.- The melody is adapted to an instrument that is typically used in the predicted genre.
Step 5.- A temporal drum is generated.
Step 6.- A temporal bass is generated by expanding and joining the transcribed melody.
Step 7.- We need to form a trio that is the combinaton of MELODY + BASS + DRUMS. This is needed to predict a sequence. This is the current trio.
Step 8.- We use a RNN model that generates a trio that is the progression of the current trio. You can find more information about this model here.
Step 9.- We use the original melody, the generated bass and the random drum to generate a base trio.
Step 10.- Now we define the harmony, the first step is to calculate the musical scale from the melody.
The tonal scale that fits better is:
A
Step 11.- From that scale we choose a chord progression that fits better to the melody.
The chord progression that fits better is:
A, A, A, A
Step 12.- Now we use a RNN model that is able to generate an accompaniment for our main trio, adapted to the chord progression. You can find more information about this model here.
Step 13.- We also generate random accompaniment that fits to the chosen chord progression.
Step 14.- Finally, we create an interpolation of 6 steps between the chords adapted trio and random sequence. We use a RNN model that can be found here.
We appreciate your feedback, you can find the contact information here.
This work was based and inspired on piano-scribe
Made with Tensorflow.js and Magenta.js . See the code on GitHub. Contact us.
Made with Tensorflow.js and Magenta.js . See the code on GitHub. Contact us.