Skip to main content

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

Upcoming Features

  • Support independent generation, saving, and loading for rhythm and octave rows
  • Support loading of custom soundfonts
  • Support custom input of Tone Row + Rhythm and Octave rows
  • Output rows to midi
  • Up arrow functionality so users can rerun commands easily

Metadata

Release files for atonatui 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for atonatui 0.1.0
File Size Uploaded
atonatui-0.1.0.tar.gz 9.0 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for atonatui 0.1.0
File Interpreter ABI Platform
atonatui-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 17.9 MB

Release files / atonatui-0.1.0.tar.gz

Download URL atonatui-0.1.0.tar.gz
Size 9.0 MB
Tags Source
SHA-256 checksum
How to use checksums
9766d0b3549b2ebf5580f843b3ff80bea34ea1dbc7cb4d611cb972384a3f8bc5
BLAKE2b-256 checksum
How to use checksums
53b430bbddda22066abb902e5aa5dac5d12b95c7f2b5bbd561a33b2c508a90fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.2

Release files / atonatui-0.1.0-py3-none-any.whl

Download URL atonatui-0.1.0-py3-none-any.whl
Size 9.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
96d7e43206f26dca7d0274d71277658c3f37dd770230f9c8131586457d207638
BLAKE2b-256 checksum
How to use checksums
7348ff1cd3499ac8fbb41414590810be3b5ab926843d8aaea26b7cad547b66aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.2

Release history Release notifications | RSS feed

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page