Make MIDI from words.

This HyperCard version runs only in OS9. A Supercard version for OSX is below.

Stack screenshot Stack Icon

The stack itself can be downloaded here. HyperCard requires OS9 (at best) or Classic under OSX to run, the program HyperCard to be installed, or HyperCard Player, which can be found on your OS9 System CD.


I had always wanted to build a stack to translate text characters to notes in order to build simple melodies. Simple enough, but getting the consequent text to a MIDI file was the difficulty.
Above, is a screenshot of the first card in the stack, and the first little tune created, from a phrase by Leonard Cohen. Basically, the stack translates the text character to an ASCII value. I don't pretend to understand MIDI encoding, but apparently that numerical value is assigned a note value.
So, based on the relationship of the distance between the characters, we can generate a melody. Yes, some of them aren't very 'melodic'.
Some can be surprisingly interesting. The best 'tunes' I seemed to find were based on some kind of poetic rhythm or pattern, a repetition of similar text strings or layering phrases to create chords, and judicious choices of instrument.
Later cards in the stack will create a multiple lined or chorded melody.
The buttons beside 'letter:" allow you to slide the melody up and down the scale by assigning a different starting point for the translation comparison.
Without UDI's XCMD's the rest of this would have been impossible. The XCMD's call the QuickTime Instruments and allow the writing of a MIDI file. They do far more sophisticated MIDI calls than I understand. I usually masssage the MIDI file in Midigraphy.
I also have been able to take a very simple line drawing, get it out of Photoshop as ASCII, sometimes cleaning up the file in bbEdit, to draw music. Best results come from a longish, narrow graphic file to simulate the passage of time from left to right. And, once, puzzling about whether there was any value in the spam we all receive, I tossed a short phrase into the stack and clicked away.

Orange Well, it's just "orange"
Gate Gone, gone, gone beyond...
korean PS My first experiment with spam. It was all interesting repetitive non-roman ASCII characters. 2 minutes 23 seconds.
refusal of recieptSecond experiment with spam. 1 minute 47 seconds.
buddha The text string "buddha" multilayered with different spaces between each word on each track. 1:18
mantras melody the 'Om' and 'namoamidaba' mantras layered with OM stretched in various ways. 1:44
namo1
namo2
UTF message in Thai.mov Thai2 but as a single line melody. 6 minutes and 30 seconds.
Thai2 Thai UTF translated message in a mulitine chorded melody. Another gift from the wizards on the MacScript mailing list. 45 seconds.
UTF message in Russian Russian UTF translated message melody. 2:22.
AFilemakerItem2 The text string "Result:{«class fccc»:«data fccc0000000D», «class lst»:«... a great long hexadecimal string" and so on, till the 1725 characters to the end-of-file result from an Applescript call to FileMaker. Grabbed from a message posted to the MacScript mailing list. It has been given 5 layers with different instruments assigned to each. 6 minutes 48 seconds. I scripted up a quick set of buttons to translate the hexadecimal to a contiguous tone range.


2006: This is a version on Supercard. There are two; 1) a project requiring Supercard itself to run, and 2) a standalone version which should run under OSX. It generates only a Chromatic scale, single line melody. I drag the exported MIDI file into Garageband and futz about with it there.
These chants have been reasonably successful translations from text to tones. The repetition of words, vowels and phrases lends more musicality. I wish I knew something about music. :-)

MIDI tricks screenshot

The Heart Sutra for Machine Beings 5 minutes 41 seconds
The PreceptsQuite joyful. 3 minutes 44 seconds
The Great Compassion Mantra Still a work in progress, I think. Calm, interesting. meditative. 8 minutes 45 seconds

Download the standalone MIDI tricks or the Supercard Project version which requires Supercard or the SuperCard Player to run. And if you have Supercard, the project is editable.