83 lines
3.3 KiB
Markdown
83 lines
3.3 KiB
Markdown
# Twelve Tone Generator
|
|
|
|
TUI Application for composing serialism music.
|
|
|
|
Features:
|
|
- Generate 12 Tone Matrix
|
|
- Play 12 Tone rows with over 15 instruments
|
|
- Loop and/or Sequence 12 tone rows
|
|
- Generate Serialized Octave Sequences based on tone matrix
|
|
- Generate Serialized Rhythm Sequences based on tone matrix
|
|
- Save Matrices and Other Sequences for later use
|
|
|
|
## Installation Guide
|
|
|
|
## Main Page
|
|
|
|
The main page consists of a 12 Tone Matrix.
|
|
|
|
The only part of the main page that really needs explaining is the tri-colored table below the matrix.
|
|
- The TONE row contains the tones of P0 row.
|
|
- RTHM is the rhythmic division assigned to a given note.
|
|
- OCTV is the octave assigned to a given note.
|
|
|
|
The rhythmic division and octave will always be the same for their associated note, the order just changes when you play a row other than P0.
|
|
|
|
When you do begin playback, this tri-colored table will be replaced with the row that is currently being played.
|
|
|
|
## Commands
|
|
|
|
| Command | Action | Page |
|
|
|---|---|---|
|
|
| `P0-P11` | Play Prime Row | Main Page |
|
|
| `I0-I11` | Play Inversion Row | Main Page |
|
|
| `R0-R11` | Play Retrograde Row | Main Page |
|
|
| `i0-i11` | Play Retrograde Inversion Row | Main Page |
|
|
| `loop <count> <P0-i11>` | Play row X times in loop | Main Page |
|
|
| `seq <P0-i11>,<P0-i11>... ` | Play sequence of rows, comma separated | Main Page |
|
|
| `r` OR `regen` | Regenerate Matrix | Main Page |
|
|
| `s` OR `settings` | Go To Settings Page | Main Page |
|
|
| `h` OR `help` | Open This Document | Main Page |
|
|
| `q` OR `quit` | Quit Application | Main Page, Settings Page |
|
|
| Setting ID | Edit Setting | Settings Page |
|
|
|
|
|
|
__Advanced Commands:__
|
|
- Loop a sequence:
|
|
- `loop <x> seq <P0-i11>,<P0-i11>`
|
|
- Example: `loop 5 seq P0,R3,i11,I0`
|
|
- Debug
|
|
- `debug`: Open up python console via breakpoint()
|
|
|
|
## Settings:
|
|
|
|
- BPM
|
|
- Set the BPM of the overall project, between 30 - 300 BPM
|
|
- INSTRUMENT
|
|
- Select an instrument for playback
|
|
- OCTAVE
|
|
- Select base octave for playback
|
|
- OCTAVE_RANDOMIZATION
|
|
- `0` Only play base octave
|
|
- `1` Randomize octaves, increasing octave range by +1 and -1 (example: base octave = 3, octave range = 2-4)
|
|
- `2` Randomize octaves, increasing octave range by +2 and -2 (example: base octave = 3, octave range = 1-5)
|
|
- `3` Randomize octaves, increasing octave range by +3 and -3 (example: base octave = 1, octave range = 1-4)
|
|
- When the range would result in an octave higher than 5 or lower than 0, it clamps range to fit 0-5
|
|
- RHYTHM_COMPLEXITY
|
|
- `0` No Rhythmic Complexity, Will play default division
|
|
- `1` Will play a rhythm based on sequence generated by tone matrix
|
|
- `2` Will play a rhythm based on sequence generated by tone matrix, Including rests (if rest probability is greater than 0)
|
|
- `3` Will play a random rhythm not based on a sequence
|
|
- DEFAULT_DIVISION
|
|
- `0` Whole Note
|
|
- `1` Half Note
|
|
- `2` Quarter Note
|
|
- `3` Eight Note
|
|
- REST_PROBABILITY
|
|
- The probability in which a rest will occur during playback when RHYTHM_COMPLEXITY = 2
|
|
- SAVE_SETTINGS
|
|
- Save current settings to a file, will automatically load when you restart the program
|
|
- SAVE_MATRIX
|
|
- Save the current tone matrix to a file, you can manually load this later
|
|
- LOAD_MATRIX
|
|
- Load a previously saved tone matrix
|