Isle I-1 User Guide — Chapter 7 — System-Level Objects, Performance-Only Mode, and MIDI 1.0
 
 

SYSTEM-LEVEL PARAMETERS AND OBJECTS

At the bottom of the main window, you’ll see system-wide parameters which affect the entire operation of the Isle I-1.  All system-level objects and parameters, including the entire MIDI configuration and tuning system selection, are saved as part of the Patch Bank file – you can have totally different system setups for each Patch Bank. 

In the upper-left corner of the bottom section, the System-Wide Oscillators button allows you to define Oscillators and entire modulation trees, which can be shared by any operator, in any Patch, in the Patch Bank.  Oscillators which might have common settings across patches can be set up as system-level oscillators instead, and borrowed by each patch which uses it – in this way, one single copy of the oscillator is executed, and used by every running sound which references it, rather than separate copies of an oscillator for each patch, for each running sound of that patch.  Another use for system-level oscillators is to set up low-frequency oscillators (LFOs), which may drive sirens, flanger sweeps, filter cutoff frequency modulations, or anything else, with these modulation points synced across all sounds. 

In the upper-right corner, the System-Wide Effects Send button allows you to add effects to the system-level Effects Send.  These effects are applied to all active sounds, on top of any effects active in the individual patches.  Computationally-expensive effects, such as reverbs, are best placed here, as there is only one copy of the effect running, rather than one for each running sound.  Adding and removing effects follows the same process as effects loops in other parts of the synth. 

In the center of the bottom section is the system-wide Gain parameter – this affects the overall output of the system in decibels, ranging from negative infinity (total silence) to +18 dB.  This parameter is fully modulatable, and can be assigned MIDI commands as well.

PERFORMANCE-ONLY MODE

All of the parameters on the Isle I-1 can be manipulated in real-time, via the UI controls themselves, or via external devices over MIDI.  In Edit Mode, manipulating the UI not only modifies sounds in real-time, it alters the Patch configuration for all future sounds, too.  Indeed, if your goal was strictly performance, and Edit Mode were the only mode, you would lose your original patches by dragging sliders around, destructively editing your patches while you played.  Hence, Performance-Only Mode – in this mode, sounds can be infinitely manipulated via UI controls, without losing the original Patch settings.  To turn on Performance-Only Mode, select it from the toggle buttons in the center of the system-level view, just above the Gain parameter.  When you’re ready to put the original parameters back, click the Reset Parameters button.  Certain UI controls, which only exist to modify the Patch and cannot reasonably changed or rolled back while performing (such as adding an Oscillator), are disabled in Performance-Only Mode.   

MIDI 1.0 SUPPORT

Being a software synthesizer, running on a laptop or PC, with limited native interfaces for playing or manipulating sounds, the Isle I-1 offers a full implementation of MIDI 1.0.  Via MIDI, any device which can transmit messages and act as a MIDI controller can be used to control the Isle I-1. 

