Hello,
I have put together a system with an SL880 as the main keyboard controller, and as the "front panel" on the beast leaves a little to be desired (I got it for a good price and I like the keybed), I was hoping to create some tools in PD that would modify an incoming MIDI stream.
I am interested in working with alternate tunings, and as such would be interested in any tools for PD that would handle "on-the-fly" retuning of a MIDI stream. From what I have seen of other implementations, the MIDI stream needs to be split up into different channels, where each channel has a different pitch bend assigned to it (or they could be doled out in a round robin fashion). Anyway, the point is to translate the incoming MIDI, and based on the current tuning system selected, and produce a multi-channel MIDI stream with pitch bend info to effect the tuning.
From working with the program 'scala', the definitions it has for what it takes to create a "keyboard map" for a particular tuning system would be a good place to start. While this is not a complete description, the file contains info to define a range of MIDI notes to translate, the base reference MIDI note number, and the frequency that is produced by the base reference note. There are other things that allow the "removal" of keys from the MIDI stream that are not used in the particular keyboard map.
Thanks,
Mike
on 1/29/03 6:54 PM, Michael McGonagle wrote:
I am interested in working with alternate tunings, and as such would be interested in any tools for PD that would handle "on-the-fly" retuning of a MIDI stream.
Hi Michael,
You can use freeware Scala or shareware fts on the FTS to convert single channel midi to multi channel midi. On the Mac, you can use my commercial program Li'l Miss' Scale Oven (LMSO). The OSX version of LMSO is not ready yet so I run LMSO separately on a OS9 machine and feed it into PD. I assume that on the PC you can do the same if you have a separate machine, or possibly you can run Scala or FTS concurrently with PD and use a loopback program or failing that, a hardware loopback. Once the OSX port is done, then I'll run LMSO and pd concurrently in OSX.
You also mention the issue of tuning file formats. It's unclear to me if you are seeking to begin a discussion of appropriate tuning file formats for use with a PD module you want to develop. If so, I would not recommend the Scala .SCL format as it does not contain the anchor key, anchor frequency and mapping information, but that is held in a separate file. My feeling is that it is better to have one file that completely contains all the info needed to specify the tuning. The native format of my program does that, but there is also the .TUN file used by many VST plugins which both Manuel (creator of Scala) and I (creator of LMSO) have added support for to our programs. Caution is in order as there are two versions of this file format; the old one is constrained by single-cent resolution, but the more recent one has basically unlimited tuning resolution. These file formats map 128 keys to 128 arbitrary frequencies and then the user can use Scala or LMSO or whatever to create any possible fixed mapping of MIDI notes to pitches. I can provide you with details of the format and examples if you wish. If some other format seems more appropriate or convenient for PD (like pd parsable table data), it can be easily added to LMSO and I can forward the info with Manuel for inclusion into Scala.
Thanks,