Wednesday, July 21, 2010

Quick Tip: CV Toggle Switch

It would be really cool if we could change Thor Buttons state through CV triggering, wouldn't it ?

Ya know, if you need to toggle the on/off state of some CV out to be used on, let's say, a bank of 16 devices that react differently to the state of that CV ?

We can already toggle the state momentarily through a specified Note or through automation of those 2 buttons in Thor, or the 4 buttons in the Combinator, but a simple scalable solution for CV triggering a CV state would nice.

Well, since there's no way in Thor to send "CV in1 -> Button1" so a gate signal in CV 1 input would flip the state of Button 1, we have to come up with the next elegant solution available, using Thor's Step Sequencer :)

Fortunately, there's a "Gate In (Trig)" CV input at the back of Thor's Step Sequencer, so here's our CV input that will trigger the CV state toggle.

To achieve the toggle action, we need to set the Run mode to Step, so for each CV trigger, we get the next Step value(s), and since this is a toggler and not a step sequenced list of values or states (more on this below), we need to restrict the number of Steps to 2, to get the On/Off state values.

Then, we just have to select, for instance, the Curve 1 values and set Step 1 knob value to 0 (the Off state) and Step 2 knob value to whatever you need, usually 127 or any other useful value needed for the specific situation this would be used.

Simple uh? :)

So now, each time there's a CV trigger going through Thor's "Gate In (Trig)" CV input, the state or value available at Curve 1 output flips to either of the 2 available states.

Since there's also Curve 2, Note and Gate/Velocity outputs, 1 trigger can give us access to 4 simultaneous values.

As mentioned earlier, this is also true for the number of states or values for each trigger. I'm sure you already imagined that, besides a simple 2 state flip toggler, increasing the number of Steps will get us a CV triggered sequence of states and values.

At this stage, the direction of step increase is also an important setting in a CV Stepper, where, besides the simple Forward/Reverse direction, there's the Pendulum that could be useful, for instance, in a triple-state toggler, going through the middle state on each interaction.

The usefulness of something like these 2 solutions, the CV Toggle Switch and the CV Stepper might become more apparent on some future posts... ;)

Next: Since you already know how to do a tempo-dependent random CV access to a 3x32 cell array, my next quick CV tip will show you how to use Thor's Step Sequencer to get a tempo-independent CV RandomAccessArray of values, where a CV value can be used as an index to access any of the 4x16 cell array.

Sunday, July 18, 2010

Down memory lane: Trackers, Trax/Demo Scenes and my first MIDI Controller Keyboard

Note: This was going to be a post about the new M-Audio Axiom 2nd Gen controller keyboards... and, after some sentences, I realized it wasn't going to happen as soon as I first envisioned... oh well, better change the post title and move on... :P


As you may already know, I've been accidentally collecting more MIDI Keyboard controllers than I ever wished for. Buying new, not selling the old because there's always an excuse use for it.

It all started when I bought my (really mine) first "real" (as opposed to my Sinclair ZX Spectrum) Personal Computer (I had used PCs for a while at this point: 8086, i286, i386sx, i386 based, but none were mine), a brand new D-I-Y i486DX2@66MHz based PC with (at the time) 4Mb (a few years after, upgraded to 32Mb) of RAM.
It had a Creative Labs Sound Blaster 16 because I've always hoped to use a PC to generate sound through synthesis using math (i.e. DSP algoritms), besides taking advantage of the digital sampling/playing capabilities that PCs started to have at the time, through these new, more capable, audio card interfaces.

I was all excited also because it included a true FM synthesis chip, the Yamaha OPL-3. This turned out to be a little disappointing, when soon realizing that it was too weak for any interesting, more elaborate and complex synthesis that I was hoping to do with it.

My plan was to buy a cheap, 2nd hand MIDI controller, and also take advantage of the MIDI-Game port cable adapter, and use that card as my FM synth, while learning more about how to program that card's sound DA chips to generate non-sampled based sound and build a CPU+RAM based synth instead of using hardware based synth chips for that.

