Skip to content
Domenico Patella edited this page Apr 8, 2025 · 13 revisions

Introduction

The purpose of this wiki is to present the use of simple scripts to better understand the mechanism, and in particular the scope of the scripts and their functionality. I apologize for any errors that may be made during the explanation, the intention is to provide some working examples and to test the proposed solutions

Script Levels

The scripts within the program are structured according to areas.

Scope Script Key command
Global Gig Script Ctrl shift 3
Global Rackspace Global Rackspace Script Ctrl shift 5
Rackspace Current Rackspace Script Ctrl shift 1
Song Song Script Ctrl shift 2
Scriptlet Rackspace  

Gig Script

This script operates at a higher level , can intercept all system events , and it can eventually redirect or filter the flow of MIDI / SYSEX /OSC messages coming to the program. The GiG File script cannot access widgets or plugins that are present in the Rackspace
An important concept to understand is that if callback functions are inserted on MIDI events in this context , the message will no longer be forwarded in the underlying scripts

Priority order

  1. Level GiG script
  2. Level Global/Rackspace ( subordinate to GiG script)
  3. Level Plugin/Scriptlet (subordinate to Rackspace).

This means for example , that in a Rackspace, plugins connected to the MIDI block will not receive messages if callbacks are present at level GiG Script

Global Rackspace Script

There is a single Global Rackspace script available. The global rackspace can respond to many events including changes in rackspace, variation, songs and song parts. It can also respond to certain global events such as a notification when a gigfile has finished loading. You can open this script editor by pressign CMD/Ctrl-Shift-5 or by clicking Global Rackspace Script Editor from the Windows menu. https://gigperformer.com/docs_5_0/LanguageManual/different-kinds-of-scripts.html

As well as the GiG file script, the global rackspace script can handle all system events and redirect or filter MIDI messages.The global rackspace script can access all widgets and plugins in its scope, but it cannot, for example, refer to widgets and plugins in the local rackspace.

Current Rackspace Script

The script is referred to the current rackspace , and its lifecycle is related to the activation or deactivation of the rackspace . It accesses local widgets and plugins . Scriptlet blocks can be inserted in this context .

Song Script

Similar to rackspace script, you can associate a song script with individual songs. Song scripts have callbacks that can be triggered when you switch from one song part to another so you can do some song specific processing. Press CMD/Ctrl-Shift-2 or click on Song Script Editor in the Windows menu when you have a song selected. https://gigperformer.com/docs_5_0/LanguageManual/different-kinds-of-scripts.html

Scriptlet

Gig Performer allows you to create your own plugins to perform specialized MIDI processing. You can define parameters that can be controlled by rackspace widgets, respond to incoming MIDI events, process them and pass them on. Scriptlets are inserted into the wiring view just like any other plugin. Double-clicking on a Scriptlet block will open its plugin editor (just like any other plugin) from where you can see any scriptlet parameters you have defined. Click on the Edit Script icon (the first icon in that plugin editor window) to open the scriptlet's editor window. Be aware however that there are some important differences between scriptlet and other scripts since scriptlets are essentially custom developed plugins that live in Gig Performer's wiring view just like any other plugin and receive MIDI Messages directly through their MIDI input port. In particular, this means that a) callbacks do not reference MIDI In blocks and b) the functions used for sending out MIDI messages (SendNow, SendLater, etc) do not require a MIDI In block as their first parameter.

https://gigperformer.com/docs_5_0/LanguageManual/different-kinds-of-scripts.html

Clone this wiki locally