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

Prerequisites

atonatui requires the FluidSynth audio engine to be installed on your system:

  • Arch Linux: sudo pacman -S fluidsynth
  • Ubuntu/Debian: sudo apt install fluidsynth
  • macOS (Homebrew): brew install fluidsynth
  • Windows: Download the binaries and add them to your system PATH.

Installation

pipx install atonatui

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

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

Built distribution (wheel)

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

Total release size: 17.9 MB

Release files / atonatui-0.1.4.tar.gz

Download URL atonatui-0.1.4.tar.gz
Size 9.0 MB
Tags Source
SHA-256 checksum
How to use checksums
68f486000e76b51f064bc978761848c7f2623a4ad0756821a745e672b4cc121f
BLAKE2b-256 checksum
How to use checksums
4308d98a26efdc5c46bc226cf64d55d648c3af74560d46f16f378596b5079128
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.4-py3-none-any.whl

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

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

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