Semita
A Library of Max/MSP Patches for Learning Music Theory



Standalone Apps -- for Mac only

These are the same patches as in the patch bundle. Simply roll over the filename in the Download column and click to download the app. These are very large files, so please be patient. You do not need to install Max on your computer to use these apps.


You may have two problems when you go to run these. First, your Mac security settings may not let you open an app you downloaded from here. That's easy to fix -- just control-click on the app, and open from the menu that pops up. Once you do that the first time, you should just be able to double-click on the app to open it -- your computer will remember your preference.

The second thing that may go wrong is that the Bach/Cage objects may not load properly. This is because of an "incorrect architecture" error that is the result of Apple's new M1 chips. This problem will only apply to you if you have a new M1 Apple computer.

Control-click on the app again. On the menu that opens hit "Get Info". Check the box that says "Open in Rosetta". This setting will only apply for this one app. Now your M1 Mac should be able to open all the Bach/Cage objects. If you have any other problems or questions, please send me an email!



File Version Type Description
experiment-with-pitch.zip
174.3 MB
0.51
basic
Try out different ways of creating pitch

This patch allows you to experience the difference between the linear and logarithmic nature of pitch space. You can use sliders to change the frequency of a sine wave as well as a simple one-octave keyboard. Then, you can see the results on an oscilloscope, spectroscope and on the musical staff.

quiz-notes-on-staff.zip
173.7 MB
0.51
basic
Identify notes on the staff

This basic patch allows a student to pick a note on a piano keyboard. That note is displayed in standard notation on three different staves. The student picking the note gets to see what the note name is (e.g. C4, etc.) Then, another student (or students) in the class identify the note that was chosen. The first student can reveal the correct note name to the class by using their controller.

quiz-intervals.zip
174 MB
0.53
basic
Interval quiz

This is a basic interval quiz. Students can quiz themselves, or work together in a live class setting. Intervals can be shown on treble, alto or bass staves, harmonically or melodically, above or below a give note. A wide range of intervals can be added individually or in groups to the pool. Students can use their wireless devices to control the solutions on the staff in real time. Teachers can input their own students' names, which will be chosen randomly without repeating until everybody on the list is chosen once.

scales-display.zip
172.5 MB
0.4
basic
Display scales and calculate their intervallic structures

This patch simply allows the user to display a lot of different scales on the staff. Scales include all major and minor scales with key signatures, as well as some of the more typical post-tonal scales (whole-tone, octatonic, etc.)

quiz-scales-build.zip
174.1 MB
0.5
basic
Build Scales Together

Similar to the interval quiz, this patch lets you select a pool of scales to be quizzed on. You can choose from three clefs. Students are chosen either one or two at a time. Using tablet controllers or on the patch itself, you can move each note around individually in the scale. Both ascending and descending forms are displayed (even if the scale is the same in both directions). The help system makes each incorrect note red. You can play the scale as many times as you like.

quiz-chords.zip
174 MB
0.52
basic
Chord quiz

Students can work on spelling triads or any of five types of seventh chords on the staff, in root position only. They can work in pairs or by themselves to solve the problem. Students can use their wireless devices to change notes in the chord, then check their answer.

counterpoint-1st-species.zip
173.8 MB
0.51
intermediate
Generate cantus firmi and first species counterpoint

This patch generates cantus firmi and first species counterpoint in the Ionian mode. The number of notes in the exercise is limited to 9. There are several constraints (e.g. overlap, direct 5ths, three notes in a row, etc.) that can be turned on and off independently. David Lewin's "Global Rule" for counterpoint can also be turned on or off. Students can create good (or bad!) counterpoint, see (and hear!) the results and then discuss the merits or drawbacks of solutions. They can control the constraints on the engine using a wireless controller.

pc-intervals.zip
172.4 MB
0.51
advanced
Evaluate intervals as integers

