Events

We’ve looked at ways to create and apply effects to sounds, and we’ve looked at ways to modulate them; now let’s take a look at Event processors.

Event modules can generally be thought of as MIDI effects, processing incoming MIDI signals or generating them, though with the Script Processor it’s possible to extend that paradigm to include extremely sophisticated creative devices and interface customization.

The most commonly used Event processors are the Arpeggiator, Micro Tuner and MIDI filters like the Chorder, Tonal Harmonizer and Strum. These are easily mastered devices providing great performance utility.

In the following lessons we’ll take a look at a few of these devices and some of the ways that we can effectively implement them in our own projects.

  1. 01 Using the Arpeggiator
  2. 02 Using the Micro Tuner
  3. 03 Using the Script Processor

Using the Arpeggiator

The Arpeggiator is a classic synthesizer effect which modifies the incoming notes and plays them in a programmable pattern to create a dynamic sequence.

  1. Let’s start by loading the KEYSHYBRID PIANO program from the FALCON FACTORY REV2 Soundware.

    Hybrid Piano selected in the Keys folder of Falcon Factory rev2 and loaded in part 1
  2. In the EDIT tab, change the play mode to POLY PORTAMENTO.

    Layer Play Mode menu with Poly Portamento selected
  3. Switch over to the EVENTS tab, hit the + button and select the ARPEGGIATORARP BASIC2 OCTAVE UP preset.

    The Events tab header, with the + button at the right
  4. Let’s slow the RESOLUTION down to 1/8 and add a few more steps to this pattern. Change STEPS to 9 and enable step 9 by clicking the step state box underneath it, so that steps 1, 2, 3, 4, 6, 8, and 9 are On and steps 5 and 7 are Off.

    Arpeggiator with Steps at 9, Resolution at 1/8, and steps 5 and 7 off
  5. Now let’s customize the value of these steps: adjust the velocity by click-dragging in the graph, and modify the step length by Shift-click-dragging.

    The same pattern with the velocities drawn in the step grid
  6. To give the pattern a more defined groove let’s change STRIKES to 2 and Shift-click the step state button of step 7 to merge it with the step before it.

    Arpeggiator with Strikes at 2 and step 7 merged with step 6
  7. The Arpeggiator has three layers: Velocity and Pitch for notes, and MIDI CC for generating a MIDI CC as an additional control signal. Right-click the step grid to change which layer is displayed. The step state (on, off, or merged) is shared between the three layers, but the velocity, pitch, and MIDI CC values of each step are independent.

    Step grid context menu: Velocity, Pitch, MIDI CC

Using the Micro Tuner

The Micro Tuner allows the exploration of many unique and interesting temperaments, both modern and classical. It also allows instruments from other musical traditions to be played in their own tuning.

For this example we’re going to create an instance of Falcon in 12-tone Pythagorean temperament with C4 at 256 Hz. Pythagorean tuning is based on a stack of intervals called perfect fifths, each tuned in the ratio 3:2, which gives pure fifths.

  1. Navigate to the TREE tab, right-click the MASTER node and select ADD EVENT PROCESSORMICRO TUNER. Placing the Micro Tuner at the Master level means that all parts in Falcon will be affected; this is a great way to ensure that any and all instruments loaded or created from here on out will be in tune.

    Master node context menu with Add Event Processor highlighted
    Add Event Processor submenu with Micro Tuner
  2. Double-click the new Micro Tuner to reveal it in the EVENTS editor to the right. In its default state the Micro Tuner doesn’t do anything. From here we could load an existing preset, but for this example we’re going to use a custom Scala file.

    The new Micro Tuner on the Master node, open in the Events editor in its default state
  3. Let’s create a new Scala file to describe 12-tone Pythagorean temperament. Create a new text document and paste in the following:

  4. ! pyth_12.scl
    !
    12-tone Pythagorean scale
     12
    !
     2187/2048
     9/8
     32/27
     81/64
     4/3
     729/512
     3/2
     6561/4096
     27/16
     16/9
     243/128
     2/1
  5. Save this document as pyth_12.scl (UTF-8 encoding) and drag the resulting file onto your Micro Tuner. You can save this as a Micro Tuner preset and it will be available for future projects.

    The pyth_12.scl file in a Finder window, ready to drag
  6. Now change the GLOBAL TUNE in Falcon’s toolbar to 430.5 Hz. With A4 tuned to 430.5 Hz, C4 will be at 256 Hz. This would be a good time to save out the Multi if you wanted to create a template or even SAVE AS DEFAULT MULTI if you consistently use a particular tuning.

    Global Tune in the toolbar set to 430.50 Hz
  7. Now let’s load a patch to hear the results. For something with a long release, try PADARCTIC PAD from the FALCON FACTORY REV2 Soundware.

    Falcon comes with many Micro Tuner presets, and you can easily add more with custom Scala files.

    Micro Tuner on the Master in the Events tab, with Arctic Pad selected in the Pad folder of Falcon Factory rev2

Using the Script Processor

The Script Processor module provides custom event processing capabilities, using the Lua-based scripting language UVIScript.

The Script Processor module has two primary sets of controls: the standard controls for interacting with the script itself, and the controls defined by the loaded script (knobs, buttons, menus, and so on).

  1. Let’s load the FRETTEDNYLON GUITAR MODEL program from the FALCON FACTORY REV2 Soundware. Then go to the EVENTS tab, add the Script Processor module, then load the PERFORMANCESTRUM preset.

    Nylon Guitar Model loaded from the Fretted browser, with a Script Processor in the program’s Event slot
  2. The script adds four parameters: DIRECTION, which orders the notes (up, down, alternating or random), LAG (0–200 ms), the gap between them, HUMANIZE, which randomizes that gap, and VEL. SENS., which shortens it as you play harder. Adjust LAG and play a chord, and you’ll hear the notes played in succession as if strummed rather than triggered all at once.

    Strum script controls: Direction, Lag, Humanize and Vel. Sens.
  3. Let’s start with a simple script that prints some information about each note to the Script Processor console. Enter the following code into a text editor and save the file as printer.lua:

    printer = OnOffButton("Print", true)
    function onNote(e)
     if printer.value == true then
      print("On : ", e)
     end
     postEvent(e)
    end
    function onRelease(e)
     if printer.value == true then
      print("Off : ", e)
     end
     postEvent(e)
    end
  4. In the Script Processor module, press the LOAD SCRIPT button on the left and choose the printer.lua file.

    Script Processor running printer.lua, with note-on and note-off lines in the console
  5. Then enable SHOW SCRIPT CONSOLE OUTPUT at the right of the module’s toolbar, which is generally used for displaying debug messages, and play a few notes—you will see that as each note is triggered and released, a line of information about the note is printed to the console so long as the script’s PRINT button is enabled. If you disable the Print button, the messages no longer print to the console.

    Script Processor running printer.lua, with note-on and note-off lines in the console

You have loaded a factory script and written one of your own that logs every note it receives. To go further, see Scripting in Lua, and for the module’s own controls, Event Processors › Script Processor.