From jens@panix.com Wed Apr 16 09:45:07 1997 by hyperreal.com (8.8.4/8.8.4) with ESMTP id JAA03587 for ; Wed, 16 Apr 1997 09:45:05 -0700 (PDT) 16 Apr 97 12:42:05 -0500 16 Apr 97 06:06:47 -0500 Date: Wed, 16 Apr 1997 05:53:40 -0400 From: Jens Johansson Subject: New to list... ..so I'll jump in. Here are some weird M12/Xp programming discoveries. Hope any of these aren't old news. I made them up all myself and wrote them down many years ago on a piece of paper I just unearthed! Some of these may be stupid ways of doing things.. * How to get non-12-tone scales: Variant 1: OSC page2 controlled by KBD. matrix mod: KBD + 62 and KBD + 49 = 19 steps/oct Variant2: KBD -> TRK1 -> LAG; OSC page2: controlled by LAG only. TRK1 values 0, 15, 31, 47, 63 = 6 steps/oct (whole-tone scale) TRK1 values 47, 39, 31, 23, 15 = -12 steps/och ("reverse" scale) (Variant 2 has the benefit of easy routing to the filter as well.) In general, the "VCO page2" hardwire LAG is a good path to weirdness. Anything can be plugged into the LAG input and be routed straight into the brain of the VCOs for much more extreme frequency sweeps (and speed?) that you'd get from patching via matrix modulations to VCOXFRQ. * RAMPs sound like they have faster attacks than ENVs. (Or is this my imagination?) * You can obtain in-phase frequency multiples of of a LFO signal (triangle wave) by routing it thru a TRK set to [0, 31, 63, 31, 0] (this doubles the frequency). [0, 63, 0, 63, 0] gives a crude quadruple-frequency wave. This process can be repeated with more TRKs in series of course.. (if it weren't for the fact that the whole matrix mod scheme implemented in software, there could be some interesting FM effects to be had there!) * The TRKs can also be used to create weird LFO wave forms. Or to skew the distribution of LFO noise, or LFO sample-hold-noise. Or to create weird envelopes for that matter, by routing a RAMP into one. * Another good use of the TRKs are to assign a bipolar lever (or anything else) to more than one parameter: two TRKs with values such as [0, 15, 31, 31, 31] and [31, 31, 31, 47, 63] split up the lever into one only-negative and one only-positive signal. * I managed to get a pretty good simulation of "triple BBD" type ensemble effects circuit (a la the CS80 or PolySix or some stringers) using six LFOs and three VCOs per voice. I don't remember exactly now how it went but it used key trigging of groups of three LFOs that had the same frequency, but different phases. It used two different single patches, one with four LFOs/two VCOs and one with two LFOs/one VCO. The LFOs modulated the VCO frequencies. This may sound like no big deal at all, but it really gave a nice warm pad with a very "tweakable" lushness parameter, that had the added bonus of not having to use PWM. * The LAG unit can be used for sample-and-hold. Set to EXPO, RATE=63. Modulate the rate with the "GATE": GATE=63 => sample, GATE=0 =>hold. * You can derivate a signal crudely by patching the "raw" signal as positive modulation and a LAGged signal as the same, but negative, modulation. (to the same destination then of course.) [Also adding positive modulation, and negative quantized modulation, of the same source to the same dest is interesting.] * The SAMPLE wave of the LFO can be used for a "multiply" type hack. Set the frequency to 63, plug one factor into the sample input, and modulate the VOL of the LFO with the other factor. The LFO output is a rough appx of the product. (It's a bit slow though, even at RATE=63) I've for instance used this to set up a "key-dependent pitch change" to a lever.. * Also a LFO can be used to S/H with a bit more hassle if the LAG gen is used for something else; here's an example that enables you to sample a signal with PED2 (63=SAMPLE, 0=HOLD). LFO1 OUT has the sampled signal. [RAMP1/RATE=0/EXTTRIG] -> sample in of [LFO1/WAVE=SAMPLE/RATE=63/VOL=0] [LFO1] -> TRK1 [14,29,33,47,63] -> sample in of [LFO2/WAVE=SAMPLE/RATE=63/VOL=63] [sample/hold input] -> sample in of [LFO3/WAVE=SAMPLE/RATE=63/VOL=0] Matrix modulations: PED2 +63 LFO3VOL PED2 +63 LFO2VOL LFO3 +63 LFO1VOL LFO2 +63 LFO1VOL LFO2 +63 LFO1VOL LFO2 +49 LFO1VOL * Here's a really weird one (wastes a lot of LFOs and modulations): a flip-flop. PED2 will toggle the output.. and the "output" of the flip-flop is LFO1OUT. [RAMP1/RATE=0/EXTTRIG] -> sample in of [LFO1/WAVE=SAMPLE/RATE=63/VOL=0] [LFO1] -> sample in of [LFO2/WAVE=SAMPLE/RATE=63/VOL=63] [LFO2] -> TRACK1 [63,63,63,31,0] -> sample in of [LFO3/WAVE=SAMPLE/RATE=63/VOL=0] Matrix mods: PED2 -63 LFO2VOL PED2 +63 LFO3VOL LFO3 +63 LFO1VOL LFO2 +63 LFO1VOL LFO2 +63 LFO1VOL LFO2 +63 LFO1VOL [ Hey I wonder if you could construct a counter out of these flip-flops, if there were more LFOs?? :) ] Some other random stuff: * It's a good idea to keep a non-sounding patch in S00, so you can very quickly key in '00' in voices you temporarily want to mute in Multi mode... * Hitting '99' saves you a few milliseconds of time if you want to just enter the maximum value of '63' * I opened the pitch block up on my M12 and turned the levers around, that way they correspond physically with most other synths. The polarity then needs to be reset via software, though, but at least you don't have to change every patch if you like the pitch wheel on the left and the mod wheel on the right, like me! Possible M12 bugs: * The VCO's are a bit unlinear in the extreme low end. * PRS leaks over into PED2 and PED1. * High lag rate and positive matrix modulation result in lower lag rate. * LFO rates depend slightly on the number of modulations?? * I suspect the possibility of "patch viruses" that crash the synth inexplicable until you zero out the RAM completely. Jens. (offline) (http://www.panix.com/~jens/)