After placing notes on a staff, you can analyze their intervals and p[lay the notes back. The patch displays ordered and unordered pitch and pitch-class intervals -- four different kinds of intervals in all. The patch calculates the MIDI notes, the interval vector, and several other useful data.

pc-set-info.zip
172.4 MB
0.52
advanced
Calculate PC set info

You can enter integers or note names, and the patch will calculate cardinality, normal form, prime form and interval vector. The patch will tell you if the set is symmetrical. If the PC set has a Z-related pair, it will show you what its Z-relation is. You can transpose and invert your PC set on a circle diagram and on the accompanying staves.

make-row-basic.zip
172.8 MB
0.51
advanced
Make a 12-tone matrix

This patch not only makes a twelve-tone matrix from any row you enter (or using one of the presets), but also displays the row on staff notation, analyzes the ordered pitch and pitch-class intervals, shows the prime form of the discrete hexachords, and includes a fun graphic!

make-row-hex-comb.zip
172.3 MB
0.51
advanced
Find hexachordally combinatorial hexachords

If you enter a hexachord, this patch will tell you all the Tn and TnI levels at which that hexachord is combinatorial. It will then show you the twelve-tone rows that the hexachord can generate. There are several useful presets for showing the all-combinatorial hexachord A-F, as well as a few other useful features.

make-row-all-int.zip
172.4 MB
0.51
advanced
Generate all-interval tone rows

This patch simply generates a random all-interval tone row. It spits rows out one at a time: it would take too long to generate all 1928 different all-interval rows! This patch is based on the help file for the [bach.constraints] object, and so I owe Andrea and Daniele a big thanks for inspiring me.

synthesis-additive.zip
173.2 MB
0.5
advanced
Simple additive synthesis demo

By controlling parameters such as the frequency of the fundamental, harmonicity, gain for each of the component sine waves, etc., students can experiment with the basic concept of additive synthesis. This is not a synthesizer in the classical sense, but rather just an abstract but visually appealing way to visualize how the technique works.

synthesis-subtractive.zip
173.6 MB
0.5
advanced
Simple subtractive synthesis demo

By controlling several parameters, such as the base frequency, the harmonicity of the bandpass filters, Q, and so on, students can experiment with the basic concepts underlying subtractive synthesis. This is not a synthesizer in the classical sense, but rather just an abstract but visually appealing way to visualize how the technique works.

synthesis-fm.zip
173.4 MB
0.5
advanced
Simple FM synthesis demo

By specifying pitches on the staff as carriers and/or modulators, you can generate a frequency-modulated series of notes. You can then export the notes as MIDI and view the resultant frequencies. This patch was inspired by some of Tristan Murail's early experiments for his pieces of the 1980s and 1990s. This is not a synthesizer in the classical sense, but rather just an abstract but visually appealing way to visualize how the technique works.

euclidean-rhythms-introduction.zip
172.4 MB
0.5
advanced
Create Euclidean rhythms of any type

This patch simply allows you to create a Euclidean rhythm E(k,n) with any k or n (as long as k < n). The rhythm is displayed on a circle diagram and in standard notation. The inter-onset-intervals (IOIs) are also displayed. You can export the rhythm in MIDI or XML format and play it.

euclidean-rhythms-play.zip
174.1 MB
0.5
advanced
Play with Euclidean rhythms

This patch allows you to create and synchronize up to three Euclidean rhythm cycles at the same time. You can convert the resultant notation to score format and export it as MIDI or XML. The patch uses several step sequencers that are linked together. Each sequencer can be individually controlled using an iPad or other wireless device.

equal-temperament.zip
172.6 MB
0.51
advanced
Generate any equal-tempered system

This patch allows the user to generate up to 64 notes of any equal tempered system, defined by the nth root of m. You can specify the frequency (in Hz) of the lowest note as well as the microtonal division. The patch will show you the notes on the staff as well as the frequencies in Hz of every pitch.

serial-matrix-generator.zip
172.5 MB
0.5
advanced
A basic serial matrix generator

While there are as many different ways to generate serial matrices as there are matrices themselves, this patch could provide some introduction to the concept. The patch generates a system of matrices up to six elements long. The first row of each matrix is a rotation of the previous matrix's first row. Integers from each matrix could be used to generate content such as pitch, rate of change, timbre, duration, or any other musical parameter.

tonnetz.zip
172.4 MB
0.4
advanced
Some fun with the Tonnetz

This patch allows you to experiment with some basic transformations on the Tonnetz. You can transform collections of notes in various ways, see the notes on the staff, hear them, and export your work as MIDI. Several improvements are planned for this patch in the near future.

markov.zip
172.6 MB
0.5
advanced
Analyze and synthesize Markov chains

This patch allows you to input a number of pitches and choose the order (or depth) of the chain. You can then run the synthesizer to create new material. These notes can then be exported as MIDI or XML. You can also view a type of transition matrix to get an idea of how the patch works.

interpolate.zip
172.5 MB
0.5
advanced
Interpolate between different chords

You can interpolate between four different chords using the mouse. The new chords can be exported as MIDI or XML. This patch was intended to be used as a way to generate micropolyphony, and would function well in that capacity with a little work on the output in a DAW or engraving software.


Copyright © 2022 by Paul Miller