OK, here goes...
This patch is for composing in extended just intonation tunings. The idea is that every interval between two notes is based on a small integer ratio of the frequencies. DO is always 1/1, and in my program this starts as middle C. Csound and Scala both have text-based score formats for writing this way, in which any arbitrary frequency can be used; I made this for a couple of reasons. Mainly, you can enter JI (just intonation) notes with the mouse and see them on the screen. Of course, you could do this with any sequencer, if you fed it a series of samples that were pretuned to just ratios. But with my program, you can transpose the whole score to a new "1/1" with one keystroke, allowing you to sequence themes, modulate, etc, without having to do all the fraction multiplication.
If you don't feel like going through all this, at least try opening a few of the scores I included. The actual scores are the .ji files.
The instructions for using it are pretty dense. Here's a primer, and I'll see if I can write it up more conciselyl later.
_LIBRARIES_ The patch uses toxy, cyclone, and zexy.
_OPERATION_ The patch to open is JI.pd. This should open a control window and a blank score. The 8 "JIvoice" abstractions in the main control window are the instruments. Each has a different color, since they are all on the same spread. The numberbox next to each JIvoice is for assigning MIDI program numbers to colors. The vertical radio buttons are for selecting which voice to add to the score. The colored toggles right next to the JIvoice abstractions were to be for muting, but this hasn't yet been implemented. Underneath the JIvoice boxes is a horizontal radio with three options. MIDI turns off all audio processing and sends pitch bends, program changes, and notes to MIDI out; this won't work with any softsynths I know, because each note is sent to a different channel. It will only work with samplers or soundfonts. By default, PD output is turned on, and audio is on. This will generate audio according to the parameters for each voice: click on a JIvoice to see the parameters. The only thing I'll say about this window is that the FOF parameters at the bottom are only set up for MIDI control as of now; changing the numbers manually won't work. The only other thing I'll say is that the preset system has been getting jiggy with it... use caution if you use presets. They are saved in the .prs file with the same name as the .ji file for each score.
To open a piece, click on the symbol box under "Filename" in the upper right. Type in, for instance, "sonata04rondo" and hit enter, then click the "load" messagebox. You should see the score for the 4th movement of my JI sonata. Next click on the gray and purple JIvoice boxes in turn, and play with some of the parameters. Just make sure there is some kind of waveform in the box. Click the PLAY toggle in either the main window or a JIvoice panel. Music.
_TRANSPORT_
The buttons should be self-explanatory. To record to an audio file, select wave or AIFF under the RECORD button. Type the name for the output file, hit enter, and hit RECORD/STOP once. The num2 GUIs in the middle of the main window show the time in minutes and seconds for PLAY, but not for RECORD The transport can be controlled with the keyboard. Control-I starts playback, and "I" alone stops it. Control-PageUp moves the playback cursor back one quarter-note, and Ctl-PageDown moves it forward one quarter note. Clt-Home moves the playback cursor to the beginning. Under Windows, Ctl-Help and Ctl-Delete move the cursor forward and back by 4 quarter notes at a time.
_SCORE EDITING_
This is the main reason for this patch to exist. With the main window active, switch to the score window. This should enable the mouse control. The important keys to know:
Q: prepares the mouse cursor to enter notes. You should see a black preview note jump to the mouse when you hit Q, and it cycles through common note ratios when you move the mouse. If you now click the mouse, you create a note.
E: disables note entry so it's safe to click on the score, and sets the score window to edit mode. You can now select wrong notes and delete them, or whatever.
Ex2: hitting E again returns from edit mode, but does not prepare the score for editing. This way, you can drag on the right end of a note line and change the duration. Hit Q again to enter more notes.
1-0: the number keys change the duration of the preview note.
Shift+1-8: Shift and numbers 1-8 changes the voice to be entered, as well as the color of the preview note.
T: the most important one of all. This causes the entire score to transpose to the key of the preview note; whatever ratio is showing by the mouse cursor will become 1/1 and the whole score changes to reflect the new DO (not an abbreviation... DO as in "a female deer").
G: also important. If you accidentally hit T without looking, or go through a series of changes and lose track of the original key, G will return the entire score to 1/1 = Middle C.
Y and H: Y and H change the volume of the note to be added. You will see the small vertical block on the preview note increase or decrease.
, and . OR < and >: these change the rhythmic quantizing of the preview note placement. < snaps to 1/6 of a quarter note, and > snaps to 1/4 of a quarter note.
All of the score editing is enabled by the toxy external. So have it.
_MEASURES_
This only works from the main window. To the right and just down from the main Volume, select the number of measures to add, and underneat that, select the time signature. Hit the button to the right of the number-of-measures-to-add to add them. Hit Clear if you want to remove all of them. Changing existing measures is a biaiaitch at this point. Not sure how to fix it.
_TEMPO_
The 'Add Breakpoint' button will insert a tempo marker with the current value wherever the playback cursor is. It will be relative to whatever note value you select to the right, but this will not be visible in the score. Also, only exponential tempo currently works. I came up with a solution to make the tempo change exponentially, and never got around to reconnecting the linear tempo change. "Ignore Tempos" will playback a score at whatever speed you select, instead of what the markers say.
_MIXING_
Open pd mixer if you like, it's hiding to the right of the Tempo section of the main window.
_CAUTIONS_
There are many other features that I created and don't use much anymore, or just aren't as essential. Experiment, but save your stuff if you come up with anything you like. The save feature won't ask about overwriting, so make sure you type a new name for each file before saving. The zoom has worked and not worked correctly at various stages; everything I added after the zoom had to incorporate a sort of "zoom cosmological constant" called "zoomfact", and I can't guarantee I put it everywhere it should be. The "EDIT THE SCORE" section is pretty much replaced by mouse editing. It still works; it highlights individual notes in red... but sometimes leaves them red. That whole section is scary. The selecting/copy/paste/move/transpose section is also scary, but a little more reliable. It reads the location of the playback cursor and selects what's between the Start and End spots. This "transpose" function actually changes the heights and pitches of the selected notes, instead of just the ratio names.
_BIG BIG CAUTION_
The worst thing you can do is edit the patch itself and save it while a score is open. The preset memory function stores the entire waveform for each preset added in memory, and if you save the patch it will grow in size giamongously. If this happens, edit JI.pd in a text editor and remove everything between "canvas .... presetmemory" and "restore .... presetmemory", and between "canvas ..... score" and "restore ..... score". If you edit the patch itself, I suggest closing it using the "Close" messagebox to the right of the Zoom function. This clears the presets and score, and saves and closes the patch.
_LICENSE_
You may not become a millionaire off of my JI scoring idea and not split it with me. Pretty much anything else is okay. Unless you're already a millionaire, in which case you must pay me to write music.
-Chuckk
I've found a external called any2ascii by Marc Lav. on the Pd site. Has anyone successfully compiled this for Osx? Are there any alternatives that work under Osx for converting a number stream (coming from [comport]) to ascii?
best..
_____________Nillow_MaTeMa........................: download matema's work 17mp3 --> http://www.organismo.art.br/matema
You can also use ascwave from the cxc library, which is compiled and included in Pd-extended. If you are using Gem, text3d has a method to convert numbers into ascii, [string 101 67 etc(. Note that this does not work on any of the precompiled OSX versions of Gem that I have used (0.90), but it does work on the Windows and Linux versions. (But why?)
~Kyle
On 9/5/06, Nillow nillow@surfemail.com.br wrote:
I've found a external called any2ascii by Marc Lav. on the Pd site. Has anyone successfully compiled this for Osx? Are there any alternatives that work under Osx for converting a number stream (coming from [comport]) to ascii?
best..
nillow@surfemail.com.br
_____________Nillow_MaTeMa........................: download matema's work 17mp3 --> http://www.organismo.art.br/matema
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
[makefilename %c] will convert numbers into ASCII characters. Also,
I just wrote this class for picking out and assembly numbers from a
stream of ASCII chars, like from [comport].
It is called [ascii->int]. ("0x2d0xe3" == "->")
.hc
On Sep 5, 2006, at 1:33 AM, Nillow wrote:
I've found a external called any2ascii by Marc Lav. on the Pd site. Has anyone successfully compiled this for Osx? Are there any alternatives that work under Osx for converting a number stream (coming from [comport]) to ascii?
best..
nillow@surfemail.com.br
_____________Nillow_MaTeMa........................: download matema's work 17mp3 --> http://www.organismo.art.br/matema
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/ listinfo/pd-list
Man has survived hitherto because he was too ignorant to know how to
realize his wishes. Now that he can realize them, he must either
change them, or perish. -William Carlos Williams