If you open a factory preset and save it somewhere, you can look at the preset XML and it might help you understand how to do certain things.
For example, the typical preset is an 'object-oriented' structure with the following typical hierarchy:
Code: Select all
Program
ControlSignalSources (eg Macros)
EventProcessors (scripts, which may be in-lined)
Inserts
Layers
Layer
ControlSignalSources
BusRouters
Keygroups
Connections
SignalConnections
ControlSignalSources
Inserts
Oscillators
You use it like this example from the preset Ambient Pad Quencer which sets up some colors:
Code: Select all
<EventProcessors>
<ScriptProcessor Name="EventProcessor0" Bypass="0" API_version="15">
<Properties OriginalProgramPath="$Falcon Factory.ufs/Presets/Experimental/Ambient Pad Quencer.uvip" ScriptPath="$Falcon Factory.ufs/Presets/z_key colours/key colour Amb Pad Quencer.lua"/>
<script><![CDATA[---------------------------------------
-- Ambient Pad Quencer
---------------------------------------
-----------------
--key colouring
-----------------
local keyColour1="#022964"
local keyColour2="#6893de"
for i=12+12,47+12 do
setKeyColour(i,keyColour1)
end
for i=48+12,84+12 do
setKeyColour(i,keyColour2)
end
]]></script>
<ScriptData/>
</ScriptProcessor>
</EventProcessors>
You can see from this hierarchy that oscillators are at the bottom of the structure and they are properties of keygroups.
This design decision is at the heart of my grief with Falcon.
While I like Falcon and it's potentials, this part is not to my liking.
Here is why.
A keygroup having oscillator properties seems backwards to me. I can certainly understand how and why an oscillator may have a keygroup. Every synth I know does something akin to this. In an analog modular we have a single keyboard and we plug its control voltage into modules.
But we don't usually have keyboards where we plug in black boxes of instruments over certain ranges of keys. (Except for the Mellotron which is the only thing like that that I can recall).
Theoretically, Falcon is like having a separate Moog synthesizer on every key. Each key can have it's own Moog with its own settings.
That design implementation does not take into account the practical typical usage of only having a single Moog or two over a keyboard range. With that approach I can twist a knob and the whole keyboard range sounds different. In Falcon, I will have to twist knobs on each virtual Moog separately.
One could accomplish the same thing by having the Oscillator at a higher level in the structure and assigning multiple keygroups to the osccillator. If we want an oscillator per key we can do that.
But that latter way allows us to change the sound of keygroups much more easily and practically.
This discussion helps me to understand the why, which helps me understand how to do things better.
I wish that the design of the keygroups allowed a bundled display of all the oscillator commonalities instead of just showing 'Multiple selections'. By aggregating all the common elements and showing them and allowing them to be changed en masse I would be happy.
But I really think that a better approach would be to reverse the object hierarchy between keygroup and oscillator.
I know there is little one can do to change an already-designed piece of software, but at least we can understand it better and that will help us avoid problems in using it.