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

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

Built distribution (wheel)

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

Total release size: 17.9 MB

Release files / atonatui-0.1.3.tar.gz

Download URL atonatui-0.1.3.tar.gz
Size 9.0 MB
Tags Source
SHA-256 checksum
How to use checksums
04067ef018c8303add63ab2204025a00e9a8d7fad5603586fcc7bebc643baed0
BLAKE2b-256 checksum
How to use checksums
583b6d832ecedb8ca21157067d7b2b4fa45effa171c3585520864f1ca6fd318a
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.3-py3-none-any.whl

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

This release

0.1.3 This release

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