-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 6933b9c
Showing
1 changed file
with
15 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# Clip Evolver | ||
|
||
Welcome to Clip Evolver! To install, drag the Clip_Evolver.amxd file into your Live set. This device changes MIDI data, so make sure you’ve duplicated any valuable clips before engaging. Under the hood, two AI algorithms (MusicRNN and MusicVAE) from Google Magenta take the MIDI from the clip and continue it naturalistically. When the playhead reaches the end of the loop, that continuation MIDI replaces the original MIDI. | ||
|
||
This process will repeat as long as (1) the transport is playing, (2) the clip is playing, (3) the “Power” checkbox is selected, and (4) the number in the “Clip Slot” field matches the scene number of the clip. If you want the process to affect any clip playing in the track, select the “Follow” button. The maximum clip length at this time is 4 bars—if your clip is longer than 4 bars, only the first 4 bars will be evolved. Note: The device will need about 20 seconds to retrieve the algorithm over the Internet upon loading (this time will depend on your connection.) Feel free select “Power” at any time during this load-up period, but the clip will not start evolving until the algorithm has been retrieved. | ||
|
||
The effectiveness of this device depends very much on the speed of your computer. On slower computers, the algorithm may not have time to return the notes before the clip loops, leading to an endless cycle of waiting for notes that will never come. If you have a slower computer, make sure the “Interp” checkbox is deselected. This will drop the interpolating algorithm (MusicVAE) and just use the continuing algorithm (MusicRNN,) leading to quicker return times but less melodic continuity. You can also deselect this box if you want more randomness. | ||
|
||
The “Temperature” dial affects the intensity of the algorithm. Low temperatures mean fewer numbers of longer notes. Higher temperatures mean many short notes spread out over a larger pitch range. The right hand side of the device adjusts the Live-specific attributes of the output notes, with sliders for “Probability,” “Velocity,” “Velocity Deviation,” and “Release Velocity.” | ||
|
||
At the bottom-right is a pitch filter. All notes are selected by default. If you deselect a pitch, the device will randomly decide whether to search up or down for the nearest selected pitch. If all pitches are deselected, no notes will be returned. | ||
|
||
At the far right are octave range sliders, with “Lo Oct” representing the octave floor and “Hi Oct” representing the octave ceiling, rooted in the note C. They will constrain the algorithm’s output to the desired pitch range (inclusive.) For example, if you have “Lo Oct” set to “2” and and “Hi Oct” set to “5,” all notes between and including C2 and C5 will be let through as is. All notes outside that range will be converted to the nearest in-range octave. If “Lo Oct” is greater than or equal to “Hi Oct,” no notes will be returned. | ||
|
||
This is Version 1.0 so there may be a few bugs. Sometimes the algorithm doesn’t make any notes at all or gets stuck on the same notes, but it usually recovers after a cycle or two. If this happens for a long period, try adding some notes manually or increasing the temperature. If all else fails, click the “Restart” button at the bottom-right. Also, the device will work in the Max editor only when frozen. If you unfreeze the device, the reference to the Node script will break. This effectively makes the device uneditable, unless you can find a workaround. I am working on a solution to this. |