Long story short, it was with that i486 that I discovered Trackers and the TraxScene underground culture, usually considered as a support scene for the more flashy and important DemoScene.

Can't thank enough to the Walnut Creek CDROM based Hornet Archive, because that was my "home" community for some years, much like I consider now the PropellerheadSW Forums :)

Well... because of Trackers, I basically stopped "wasting" my spare time, learning how to deal with audio card (DSP) programming and started using what was available to be as creative as I could with what was already available.

Through Hornet's DemoNews I also learned about the "wars" between SoundBlaster compatible cards and Gravis UltraSound type of hardware assisted sample playing cards.

GUS had better performance with low CPU usage because of the built-in sample memory vs the SB cards that had no sample memory restrictions but taxed the CPU a lot because of sample data being transfered from the main memory. This was also why it was possible to send DSP generated audio instead of just sampled one... and to me, this was what kept the SoundBlaster way a lot more interesting than the GUS way.

I considered the SoundBlaster way (i.e. the notion of dynamically streaming the wave data to the card instead of statically pre-loading it) future-proof, knowing that the newer'n'faster CPU's were just around the corner... (thanks to Moore's Law)

Not having to pre-load the samples into the card's built-in memory was what made possible the soon to be known as soft-synthesis (exactly what I wanted to do with my SB16 from the start but didn't realize that it wasn't as easy as I thought... at least with pre-Pentium CPUs).

I remember my first tracker was the smallest I could download from Ants'Nest BBS, a local BBS related to a nearby Demoscene group, Radioactive Design.

I forgot the name of that tracker... I think it saved MODs as .M8M or .M88 can't remember correctly, unfortunatly :( ...oh wait! I think it was .669 but still can't remember the name of that DOS tracker app *sigh*...

Edit: Found it!!! It was actually, the very first PC-based 8-channel tracker: Composer 669, by the demogroup Renaissance!!! ...which also brought us the extremely useful PMODE DOS Extender by the hand of Daredevil (Charles Scheffold) and Tran (Thomas Pytel) ...oh man... erm... I'm glad this stuff evolves fast ;)


The Internet was still miles away from happening to me, although I already knew about FTP servers and Telnet gateways into IRC channels, when reading some of the articles and even IRC logs (!?) that where published on DemoNews, Hornet's DemoScene-related text based (eZine like) newsletter I started reading at this time. I think it was also responsible for my sudden interest on Trackers and all the Scene. TraxWeekly became my main newsletter/eZine, since it was solely TraxScene oriented.

After understanding how a Tracker worked and how to use it, I searched for the best, most advanced one I could find that could run with my PC's SB16 audio card. Found Psi's Scream Tracker after downloading Future Crew's Unreal demo and becoming interested in that Demo group. Quickly changed to ST3 and started making .S3M mods, inspired by what Skaven, Purple Motion, and others were releasing at the time. I also tried Triton's Fast Tracker a bit later, but I was already hooked on the Scream's UI and shortcut commands, so... I kept using Scream Tracker until I tried its historic successor, Pulse's Impulse Tracker.

EDIT: Just did a google search on my old TraxScene nickname and found an odd survivor .S3M of mine, released in 1995 xD ...some things just refuse to die, uh? ...oh, wait, there's more available... omg -.-'

It was around this time that I finally saw this weird, very cheap, 4 octave mini-keyboard that had a true MIDI output plug at the back. It was perfect to use with IT's MIDI support. So I bought it and this allowed me to record more natural sounding (i.e. playing) sequences, recorded in real-time instead of step-sequenced.

...and this was how I got my first MIDI Controller Keyboard: Trust mini MIDI Keyboard. The same I still use with Record+Reason, through the Remote Codecs I released a while back, mainly for Dr.REX control, since it's not velocity-sensitive, it's still perfect for that.

The End ... of Chapter 1 ;)

...and something interesting for the interested:

EDIT: Thought of adding here this PH video (released 2013/07/16) featuring Adam Fielding due to how appropriate it is to this old post.