This commit is contained in:
Dominic DiTaranto 2026-08-09 16:22:53 -04:00
parent 29bb6f91bd
commit a81212c461

View file

@ -0,0 +1,70 @@
# 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
## Commands
| Command | Action | Page | Notes |
|---|---|---|---|
| `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