An interactive A.I. jam session.
From the the ai-jam-js directory launch the interface from the command line:
When the script is run, the following pre-trained models will be automatically downloaded to the ai-jam-js directory:
If you'd like to make modifications to this code, first make sure you have Node.js 6 or above installed. You can then install of the dependencies of the project and build the code by typing the following in the terminal:
cd static npm install node_modules/.bin/webpack
MIDI input is routed from the browser to MIDI ports "magenta_piano_in" and "magenta_drums_in", on which two instances of the
magenta_midi binary are listening; one for piano and the other for drums. Both of these instances output responses to the "magenta_out" port, which the browser is listening to for playback.
magenta_midi instances are kept in sync by a running
midi_clock binary that outputs a metronome using MIDI control change messages on the "magenta_clock" port. You can listen to the metronome by pressing the
Z key while the browser is in focus.
If you'd like to use your own device or software for synthesis, you can simply mute the browser tab and route these MIDI ports appropriately to your device.
The piano can also be controlled from your computer keyboard thanks to Audiokeys. The center row of the keyboard is the white keys.
You can change various settings for the models and interactions using the buttons at the top left of the screen. Additionally, you may use the keyboard shortcuts below.
||Toggles the metronome.|
||Toggles between piano and drums.|
||Cycles through available models.|
||Adjusts sampling 'temperature'. Higher temperatures sound more random.|
||Toggles looping of AI sequence.|
||Mutates AI sequence.|
||Sets AI response duration (in bars). 0 matches your input.|
||Sets input sequence duration (in bars). 0 matches your input.|
||Stops current AI playback.|
||Toggles "solo mode", which stops AI from listening to inputs.|