MIDI 1.0 defines 16 channels on which messages can be sent between devices.  The I-1 can listen on any combination of 16 channels.  A new Patch Bank is set up to listen on MIDI Channel 1.  Additionally, the I-1 can listen in Omni Mode, processing messages received on any channel.  This can be a quick way to get a controller to work with the I-1, and can also be useful in troubleshooting MIDI connection problems.  To change the MIDI configuration, click the MIDI Settings icon, to the right of the System-Wide Oscillators button on the system-level view.  Omni Mode can be turned on or off via the MIDI Omni Mode checkbox.

  • When Omni Mode is OFF:
    • The I-1 can listen on one or more channels.  To add an additional channel, click the Add Channel button.  A new subscription will be created for the lowest available channel number.
    • To remove a channel subscription, click the red X button for the channel in the channel list.  There must be at least one active channel subscription – if there is only one, you cannot remove it.
    • Lock current patch selection to first subscribed MIDI channel
      • Each channel can be assigned its own Patch from the current Patch Bank.  It can be intuitive to expect sounds to be made from the currently selected/displayed Patch in the Patch Editor. 
      • When this option is checked, the lowest-numbered subscribed MIDI channel will always trigger sounds from the currently selected/displayed Patch.
    • Change the channel number of a channel subscription by editing in the Channel Number edit box, or by using the stepper controls.  If a channel number is already subscribed, the stepper will skip it, and the edit box will not accept the entry.  The channel subscription list will always display in channel order, so as you step the channel number up or down, you may see the channel’s settings move in the list.
    • As previously mentioned, a channel can be assigned its own “current patch.”  Note On messages sent on this channel will play sounds based on the channel’s “current patch.” 
    • Each channel has a Level and Pan parameter – channels can be mixed individually.  MIDI controller number 7 (channel volume) is automatically assigned to Level, and controller number 10 (channel pan) is automatically assigned to Pan (they can additionally be assigned to any other parameter in a patch).  The MIDI specification also defines controller 8 as “channel balance” – since I am not implementing an ‘80’s boom box, controller number 8 is also automatically assigned to Pan.
    • Channel Transpose can transpose the pitch of any sounds on a channel up or down by a relative number of octaves.  The Pitch Bend controller is automatically assigned to this parameter, so that Pitch Bend “just works” out of the box.  You can limit the range of the Pitch Bend wheel per channel, also in units of relative octaves.  The default range is ±1 octave.
    • Legato and Portamento — The MIDI parameters panel can be used to turn Legato and Portamento on/off for a channel, though this is probably better done via MIDI commands from, say, a footswitch. 
      • When Legato is On, new Note On commands which happen before a Note Off is received do not start new sounds, but change the pitch of an existing sound immediately, and without restarting any envelopes.  MIDI controller 68 (legato footswitch) is automatically assigned to this parameter.
      • When Portamento is On, behavior is very similar to Legato On, in that new Note On commands simply change the pitch of an active sound instead of starting new sounds, and again, no envelopes are restarted.  The change in pitch is ramped over time and occurs along a curve, instead of immediately jumping to a new pitch.  MIDI controller 65 (portamento footswitch) is automatically assigned to this parameter.  Portamento settings can be assigned to each individual channel – duration of pitch change is specified in seconds (MIDI controller 5 is automatically assigned to this parameter), and available curve types are Linear, Logarithmic, Exponential, and Noop (No Operation).  Logarithmic and Exponential curves also include a Power parameter.  Squared and Cubed curve types are convenience implementations of the Exponential curve, with the Power parameter hard-coded to 2 and 3, respectively.
      • The MIDI 1.0 specification designates controller number 84 as “portamento control,” to specify a starting note for a new portamento sound.  This controller is automatically implemented in the I-1.
  • When Omni Mode is ON:
    • The Isle I-1 processes MIDI events on all 16 channels.  There are two Omni Modes in the Isle I-1 – Monotimbral and Multitimbral – you can select from the toggle button which replaces the Add Channel button. 
    • In Monotimbral mode, there is only one set of MIDI parameters, which is applied to every channel.  As the name implies, all sounds are generated from the same Patch, which may or may not be locked to the currently selected/displayed Patch in the Patch Edit view.  The remaining parameters work just as they do in non-Omni Mode.
    • Multitimbral mode works as though Omni mode were not selected, but the I-1 was configured to subscribe to all 16 channels.  Each channel gets its own set of MIDI parameters, and can be independently assigned its own “current Patch.”  Channel 1 can be locked to the currently selected/displayed Patch.  In Omni-Multitimbral mode, you cannot unsubscribe from a channel or subscribe to a new channel (as there are no more available channels).

Any runtime parameter available in any Patch or at the System Level can subscribe to any MIDI event (except for System Exclusive events).  You will notice a 5-pin DIN icon to the left of each parameter name, with a right-pointing arrow.  If this icon is white, the parameter does not subscribe to any MIDI events; however, if it is glowing green, it does subscribe to MIDI events.

PERFORMANCE TIPS

The Isle I-1 has no hard-coded limits to the number of concurrent sounds, nor the operators or effects which build each sound.  However, your hardware may have other ideas about how much can be done quickly enough to not cause audible gaps or stuttering.  Generally speaking, (sample rate x # of audio channels) samples have to be generated in less than 1 second.  If it takes less than 1 second to generate 1 second’s worth of audio data, the engine and the hardware can keep up; if it takes longer than 1 second, samples can’t be generated fast enough and the audio will start to break up.  If you find yourself hitting hardware limits, Isle’s VP of Buzzkill says the following guidelines may help:

  • You may set the synth’s Maximum Concurrent Sounds as high as 9.2 quintillion (maximum value of the underlying data representation), but you may also set it to values less than that.  Reducing the maximum number of concurrent sounds allows you to define your own limit while gracefully handling situations where additional sounds may be triggered (it also reduces the memory required for the sound buffer – the difference between the memory needed for 32 vs 16 concurrent sounds is negligible, but the difference between 9 quintillion and 32 is pretty big).
  • Sharing components means there are fewer things to calculate – a Patch which contains 2 modulators, generating the same wave form at the same frequency, can be reduced to one modulator shared by both carriers.  A carrier modulated by a modulator with its exact same settings can be turned into a feedback loop instead. 
  • Effects aren’t shared in the same way as Oscillators, but you can share them in multiple ways – rather than assigning effects to individual oscillators, consider putting effects on the Patch-level effects bus.  Rather than putting computationally-expensive effects such as reverbs on the Patch effects bus, where a separate instance is applied to each sound (for each audio channel), put them on the system-level Effects Send, where you may find negligible difference in the generated sound. 
  • The basic waveforms (sine, square, triangle, sawtooth) can be generated according to mathematical formulae, but these formulae can be involved and use a lot of floating-point calculations.  You will get more mileage out of in-memory wavetables, but the tradeoff is extra memory to hold the wavetables.  As of the 21st century, memory tends to be cheaper than computational power; memory can always be added and acquired, as well, while Moore’s Law seems to have approached its limits. 
  • Effects which operate on multiple audio channels basically operate separate effect instances on each channel.  You may not need 6.1 Surround Sound if 5.1 Surround, stereo, or even mono would work for a scenario.