Atonal Chord Transitor (ACT)  by Anna Cheng-Zhi Huang

Final Project in ISE/CSCI 575, 2005

ACT is a Java-based program that generates "3-voice closed position" atonal chords when given a starting and ending simultaneity, and user-synthesized scale.  It uses GUIDO for I/O, and generates the transition between the starting and by ending following linear trajectories and utilizing the A* search algorithm.  (src) Future improvements include to enable variable number of "voices" in chords, to allow wider ranges, to include user-tunable degree of dissonance and degree of linear tendency, and to correct pitch spellings.

The icon is dark due to nature of sound produced by ACT that features strong dissonances.  The disorder of the spirals symbolizes the atonalness.

[ ABOUT THE PROGRAM | INPUT | SOLUTION POLICY | SEARCH ALGORITHM | SOURCE CODE ]


Java-based program

If your computer does not yet support Java, visit www.java.com Free JAVA Software Download.

The zip includes AtonalComposer.java GenericSet.java GenericSetNode.java Note.java NoteNode.java Progression.java Utility.java.  To download, click here.

It can be compiled and executed by

    javac AtonalComposer.java

    java AtonalComposer

The two figures below show the input:

    START:             f1*1/4 e1*1/4 d#1*1/4
    END:               b1*1/4 f1*1/4 c0*1/4
    SCALE:             c1*1/4 c#1*1/4 d1*1/4 d#1*1/4 e1*1/4 f1*1/4 g#1*1/4 a#1*1/4 b1*1/4
     

and the output after clicking the "GENERATE" button.

    [ { f1*1/4 , e1*1/4 , d#1*1/4 } { g#1*1/4 , e1*1/4 , d#1*1/4 } { a#1*1/4 , e1*1/4 , d#1*1/4 } { b1*1/4 , f1*1/4 , c#1*1/4 } { b1*1/4 , f1*1/4 , c1*1/4 } ]


 

Click File->save to save the output in your working folder. 

The output text file can visualized into score and played by using GUIDO NoteViewer.


User-synthesized scale

It can be any collection of pitch classes. 


GUIDO

Each note is defined as by its pitch class, accidental, octave, *, duration.  For example a quarter middle c# would be represented as C#1*1/4.
Each octave stays constant from c up to b.

To learn more about GUIDO, visit GUIDO Music Notation Format Specification.


Linear Trajectories


A* search algorithm

f(n) = g(n) + h(n)

The cost of g(n) will be increased with simultanieties unisons, 3rds or 6ths, 8ves and no dissonances

The cost of h(n) is determined by the distance from the goal with reference to the linear trajectories. 

The figure below is an example of the branching search space.

 




The University of Southern California does not screen or control the content on this website and thus does not guarantee the accuracy, integrity, or quality of such content. All content on this website is provided by and is the sole responsibility of the person from which such content originated, and such content does not necessarily reflect the opinions of the University administration or the Board of Trustees