For a non-technical introduction to BassNet and more examples please visit the BassNet introduction page.

This page provides supplementary material for the manuscript BassNet: A Variational Gated Autoencoder for Conditional Generation of Bass Guitar Tracks with Learned Interactive Control.

The examples correspond to the examples discussed in Section 6.4. All examples have been generated using a web interface for user interaction with BassNet. After uploading one or more input tracks, the user can play the song and listen to the generated bass guitar track along with a mix of the input tracks. The user can interactively control the latent position of the model by moving the dot in the 2D plane (the contours show the density of the latent space for the training data). The controls at the bottom allow the user to choose between different variants of the model, and to customize the sonification of the predicted outputs. The generated bass track can be exported to MIDI or audio for use in a DAW project.

BassNet web interface:

Example 1

The source is a piano excerpt with strong rubato but clear onsets. In both examples BassNet follows the tempo changes and provides realistic harmonies. A notable difference between the variations is that variation 1 tends to rhythmically follow the 16th notes in the higher piano register (but using mostly low pitched notes), whereas variation 2 follows the slower, lower part of the piano (but with higher notes), overall leading to a sparser and quieter result in variation 2.

Original music: Emmanuel Deruty, 2012. BassNet MIDI output sonified with Native-Instruments Kontakt, Scarbee MM-Bass and Cerberus Bass Amp.

Source
Pianoroll excerpt Bass Variation 1
Bass Variation 1
Pianoroll excerpt Bass Variation 2
Bass Variation 2

Example 2

The source is a polyphonic fragment played by electric bass with non-trivial harmony. For this example the predicted bass tracks have been transposed one octave upward and quantized to 16th notes. The first variation is created using a latent position that is representative for the training data. The predicted bass line sometimes doubles parts in the source, and sometimes deviates from them. The output harmony is reasonable, and consistent with the input. The rhythm is mostly 8th notes like the source, with occasional 16th notes, that bring groove and variation.

Variation 2 corresponds to a more remote positioning in the latent space. Accordingly the result is more exotic, and is reminiscent of improvisation and freestyling or fiddling with the bass. At some point it remains silent for three seconds, then goes on again. It is not unlike a human bass player trying something different, succeeding at particular points and failing at others.

Original music: Emmanuel Deruty, 2008. BassNet MIDI output sonified with Native-Instruments Kontakt, Scarbee MM-Bass and Cerberus Bass Amp.

Source
Pianoroll excerpt Bass Variation 1
Bass Variation 1
Pianoroll excerpt Bass Variation 2
Bass Variation 2

Example 3

The source is a combination of guitar and drums. The drum programming is uncommon in that it does not feature an alternation of kick and snare. The rhythm of the guitar part is slow and sparse, and the heavy distortion obfuscates the harmony. We believe providing a bass accompaniment to this example would be not be trivial for a human player. Like in previous example the predicted bass is transposed upward one octave and quantized to 16th notes.

Both variations are quite similar in terms of pitch, and succeed in following the harmony of the guitar. In terms of rhythm BassNet produces uncommon grooves, likely in response to the atypical drum track. Varying the latent position in this case leads to different grooves.

Original music: Emmanuel Deruty, Yan Guérin, 2019. Drum programming made with CSL prototype DrumNet by Stefan Lattner and Kontakt Studio Drummer. BassNet MIDI output sonified with Native-Instruments Kontakt, Scarbee MM-Bass and Cerberus Bass Amp.

Source
Pianoroll excerpt Bass Variation 1
Bass Variation 1
Pianoroll excerpt Bass Variation 2
Bass Variation 2