From nobrand@teleport.comMon May 29 12:04:20 1995 Date: Sat, 27 May 1995 07:18:13 -0700 From: Brian Coates To: analogue@hyperreal.com Subject: Everything you ever wanted to know about Polaris CC's!!!!! OK, kiddies. I spent last night tweaking sounds at Mr Chandler's Step Sequence Heaven(tm), and conversing about the strengths of certain synths, one being the Sixtrak's ability to use Continuous Controllers to change parameters. It's simple on the Sixtrak, too. Just take the parameter number you want to tweak, and add 2. That's your CC#. The Polaris, on the other hand is not so simple. I have a lot of documentation on the Polaris, but nothing to tell what the CC's to tweak parameters are. So the last 4 hours have been spent figuring it out, and typing it out for all to enjoy. I included info on anything I thought would be useful, such as value ranges, and whatnot. Unfortunately, my Polaris' Ring Mod, Sync, and LFO sine/square select buttons have suffered the fate of Polaris Membrane Death, so I couldn't send the info to the computer, to read the value.. As soon as I figure them out, I'll post it. Having all this info, now, I want to write a simple patch editor for it. It would be super easy, I think. It could even be written in Basic(but why? :).. I'd like to know, now, how many Polaris owners are on the list? Any one have other secrets? AH!! That reminds me... I can't get the thing to play all 6 voices multitimbrally. I can only get it to go up to 3. I have done _everything_ in the manual, set the base channel to 0, and then sent patch changes, with the coresponding patch #'s for each channel, 1-6, but can only get channels 1-3 to make any noise. That far, it works great. The first three channels, no matter what the base channel is, will always respond to program changes, and CC's with no problem. it's just those last 3 channels. grrrrr. Anyway. This one's for the archives! ---------------------------------------------------------------------------- IMPORTANT!! TO HAVE EVERYTHING LINE UP CORRECTLY, SET TABS TO EVERY 4 SPACES! This information is for the Fender Chroma Polaris, a very under-rated synth, IMHO. I hesitate to make this available out of selfishness, 'cause I'd like to get another, and I'd hate to see a lot of people realize the potential of this beast, and drive the prices up! But as a synthesist, and lover of music, I have to share this, for owners of this fine instrument that may not have an idea of how powerful a tool they have. As well as a fine architecture, and wonderful sound, and large _range_ of sounds, the Polaris has the ability to change parameters via MIDI Continuous Controller Information. What this means, is that during a sequence, you can change any part of any parameter with a CC message, rather than with Sysex info, as many other synths do. The advantage of this, is that CC's do not stop the MIDI stream to transfer, they ride within the stream. A Sysex message will stop everything, and continue til it's finished, and then let the rest of the sequence go on, no matter how long the Sysex stream is, from three or four bytes, to a second or so of transfer time, _death_ to a sequence. Heavy CC usage _can_ clog up a sequencer, so be aware of how much controller plotting you do. However, a single CC message can for instance change the resonance from half to full on, and then two or three beats later, another CC message can take it back again. INCREDIBLE control over sequences, virtually transparant time-wise to a sequence; only 768 microseconds per message! Keep in mind though, that when _drawing in_ CC changes in a software based sequencer, or entering a sweep of CC with a data slider during a track record, CC's add up fast. For an example of what CC parameter changing can do, think of the qualities of the 303. A lot of time has been dedicated to TB-303 emulation, and how to get similar sounds from other synths. CC messages are ideal for this during a sequence.. A CC message can for instance, turn the Glide on at the beginning of a note, and off again at the end of it, therefore providing a per-note portamento. You can also insert messages to control the LENGTH of the glide per-note!! The TB-303 also has Voltage Controlled Resonance, unlike the VC Cutoff usually used in synth architecture. With a CC message, the Resonance Amount can be switched to any value you wish. Some of my favorite tricks using CC changes... Real time control of filter sweeps can be recorded, and played back _exactly_ as you heard it during the recording. Pop resonance in and out on certain notes. Draw in envelope release times to sweep from short, snappy releases, gradually to long, and back down to short again. Very effective. FM sweeps-- Crank up the Vibrato amount, and sweep the LFO time from slow to fast(chills!). Anyway, you probably have an idea by now about the flexibility of CC parameter changes. One last suggestion. For saving memory, and unclogging the MIDI data stream- when modulating anything that can be modulated by velocity, like volume, or filter cutoff, use the velocity curves, instead of CC's if you can. The velocity byte is in there with the note on's and off's, no matter what, you might as well make the best use of it. Now go have fun!! There are basically three ways to enter CC messages in a sequencer(provided your sequencer is flexible enough): a)enter the data on the desired timing value in the Event Window of your sequencer. (more about the protocol below) b)while recording a sequence, move the slider in the pattern you want the parameter to playback in, i.e. programmed filter sweeps c)draw the CC curve in the Continuous Controller Graphic Plot window of the sequencer A sequencer's Event Window needs the CC message information for: a)what kind of message it is(in this case, a Controller message) b)the first byte of info(the controller type), and c)the second byte of info(the controller value) Sliders: All of these are obviously controller messages. The first three digit number after the type of controller is the Controller _Type_ number, followed by the range accepted by the Polaris for that controller. Osc1 Pulse Width 096 000-127 PWM 100 000-127 Osc2 Pulse Width 097 000-127 PWM 101 000-127 Sweep Rate 004 000-063 Filter Cutoff 103 000-063 Resonance 104 000-063 Sweep Depth 105 000-127 Envelope Depth 106 000-127 Key Tracking 107 000-127 Filter Envelope Attack 013 000-063 Decay 014 000-063 Sustain 015 000-063 Sustain Decay 016 000-063 Release 017 000-063 Volume Envelope Attack 019 000-063 Decay 020 000-063 Release 021 000-063 Buttons: All buttons have a value of 1 for the lower parameter of the button, the parameter that causes the LED to be 'on', and a value of 0 for the upper parameter, LED 'off' Osc1 Ring Mod unknown Sweep/Env PWM 098 000-001 Saws/Pulse 030 000-001 Transpose 022 000-060 Osc2 Sync unknown Sweep/Env PWM 099 000-001 Saws/Pulse 031 000-001 Transpose 023 000-060 Sweep Sine/Square unknown Filter Noise 102 000-001 Envelope Fixed/Touch 012 000-001 Volume Envelope Fixed/Touch 018 000-001 * Transpose function is a CC value of 22 or 23, followed by a value of 0 to 60, lowest key (C) on the keyboard being 1, and the highest key being 60 Assignable Buttons are _all_ controller #111, with a value(where the range normally is) of: Glide 000 Rate Pedal 001 Vibrato Pedal 002 Pitch Pedal 003 Cutoff Pedal 004 Volume Pedal 005 Volume 006 Mod Lev Range 007 Bend Lev Range 008 Vibrato Delay 009 Osc1 Vibrato 010 Osc2 Vibrato 011 Osc2 Envelope 012 Detune 013 Assignable Slider Controller Numbers. Note: Not necessary to be preceded by coresponding Assignable Button. Glide 003 000-127 Rate Pedal 005 000-063 Vibrato Pedal 009 000-127 Pitch Pedal 011 000-063 Cutoff Pedal 108 000-063 Volume Pedal 109 000-127 Volume 002 000-127 Mod Lev Range 008 000-127 Bend Lev Range 010 000-063 Vibrato Delay 007 000-127 Osc1 Vibrato 024 000-063 Osc2 Vibrato 025 000-063 Osc2 Envelope 026 000-063 Detune 027 000-063 Slider Info There are two kinds of sliders, Unipolar and Bipolar. The slider ranges are as follows: Unipolar Full Down 000 Full Up 063 Bipolar Full Down 064 Center-1 127 Center 000 Full Up 063 From ac151@freenet.carleton.caMon May 29 12:04:46 1995 Date: Sat, 27 May 1995 19:33:53 -0400 From: David Clarke To: analogue@hyperreal.com Subject: Re: Everything you ever wanted to know about Polaris CC's!!!!! > Polaris, on the other hand is not so simple. I have a lot of documentation > on the Polaris, but nothing to tell what the CC's to tweak parameters are. You just needed the right piece of documentation :-> The Chroma Polaris MIDI Implementation Doc outlines all the CC stuff you ever wanted to know. As a matter of fact, this stuff might already be in the archives... Regardless, you did a great job in picking the stuff out! > So the last 4 hours have been spent figuring it out, and typing it out for > all to enjoy. I included info on anything I thought would be useful, such > as value ranges, and whatnot. Unfortunately, my Polaris' Ring Mod, Sync, > and LFO sine/square select buttons have suffered the fate of Polaris > Membrane Death, so I couldn't send the info to the computer, to read the > value.. I've included them below for you. > I'd like to know, now, how many Polaris owners are on the list? Write me down as one. > AH!! That reminds me... I can't get the thing to play all 6 > voices multitimbrally. I can only get it to go up to 3. I have done > _everything_ in the manual, set the base channel to 0, and then sent patch > changes, with the coresponding patch #'s for each channel, 1-6, but can > only get channels 1-3 to make any noise. Did you tell the Polaris to use it's "extra channels"? (LF-MIDI Ch.) By default, the polaris knows its basic channel (main instrument), the basic channel + 1 (link instrument) and the basic channel + 2 (sequencer). To use more than those three instruments, you have to choose "extra channels." LF-MIDI Ch.-12 will give you 5 more midi channels. This will mean that the Polaris will actually be listening to eight midi channels. You can define as many instruments as you have separate midi channels defined, (with, of course, the limitation that only 6 instruments can actually be playing at any one time). I've taken a scan through your values, and I've got a few edits for you. Here they are (I'll use ".." instead of "-" to separate the values, just to avoid confusion with negative values.): Osc1 Pulse Width 096 -64..+63 PWM 100 -64..+63 Osc2 Pulse Width 097 -64..+63 PWM 101 -64..+63 Sweep Rate 004 0..127 Filter Cutoff 103 0..127 Resonance 104 0..7 Sweep Depth 105 -64..63 Envelope Depth 106 -64..63 Key Tracking 107 -64..63 Osc1 Ring Mod 028 0..1 Osc2 Sync 029 0..1 Sweep Sine/Square 006 0..1 Glide 003 0..63 Rate Pedal 005 -64..63 Vibrato Pedal 009 0..15 Pitch Pedal 011 -16..15 Cutoff Pedal 108 -64..63 Volume Pedal 109 0..63 Mod Lev Range 008 0..15 Bend Lev Range 010 -16..15 Vibrato Delay 007 0..63 Osc1 Vibrato 024 -64..63 Osc2 Vibrato 025 -64..63 Osc2 Envelope 026 -64..63 Detune 027 -64..63 NOTE: all -ve values stored in two's compliment format. Also, here are a couple others for ya: Performance Volume 000 0..127 Modulation Lever 001 0..127 (0=Centre, 127 = Full push) Sustain Footswitch 064 0..127 (0=release, 127 = press) Pedal Initial 110 0..127 Link Mode 112 0..3 Link Program Number 113 0..127 Keyboard Split 114 0..60 Regards, -- ------------------------------- /''' -------------------------------- David Clarke c-00 davec@rflab.ee.ubc.ca ac151@Freenet.carleton.ca > clarkec@sfu.ca ------------------------------- - -------------------------------- From haines@cloverleaf.comMon May 29 12:05:04 1995 Date: Sat, 27 May 1995 19:52:24 -0800 From: Matt Haines To: analogue@hyperreal.com Cc: nobrand@teleport.com Subject: Re: Everything you ever wanted to know about Polaris CC's!!!!! "Woop! There it is!" cried nobrand@teleport.com (Brian Coates), and then went on to say: > AH!! That reminds me... I can't get the thing to play all 6 >voices multitimbrally. I can only get it to go up to 3. I have done >_everything_ in the manual, set the base channel to 0, and then sent patch >changes, with the coresponding patch #'s for each channel, 1-6, but can >only get channels 1-3 to make any noise. That far, it works great. The >first three channels, no matter what the base channel is, will always >respond to program changes, and CC's with no problem. it's just those last >3 channels. grrrrr. Ring Mod = cc 28 Sync = cc 29 LFO sine/square = cc 6 I just finished a front-panel emulator using the sliders and such in Logic. Matt Haines haines@cloverleaf.com \co/ntrol-X \to /\abort / \transmission.