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.1

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.1
File Size Uploaded
atonatui-0.1.1.tar.gz 9.0 MB Details

Built distribution (wheel)

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

Total release size: 17.9 MB

Release files / atonatui-0.1.1.tar.gz

Download URL atonatui-0.1.1.tar.gz
Size 9.0 MB
Tags Source
SHA-256 checksum
How to use checksums
c2bff0f379ae89acbec6bb2bf7cfc5f3b36fafc9b7c51be8eeb3f4a71f9f627a
BLAKE2b-256 checksum
How to use checksums
0c3bc97ceaf7dc30fa03fef0c0872c95f898056d4d1742a2a2596869e12fbc88
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.1-py3-none-any.whl

Download URL atonatui-0.1.1-py3-none-any.whl
Size 9.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
37e87d18439132be0dabef5cac8685ebbaacbae61405731e28ef59bb61dbe702
BLAKE2b-256 checksum
How to use checksums
c5371493bd68c47b38eabf60513837c29c48afccec5e4a5c0e4cf0ea6c261d6e
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

This release

0.1.1 This release

2 release files

0.1.0

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