[Pd] my "microtonal" sequencer

Chuckk Hubbard badmuthahubbard at gmail.com
Wed Aug 30 21:59:26 CEST 2006


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

-- 
"Far and away the best prize that life has to offer is the chance to
work hard at work worth doing."
-Theodore Roosevelt
-------------- next part --------------
A non-text attachment was scrubbed...
Name: JIseqencer.zip
Type: application/zip
Size: 739652 bytes
Desc: not available
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20060830/49012c4d/attachment.zip>


More information about the Pd-list mailing list