atonatui/README.md
2026-08-09 16:22:53 -04:00

2.8 KiB

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