diff --git a/README.md b/README.md index e69de29..1335dc7 100644 --- a/README.md +++ b/README.md @@ -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 ` | Play row X times in loop | Main Page | | +| `seq ,... ` | 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 seq ,` + - 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