Skip to content

Latest commit

 

History

History
67 lines (40 loc) · 3.35 KB

README.md

File metadata and controls

67 lines (40 loc) · 3.35 KB

th.scala

Explore alternative and microtonal tuning systems with this small package of abstractions for Max

Support this project

Consider to name a fair price

or become a patron


About

A set of abstractions that allow you to explore alternative and microtonal tunings with MaxMSP. Import scala (.scl) files, display them on a custom keyslider (instead of the piano kslider) and convert note-numbers to frequencies in the data or signal domain.

Contains

  • th.scala

Import a scala scale-format file (.scl) with the (read $1) message and output a dictionary of the information from that file in JSON format (useful with the [dict] object). Give the object a name as first argument and use that to refer the to with the [stof] and [stof~] objects. Use the loaded scale to play notes based on the tuning. Set the tune and center value separately with messages (tune $1) and (center $1) or via attributes @tune and @center. When loading a 12-TET tuning, setting @tune 440 and @center 69 makes the object behave like a regular [mtof] object. Load the entire scala file list into a umenu object with getmenu (downloaded from huygens-fokker.org).

  • th.stof

Convert a number from scala scale-format to the corresponding frequency based on the tune, center and cents value. Use this object in combination with the [th.scala] to load your desired (.scl) scale-file. Use an argument to specify the name of the [th.scala] object to refer to. By default the output of th.stof is 12-TET so it behaves similar to the [mtof] object.

  • th.stof~

Similar as the [th.stof] object, except it works in the signal domain.

  • th.sslider

A custom jsui file that shows a kslider-like object to allow for playing with the custom tuning files. The keys are displayed side-by-side (no black keys), and their width denote the relative interval. A light-gray key denotes the octaves. The sslider works with velocity as well and in mode 2 it behaves as touchscreen (generating note-off). Unsupported yet is polyphonic mode.

  • th.ftomb

Convert a frequency value to a MIDI note number combined with a pitch-bend value for use with microtuning and alternative tunings. Combine this object with the th.scala and th.stof. Choose between hires (-1 to 1) or lores (0 - 127). Useful when wanting to connect to other midi-devices that accept pitch-bend via the [noteout] and [bendout] objects or [midiformat @hires 1] and [midiout]

  • th.ftomb~

Convert a frequency signal to a MIDI note signal combined with a pitch-bend signal for use with microtuning and alternative tunings. Combine this object with the th.scala and th.stof. Choose between hires (-1 to 1) or lores (0 - 127).

Install

1. download zip
2. unzip and place in Max Library (on MacOS ~/Documents/Max 8/Library)
3. restart Max8, open a new patcher
1. open terminal
2. $ cd ~/Documents/Max\ 8/Library
3. $ git clone https://github.com/tmhglnd/th.scala.git
4. restart Max8, open a new patcher

License

MIT License

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.