Make music with Polyphony. Ideate. Compose. Perform.
This project is under active development.
In Sonic Pi, run the following:
load "LOCATION/20210323-polyphony/polyphony.rb"
run
Replace LOCATION
with the location of the project. E.g.
load "~/OneDrive/music-production/sonic-pi/20210323-polyphony/polyphony.rb"
run
N.B. MIDI instruments should be placed before Sonic Pi instruments, so that channels align as expected.
Within settings.rb
:
- enter/edit instruments in
MIDI_INSTRUMENTS
- enter/edit instruments in
SPI_INSTRUMENTS
- enter/edit an array of instruments in
ENSEMBLES
- for
ensemble
inARTICULATED > performance
andSUSTAINED > performance
ofsettings.rb
, set the appropriate ensembles - if using MIDI:
- set up (a) MIDI cable(s) and make sure Sonic Pi recognises it as (a) MIDI out port(s)
- under
ports
inARTICULATED > performance > midi
andSUSTAINED > performance > midi
, replace the array entries with the appropriate MIDI out ports, as named in Sonic Pi - set the MIDI channels at your endpoint (DAW and/or hardware) to correspond with the instruments in the ensemble (starting with channel 1 for the first instrument)
- N.B. any instruments (of any kind) more than 16 will automatically be mapped to the next MIDI port(s), because each MIDI port only has 16 channels
All settings can be found in settings.rb
.
Setting | Values | Description |
---|---|---|
seed |
int [0,] | random seed |
Setting | Values | Description |
---|---|---|
initialKey |
int 0-11, [any heptatonic scale] | key signature (0-11 corresponds to C-B) |
Setting | Values | Description |
---|---|---|
unitsPerMinute |
(0,) | tempo |
timeLimitInUnits |
[0,] || nil | nil performs forever |
Setting | Values | Description |
---|---|---|
selection |
"articulated" , "sustained" |
voice sections to use |
Setting | Values | Description |
---|---|---|
ensemble |
(ensembles from ENSEMBLE ) |
ensemble to use |
ports |
MIDI out port from sonic pi | ports to use |
The GitHub wiki offers a more in-depth look at the program. That said, a lot is to be figured out from playing with the source code itself.
Please feel free to reach out to me on Twitter! (@0delphini)