- expresso, looping, window copying, realtime transposing
The steps below
will show you how a number of things in keykit can
be used together. A quick summary of what these steps will do:
the expresso tool will be used to generate something,
you'll copy it to the Group tool to scale it to a particular
scale and start looping it. You'll make copies of the Group
tool and start looping multiple things simultaneously.
And finally you'll start transposing the generated music
in realtime under control of an external keyboard.
Now the details:
First, make sure your MIDI controller is attached
and working. You will probably have to use the
Tools1->Port Enabler tool to enable your MIDI input device.
Just bring up the Port Enable tool, and highlight the
MIDI INput to which your controller is attached.
Bring up the Tools2->Monitor tool. Press some keys on
your controller, and you should see the notes appear (and
scroll from right to left) inside the Monitor tool.
Okay, now you know you have MIDI input working...
Bring up an Expresso tool, with Tools2->Expresso.
The phrases generated by expresso are, by default,
limited to 8 beats. We want to generate
longer phrases, so invoke More->AutoLength->Off.
Go ahead and press the Gen button several times, and you will
see and hear different things generated. They will
start playing automatically. Click the mouse within
the piano-roll window to stop (and restart) the playback.
By default, the expresso tool doesn't put its notes on
any particular scale. You can invoke some of the things in
its various menus to automatically scale the generated notes
to particular sets of notes, but let's not do that in the
expresso tool, for this example. Let's use the Group tool,
because it's a little more flexible in that area, and we're
going to do other things as well. Bring up a Tools1->Group tool.
Press the Gen button in the Expresso tool until you have
a fairly complex/long result. (Remember that clicking inside
the phrase window of the Expresso tool will start/stop its playing.)
We want to copy that to the Group tool - we could do that with Snarf,
but there's an even more convenient way. In the Root menu
(the one with the Tools1/Tools2 items), invoke "Window->Copy". The cursor
will change to crosshairs. You should then click the left
mouse button once inside the Expresso tool, and once inside
the Group tool - the result will be that the phrase in the Expresso
tool will be copied to the Group tool. Window->Copy and two clicks,
that's all you do.
In the Group tool, let's scale the phrase to a given scale.
First invoke "Merged->Pick->All" to select everything in the Group tool.
Then "Edit->Scadjust->C->Aeolian" to adjust everything to a C Aeolian scale.
Now let's loop bits of this. The upper-right button of the Group
controls what the right mouse button does when you click it inside
the phrase window of the Group tool. By default it is Play.
Click on that button and select "Loop". Now, whenever you press
the right mouse button in the phrase window of the Group tool,
it will loop whatever the current "audition" area is.
Use the left mouse button inside the phrase window of the
Group tool to select a short (several beat) section of the
phrase. Press the right mouse button inside the phrase window,
and that section should start repeating, forever.
Use the left mouse button to select a different section of the
phrase, and it will start repeating that section.
Use the right mouse button start/stop the looping.
Let's make a copy of this Group tool (and all its settings) so
that we can loop several things. In the Root menu, select
"Window->Snarf Tool" and click on the Group tool. You should see
the words "Snarfed the wgroup tool" in the console window.
Now, in the Root menu, select "Window->Paste Tool" and sweep out
a window. You should see an exact copy of your Group tool,
with the same contents.
In the second Group tool, use the left mouse button to select a
section, and use the right mouse button to start it looping.
At this point, you have two things looping independently, with
independent loop lengths, and you can interactively select
new sections of the phrases to loop, without interrupting anything.
Now let's interactively transpose what's happening.
Bring up the "Tools->Offset Walker" tool. The "1" button in
that tool means that it is going to be watching channel 1,
and we'll assume that your external controller is transmitting
on channel 1.
Click on "Watch" to turn it on. Now press several notes
on your external controller. If you still have the loops playing,
you should now hear the music being transposed as you press
notes on your controller. When you first turn "Watch" on, the first
note you play will be the "base" note. Subsequent notes are
compared to that base note, to determine the pitch offset.
Create additional copies of the
Group tool (with "Window->Paste Tool") to add more looping layers.
Put each Group tool on a different channel, by using View->All Tracks
to view the track, change its MIDI channel, and select a different sound.
Continue to select (left-sweep in the Group tool)
different sections of the music, while it is looping.
Use "Scafilt" rather than "Scadjust", when setting the scale to be
used. Scafilt will remove (rather than adjust) all notes that
don't fall on the specified scale - this will leave spaces in
the music, which can sound more interesting and rhythmic
than a continous stream of notes.
Use different music (Expresso-generated or not)
in the Group tools, for looping.
The "Recsched" feature allows you to record all music
generated dynmically by Keykit, but it does not yet record
the pitch offsets that are controlled by the "Offset Walker" tool.