# Giglad Documentation

Official guide to the Professional Software Arranger

## Introduction

Giglad is a professional software arranger for PC and MAC. It comes with a high quality GM sound library based in VST3 format (DMXSampler.vst3 offered by Dynamix Audio), native effects (reverb, delay, chorus, EQ, compressor, guitar amp simulator) and styles which will allow you to instantly start playing. Additionally, it allows you to use your own plug-ins (Instruments and Effects) and embeds a midi editor which will help you easily create new styles from scratch or tweak the existing ones (e.g. re-voicing). It can also read and play Yamaha SFF2 and SFF3 styles by automatically applying sounds from the native sound library, or by using the soundfonts. It supports midi output and such as it can send midi information to hardware sound modules or external DAWs.

Giglad has been evolved a lot since its first release and has now become a very flexible but complex software in order to support many different user workflows. It is highly recommended to read this guide in order to get familiar with the basic concepts of the software. This documentation has been structure in a way so you can jump to different sections and learn what most interests you.

The document describes the full functionality and all the features of Giglad without taking into account licensing restrictions. If you are using other than the "Complete" version of the software, you may have limited access or not access at all to some of the features that are explained in this guide. The keyboard shortcuts exist on both platforms, Mac OS and Windows. However, the shortcuts mentioned in the document are for Windows. MAC users should use the proprietary Mac keys, for example Ctrl+C on Windows will be Command + C on Mac, also holding CTRL + left drag in Style Editor will copy the note on Windows, while the same function is done by holding the OPTION key + left drag on Mac.

## Quick Start

A picture worth a thousand words which means that a video must worth a million words. Watch the quick start guide below to get familiar with the basic functionality of the software.

## Preperations

Before downloading, purchasing or even installing Giglad you should prepare your environment (i.e. your PC or MAC and your external hardware). The following describe what you need to take under consideration in order to use the software efficiently.

#### Sound Card

Giglad can work with the internal soundcard which is available on every computer, however it is recommended to have an external USB or Thunderbolt sound card to be able to get the lowest latency on your system and also to be able to connect your rig to a PA system with a professional grade cables. For Windows, Giglad supports the default Windows Audio Driver but for better results, it is recommended to use ASIO Interface Technology by Steinberg Media Technologies GmbH. For MAC O/S, core audio is of course supported.

#### Midi Controller

Midi controllers come in many different forms, however they are mostly separated in two categories as they usually control two different things: played notes, and other midi messages. For controlling the notes we use the piano keys, while controlling the midi messages (setting the tempo, activating fill in, changing the volume of the drums) we use buttons and sliders. Some midi controllers have only piano keys (old workstation keyboards from the eighties and nineties which usually have a high quality keyboard), while others have only buttons and sliders (like some DAW controllers). There are some midi controllers that have both, keys together with buttons and sliders integrated into one box.

In theory, you can use your PC keyboard to play the notes, however that would be quite inefficient. Any keyboard with the midi interface will be able to connect with your system and play Giglad; also modern midi controllers with added buttons and sliders will be even better for controlling the software fully without the need to use the mouse. With a dedicated midi controller not only you will be able to play your music (i.e. switching chords with your left hand, and playing solo with your right hand) but also controlling Giglad by starting/stopping the style, changing the tempo, navigating through panels, choosing styles, presets, and programs while playing, just as you would do with your hardware arranger.

#### Touch Screen

Although not required and not as important as the sound card and the midi controller, it can significantly improve you live performance experience. You can use your midi controller and your PC/MAC keyboard to control giglad but a touch screen will make the navigation much easier, and straight forward.

## Overview

Giglad has 4 primary windows which can be accessed via the top most tab bar of the main window:

- The Arranger which is the core of Giglad and the tool to perform live.
- The Style Editor which embeds a midi editor and all the necessary tools to create a style from scratch or tweak existing ones.
- The Song Editor which can be used to create Giglad songs. Songs in Giglad are considered a set of instructions(such as chord change, section change, tempo change, etc) which can be set to the arranger in order for the software to perform on its own.
- The Memory Pool which can be used to keep virtual instruments in memory in order for these to quickly be loaded when needed and significantly improve the loading time of styles or melody parts.

Additionally secondary windows such as the Settings and the Auxiliary Window can be accessed via the menu.

It is very important to get yourself familiar with the following concepts of Giglad. These are explained in detail in this document but you should have a quick overview.

- A style is a midi file which uses the midi protocol but also contain additional information on how the midi events should be played depending on the chord. Styles are essential for the arranger to be able to play. Midi files which are not in fact styles (such as midi songs) are also considered styles in Giglad and can be viewed along with other styles and be played by the Arranger.
- A Program is a basic structure in Giglad as it contains the voice/drum kit along with insert and send effects. Instead of selecting a virtual instrument manually every time you need to use it and modify it according to your needs, a program is created once and later used on a melody part or on a style track. Just as with any major brand keyboard: PROGRAM (Korg), VOICES (Yamaha), TONE (Roland).
- A Preset is like a snapshot of the The Arranger. You can save arranger's state (such as the style it is using, the virtual instruments (or programs) in the melody part, the tempo, the transposition etc) at any time and recall it later at your convenience. Presets are a very powerful feature of Giglad as they allow the user to save them only with what they need to recall, for example if a complete song setup is saved as a preset then a preset will contain the melody parts, style, tempo, transpose, octave, and many other settings. However if the next preset should have only a different melody part, then this preset will be saved in such a way that after activating it nothing else will change except the melody programs or virtual instruments.
- A Song as described above is a set of instructions which can be set to the arranger and can be created using the Song Editor or any Text Editor software.
- Audio is an audio file. Giglad can play audio files and this is mostly there for your recordings to easy listen back what you have recorded within the software.
- Lyrics are meant to be used for your lyrics and can be whatever format the native O/S browser component supports (such as txt, pdf, html, etc). Because of this fact and the flexibility of the viewer you may wish to use different type of files such as scores or just notes.
- A Pattern is like a map which can be used to switch chords with one note only. It is meant to be used with a foot midi controller where by giving the proper rules, the software can play the correct chords using only one midi note event. It is a handy tool for those who wish to use their hands to play another instrument (e.g solo guitar) and having Giglad playing for them while being able to switch chords using their foot.
- A Bank is a combination of 16 of the items above. Each time you select a bank, 16 different items that have been pre-assigned are available for quick selection via the Arranger user interface or your midi controller. A bank can contain presets, styles, programs, or any other items in the list, mixed together.

## Settings

Software settings can be accessed via the menu Tools→Settings... and they are separated into different categories as shown below. Modifying the settings is one of the first steps someone needs to undertake the first time Giglad is about to be used. Some of these have default values but others need to be set otherwise you will be unable to progress.

#### Styles File Manager

Here you can select the parent directory which Giglad will use to create your styles and find the existing ones. It can change any time in the future and your styles can easily be moved or renamed but because the path of the files is saved within presets, songs and banks, it is preferred to avoid doing that very often. It is the relative path that it is saved so if you move the entire directory it will be fine. But if you rename files or move them within, you may have to edit your presets/songs/banks manually in order to set the new file path. You may leave the default value as it is. You may not type directly into the edit box. Use the button on the right side of the edit box and select the directory from there.

When applying an external midi file to the arranger, i.e. a style that has not been created by Giglad (e.g. a Yamaha style or a midi song file that has been downloaded from the internet), the software will map the instruments using the External Files Sounds Mapping options. Initially and by default, this would be the native sound library (i.e. Dynamix Audio) for GM instruments and none for MSB/LSB/PGM. You can change this to use a soundfont and the default soundfont can change from the settings but must be a GM soundfont. Alteratively, you may map virtual instruments to external styles by mapping appropriately. After creating one or more GM or Generic maps, these combos will be populated respectively and you can change this option to apply one of the maps that you have created the next time an external style is applied to Giglad.

You may also choose what midi messages will be received by the style tracks when loading external files. This is quite important because if for example you choose to receive volume midi messages and the style has these type of messages then any changes you do manually to the volume using the mixer it maybe reverted by these messages. Note that when the style is loaded all its messages will be read and be applied. But while playing you may wish for example to suppress volume messages and only drive it from the mixer. Finally, remember that this is only for external files. After a style is saved via the Style editor, is not longer an external file. And each Giglad style can have different settings for this.

You are advised to keep back ups of your styles as Giglad does not do this for you.

#### Programs File Manager

Here you can select the parent directory which Giglad will use to create your programs and find the existing ones. It can change any time in the future and your programs can easily be moved or renamed but because the path of the files is saved within presets and banks, it is preferred to avoid doing that very often. It is the relative path that it is saved so if you move the entire directory it will be fine. But if you rename files or move them within, you may have to edit your presets/banks manually in order to set the new file path. You may leave the default value as it is. You may not type directly into the edit box. Use the button on the right side of the edit box and select the directory from there.

You are advised to keep back ups of your programs as Giglad does not do this for you.

#### Banks File Manager

Here you can select the parent directory which Giglad will use to save your banks and find the existing ones. It can change any time in the future and your banks can easily be moved or renamed. You may leave the default value as it is. You may not type directly into the edit box. Use the button on the right side of the edit box and select the directory from there.

You are advised to keep back ups of your banks as Giglad does not do this for you.

#### Presets File Manager

Here you can select the parent directory which Giglad will use to save your presets and find the existing ones. It can change any time in the future and your presets can easily be moved or renamed but because the path of the files is saved within banks, it is preferred to avoid doing that very often. It is the relative path that it is saved so if you move the entire directory it will be fine. But if you rename files or move them within, you may have to edit your banks manually in order to set the new file path. You may leave the default value as it is. You may not type directly into the edit box. Use the button on the right side of the edit box and select the directory from there.

You are advised to keep back ups of your presets as Giglad does not do this for you.

#### Songs File Manager

Here you can select the parent directory which Giglad will use to create your songs and find the existing ones. It can change any time in the future and your songs can easily be moved or renamed but because the path of the files is saved within banks, it is preferred to avoid doing that very often. It is the relative path that it is saved so if you move the entire directory it will be fine. But if you rename files or move them within, you may have to edit your banks manually in order to set the new file path. You may leave the default value as it is. You may not type directly into the edit box. Use the button on the right side of the edit box and select the directory from there.

You are advised to keep back ups of your songs as Giglad does not do this for you.

#### Audio File Manager

Here you can select the parent directory which Giglad will use to find your audio files and also to save your audio recordings. It can change any time in the future and your audio files can easily be moved or renamed but because the path of the files is saved within banks, it is preferred to avoid doing that very often. It is the relative path that it is saved so if you move the entire directory it will be fine. But if you rename files or move them within, you may have to edit your banks manually in order to set the new file path. You may leave the default value as it is. You may not type directly into the edit box. Use the button on the right side of the edit box and select the directory from there.

If you press the record button directly in the Arranger, recoding will start by using the default audio format specified here and the file will be created with a unique name in the audio working directory.

You are advised to keep back ups of your audio as Giglad does not do this for you.

#### Lyrics File Manager

Here you can select the parent directory which Giglad will use to save your lyrics and find the existing ones. It can change any time in the future and your lyrics files can easily be moved or renamed but because the path of the files is saved within preset and banks, it is preferred to avoid doing that very often. It is the relative path that it is saved so if you move the entire directory it will be fine. But if you rename files or move them within, you may have to edit your banks manually in order to set the new file path. You may leave the default value as it is. You may not type directly into the edit box. Use the button on the right side of the edit box and select the directory from there.

You are advised to keep back ups of your lyrics as Giglad does not do this for you.

#### Patterns File Manager

Here you can select the parent directory which Giglad will use to create your patterns and find the existing ones. It can change any time in the future and your patterns can easily be moved or renamed but because the path of the files is saved within banks, it is preferred to avoid doing that very often. It is the relative path that it is saved so if you move the entire directory it will be fine. But if you rename files or move them within, you may have to edit your banks manually in order to set the new file path. You may leave the default value as it is. You may not type directly into the edit box. Use the button on the right side of the edit box and select the directory from there.

You are advised to keep back ups of your patterns as Giglad does not do this for you.

#### Audio Device

Here you must select the audio device which will be used to produce audio. In Windows by default, the Windows Audio type will be selected. It is advised to switch to ASIO if you have a sound card which supports it. In MAC the Core Audio will be selected. Additionally, if the driver of the card allows it, you can change the Sample Rate and the Buffer Size. The smaller the buffer size the lower the latency but also higher processing power requirements. You can also specify the Output channels in which the audio will be sent. Giglad only supports Stereo output at the moment, so you may choose only two channels.

If you wish to use external input devices such as a microphone or an electric guitar, you must also specify the number of input channels which you are going to use. Do no create more input channels than what you need as this impacts the performance. If you are not using any input devices, set this to 0.

The Processing Threads is the number of threads that the audio engine will use. Spreading the audio process to multiple system cores, can surely help to improve your system performance. If you hear sound glitches or notice in the Performance Window that your system works on its limits, you should consider increasing the number of these threads.

The Master Output Protection inserts a limiter DSP in the signal chain after the Master fader which limits the audio signal before entering the sound card converters to ensure that the output level never goes above 0dbFS thus protecting the audio from distortion, and also avoids the damage of speakers, monitors, and headphones. Even if active, Master Output Protection will not process, nor change the audio in any way unless the signal level on the Master out exceeds -0.1dbFS. Master Output Protection is enabled by default but you may disable this at your own risk.

The Control Panel button will display your sound's card configuration window (if available by your sound driver) and it is obviously different for different sound cards.

#### Midi Device

Here you must enable the midi input devices (i.e. keyboard controllers) you wish to use to play and control Giglad. Your midi controllers should be preferably connected to your system via USB. Before using a device, you need to enable it by clicking on the corresponding check box button. After enabling one device, you can verify that Giglad properly recognizes it by sending a midi event(note or control) using your midi controller and see if the "Signal" column reacts to it. If everything works as expected you will see the Signal column green highlighted as seen in the picture and the relative information of the event you have sent.

You should also select a "role" for your midi controller. If you have only one midi controller then the role should always be "Main". Even if you have more than one controller, you may select only one of them to have the "Main" role. If you have more than one devices, you can assign one of them to have the role "Chords". A midi device with this role will be used only to identify chords. In that case, you will want to move the splitter of the main keyboard in such a way to have the whole keyboard as melody because the chords will be received from a separate device (The one with the role "Chords"). All other devices should have the role "Aux". All enabled midi devices, no matter their role, can send control messages to Giglad in order to start, stop, switch sections etc.

Here is where you can also enable midi output devices. The midi output devices will be used to produce the sound when the midi engine of Giglad is enabled (See below). It is highly recommended to only use hardware synths (e.g. physical arranger keyboards or sound modules). Software synthesizers such as "Microsoft GS Wavetable Synth" should be avoided as the latency they introduce will not allow you to play live with Giglad. Midi output devices should also be enabled if you are using the midi clock (master).

When the Midi Engine of Giglad is enabled a few changes take place in the software UI:

- You will only be able to select midi instruments in the melody and style tracks. Virtual instruments, soundfonts and effects will not be supported. If a virtual instrument already exists in a melody track or a style with virtual instruments has been loaded then the corresponding tracks will produce no audio.
- The gain leads in the mixer are replaced by midi note leds.
- Audio functionalities such as Recording are disabled.

As the message in the window suggests: "By enabling the midi engine, the audio engine will be deactivated. Giglad will produce no audio, meaning that virtual instruments, soundfonts and effects will not work. The software will only send the corresponding midi events to the enabled midi output devices which are responsible to produce the sound."

#### Plug-ins General

- Scan for plug-ins when the applications starts: If this is checked, then Giglad will always check for newly installed plug-ins when the applications starts. Generally, it is not suggested to have this option on and better scan manually when needed in order to avoid additional start-up time.

- Presets and styles recall programs's default state: If you use a program to apply an instrument in your style tracks or your melody tracks, Giglad saves this information (i.e. the relative path of the program you have used) in the style or preset file. This information is always saved (no matter if this option is checked or not) and the state of the plug-in is also always saved. When loading a style which has a program in each track, what will actually be loaded is the state of the plug-in. However, if this option is on then instead of loading the state of the plug-in, Giglad will try and find the program in your hard drive and apply this one. What is the benefit of doing that? Well imagine you have created your piano as a program and you have used it in 500 styles. If at that point you decide to tweak your piano program or even use a different plug-in for your piano program, instead of revisiting 500 styles and apply the new program, you can easily check this option (or having this option always on) which will cause your styles (and presets) to load the new program.
- Presets and styles recal plug-in's state from plug-ins preset: This is the same as the program but it applies for the plug-ins presets. This surely works with our native effects (reverb, delay, EQ, etc) but it is not that reliable for other plug-ins because even if some plug-ins have presets, they do not let the hosts know about it. So if Giglad does not know anything about the plug-ins presets, this is not something that can work.

#### VST Plug-ins

(Windows Only)

Here you need to select one or more directories where your VST plug-ins can be found. To add a directory, click on the Add button and select a directory which contains one or more VST plug-ins. To remove a directory, select it from the list and click on the Remove button. Please mind that no default directory is provided and the list is by default initially empty. After defining the directories, you need to press the scan button in order for the scan process to start. When completed, you will see the list of all the VST plug-ins which have been found and can be used.

Giglad does not monitor your VST directories. If you add or remove a plug-in from your system you need to perform a manual scan for the list to be updated. If you add a new plug-in to an existing directory then only scan is required. If you remove a plug-in then you will have to re-scan to see this removed from the list. Windows Only: Many plug-ins do not have DPI awareness. In your PC display settings, if your "Change the size of text, apps and other items" is something different than 100% then you might be interested in this setting. This concerns the plug-in window and if at any time you notice that a plug-in's window is either too small or either too big, you may try switch the corresponding option on.

You can perform a scan or a re-scan without visiting the settings window from the menu Tools→Plugins→Scan

#### VST3 Plug-ins

(Windows And MAC)

Please refer to the section of VST Plug-ins. The functionality is exactly the same and the only thing that changes is that you must select the directories of your VST3 plug-ins instead of VST.

In MAC O/S it might be the case that Giglad will fail to load some of your VST3 plug-ins. This is because Giglad is a a universal app. This means that it can run on M1 (without the need of Rosetta) and Intel. In order for a VST3 plug-in to be loaded in your M1 or intel, it needs to be also universal (or compiled specifically for your M1 or Intel). Unfortunately, this is not the case for many VST3 plug-ins which only support Intel. It is in our knowledge that some other DAWs can load any VST3 and do not have this restriction but giglad is based on the JUCE framework and until the moment of writing this (and to our knowledge) JUCE does not provide an easy way of doing this. If you are facing this issue, these are your alternatives with Giglad:

- Switch to Audio Units: AU do not seem to have this problem and most of the plug-ins manufacturers provide AU and VST.
- Run Giglad under Rosetta: You can find information on the internet on how you can run any app under Rosetta. You can do this for Giglad. This way, Giglad will run as running on Intel and plug-ins that only work for Intel will load in Giglad as well. We are not in favor of this workaround, as this will most probably introduce unnecessary processing overhead but still remains a valid alternative.

#### Audio Units Plug-ins

(MAC Only)

Please refer to the section of VST Plug-ins. The functionality is quite the same but you may not select search directories for the audio units. Giglad only searches for them where the MAC O/S defines they should be.

#### Soundfonts

Here you need to select one or more directories where your soundfonts can be found. To add a directory, click on the Add button and select a directory which contains one or more soundfonts. To remove a directory, select it from the list and click on the Remove button. Giglad comes by default with the soundfont "FluidR3 GM" which is installed in \ProgramData\Giglad\Soundfonts and this is the default search directory. After defining the directories, you need to press the Re-scan button in order for the scan process to start. When completed, you will see the list of all the soundfonts which have been found and can be used along with information regarding these soundfonts.

You can choose only one of your soundfonts to be the "Default" and this would be the soundfont that will be used to populate instruments with external files when the corresponding option is "Soundfonts". See Settings. Only GM soundfonts can be set as "Default".

Giglad does not monitor your soundfonts directories. If you add or remove a soundfont file from your system you need to perform a manual Re-scan for the list to be updated.

You can perform a re-scan without visiting the settings window from the menu Tools→Soundfonts→Re-scan

#### Arranger

The General settings in the Arranger currently have two options.

- When program starts: - Initialise everything: Giglad will start on its default state (no style loaded, no instruments, etc). - Recall last state: Giglad will save the state of the arranger (such as the selected style, the selected instruments in your right hand, the mixer state etc) when it exits and will reinstate it when the program restarts. - Set other preset...: Giglad will start by loading a preset of your choice
- Default Recording Format: Defines the type of recording that will be performed when pressing the record button in the "Player" panel in the Arranger. If audio is selected then audio recording will be started. If midi recording is selected then midi recording will be started. It should be noted that while the audio recording starts immediately after the recording buttons is pressed, the midi recording only starts after a style starts playing.

The Chords Detection settings in the Arranger affect the way the software detects the chords while playing live. You can experiment with these settings if you are an advanced user, otherwise it is recommended to leave the default values as they are.

- Mode: The different chord detection modes are described in in detail at the end of this section.
- Midi Input Channel: This is set to "All" by default which means that the arranger will detect chords which come from the corresponding midi device by any channel. You may restrict that by selecting only the midi channel that you wish to be used to detect the chords.
- Precision (in beats): The arranger clock is using midi ticks. A style for example with PPQ=768 has 768 ticks in a quarter note. And to that extend a measure with time signature 4/4 has 768x4 = 3072 ticks. The default value of precision 1/2 means that if you switch a chord at lets say 99 ticks this will actually be applied at 768/2 = 384 ticks. Do not think for a second that the higher the precision the better. It depends on the style and on how good you are with the tempo.
- Note on delay: This is the time in milliseconds that the chord detector waits before identifying a chord when a note goes down in the midi controller.
- Note off delay: This is the time in milliseconds that the chord detector waits before identifying a chord when a note goes up in the midi controller. This value is ignored if the Suppress chord detection when note goes off is ticked.
- Suppress chord detection when note goes off: If this is ticked there will be no chord detection when notes go off in the midi controller. With simple words if you play the chord Am for example and then you move your hand away from the midi controller, the arranger will still be playing the Am chord.
- Preserve last detected chord when notes "on" do not define a valid chord: If for example you play C-E-G (Cmaj) and then you play only C, because C does not define a valid chord the arranger will keep playing Cmaj if this options is on.
- Reset syncro play after the arranger starts: If this option is on, the syncro play button will be set off once the arranger starts playing.

The Style Switch currently define the section of the style that will be set when loading a style.

- As Saved: In styles which have been created with Giglad version >= 4.0, the information of the initial section is saved within the file. This will be the section that was set when the file was saved. If this option is selected and the style contains this information (>= 4.xx) then the saved section will be set when a style changes.
- First: As the name suggests, with this option the first section will be set. As "first", is considered the first section in the style's timeline.
- Try match previous style last selected section by name: A very handy option for those who are using Yamaha styles or tend to name the sections of their own styles with consistent names. If while playing a style at section "Main C" you switch style and the style you load also contains a section named "Main C" then this section will be set. Otherwise, it will fall back to "As Saved" or "First".
- Try match section with name: If this options is selected and the style contains a section with the given name then this section will be set. Otherwise, it will fall back to "As Saved" or "First".

The Transposition options give you some additional flexibility on the way the transposition will behave in your arranger.

- Apply transposition on input: In this case the transposition is applied directly to your midi keyboard controller. if you play for example the note C4 in your midi keyboard controller with transposition +2, the note D4 will be highlighted in the Arranger's Virtual Keyboard and you will be hearing the note D4 coming out. Respectively if you play a chord like Cmaj7 in you your midi keyboard controller with transposition +2 you will see a chord Dmaj7 highlighted in your Arranger's Virtual Keyboard and you will be hearing the chord Dmaj7 by your style.
- Apply transposition on output: In this case the transposition is applied only to the output. if you play for example the note C4 in your midi keyboard controller with transposition +2, the note C4 will also be highlighted in the Arranger's Virtual Keyboard but you will be hearing the note D4 coming out. Respectively if you play a chord like Cmaj7 in you your midi keyboard controller with transposition +2 you will see a chord Cmaj7 highlighted in your Arranger's Virtual Keyboard but you will be hearing the chord Dmaj7 by your style.

Many midi keyboard controllers enhance the transposition functionality. So be careful because if you have transport from both your midi keyboard controller and from Giglad the transpositions will be added. +3 transposition in the controller and -2 transposition in the Giglad will result +1 transposition.

Tempo can be locked or unlocked using the corresponding button in the Arranger Tempo Toolbar. When the tempo is locked, tempo midi messages that exist in style will be ignored depending on if the arranger is playing or not and the corresponding options.

Fade In/Out specify the duration in milliseconds that fade in/out last when pressing the corresponding button in the Arranger Playback Toolbar. When fading out, the master volume of the audio engine will reach -inf decibels for example in 7 seconds. After that, there is a reset duration (default to 3 seconds) after which the master volume will reach again at 0db (or the previous volume of the master track) instantly. The fade out reset duration should not be set to 0 because in that case you will be able to still listen the remaining audio which has been sent to the audio engine.

The following Modes are supported by Giglad:

- Single Finger: Allows detection of the four chords major, minor, seventh and minor seventh by pressing a minimum number of key notes.

For a major chord, press the root note key only.
For a minor chord, press the root key and a black note key to its left.
For a seventh chord, press the root key and a white note key to its left.
For a minor seventh chord, press the root key and both a black and a white note key to its left.

- Fingered: At least three key notes need to be pressed(with the exception of 1+5 and 1+8) in order for a chord to be detected. This is the default mode and the one being recommended for playing in Giglad. It recognizes the various chord types as listed on any hardware arranger manual or in the web.
- Fingered Incomplete: Detects all the chords in a similar way with Fingered but additionally it will detect chords with one or two key notes: - A single note key will result a major of the note key being pressed (exactly as the Single Finger). - Two key notes will result the closest corresponding major, minor or sus4 chord. For example C+E will result Cmaj, C+Eb will result Cm, C+F will result Csus4.
- Fingered On Bass: Detects all the chords in a similar way with Fingered but the lowest note played will be considered a bass note allowing you to play bass chords. For example G-E-C will result the C/G chord. Only tracks which have CTA Shift [Bass] will be affected by this mode. For Yamaha Styles this is set automatically to the bass track. But for custom styles you must set this CTA to the track which plays the bass.
- Multi Finger: It is using all Single Finger, Fingered and Fingered Incomplete modes in order to detect a chord.
- Full Keyboard: Detects chords in the full range of the main midi keyboard controller. At least three key notes need to be pressed and if there is an interval of more then 5 semitones between two key notes, all the notes at the right will be ignored. The "Chords" "Melody" ranges remain visible at the top of the virtual keyboard as they define the default ranges of the Left and Right hand tracks in melody.
- Full Keyboard (No Intercal): Same as Full Keyboard but this mode neglects the interval restriction of 5 semitones, meaning that even if more then 5 semitones between two key notes, these will not be ignored.
- Single Finger (Patterns): Chords are set by one note using patterns.

#### Midi Controls

Midi Controls allow you to map some, if not all, of your controls of your midi keyboard controllers with the Giglad functionality. While playing live, you will wish to stay away from the mouse and keyboard as much as possible. By mapping conveniently your controls, you will be able to start/stop, change the tempo, change a style and much more, directly from your midi controllers without interacting with Giglad UI at all.

All the enabled midi controllers are placed in tabs and you can assign control or note events to them. You can even assign the same action to different controllers which means for example that you may start Giglad by 2 different midi controllers. As the note suggests, you need to be extra careful when you assign notes. An event is identified by its type(note or control), number(e.g note C3) and the channel that it is sent. If for example you assign a pad which sends a note event C3 at channel 1 and your main keyboard also sends the note events at channel 1, then when you play C3 on your keyboard instead of listening the corresponding note, a midi control will be triggered. The Midi Controls are divided into 2 main types. The buttons and the faders. A button of a midi controller will give a value of 127 (when pressed) and a value of 0 (when unpressed). A fader will give values between 0-127. Notes are considered as buttons. The best way to assign a value is to give the focus to the corresponding control by placing the mouse cursor inside it and then press the button or move the fader from your midi keyboard controller. To de-assign a value simply delete the assigned one. You cannot assign the same control to different actions. The newest assign value will replace the old.

- General - Midi Panic [Button]: Will cause all the notes to be set off (or the audio engine to restart if possible). To be used when notes are hanging. There is also a menu item for this, but it is useful sometimes to have it assigned in your midi keyboard.
- Player - Fade In [Button]: This will cause the Arranger to start playing with fade in.
- Player - Fade Out [Button]: This will cause the Arranger to stop playing with fade out.
- TPlayer - ap Tempo [Button]: This will trigger the the Arranger tap tempo functionality.
- Player - Play [Button]: This will cause the Arranger to start playing. It will do nothing if the Arranger is already playing.
- Player - Toggle Play [Button]: This will cause the Arranger to start playing if not already and to stop if already playing.
- Player - Syncro Play [Button]: This will set the Syncro Play on/off.
- Player - Syncro Stop [Button]: This will set the Syncro Stop on/off.
- Player - Memory On/Off [Button]: This will set the Memory on/off.
- Player - Arranger On/Off[Button]: This will set the Arranger on/off.
- Player - Stop [Button]: This will cause the Arranger to stop playing. It will do nothing if the Arranger is not playing.
- Player - Chords Seek Locked [Button]: This will cause the arranger to not detect new chords while this is pressed. Not that it works a bit differently than the other buttons as it will suppress chord detection only while the button is down.
- Tempo - Tempo [Fader]: This controls the tempo of the Arranger. Because the tempo has a range of 40-240 and the keyboard midi controller can only send messages in the range of 0-127, there is no immediate correspondence. If the fader has a value of 0 the tempo will be 40 and if the fader has a value of 127 then the tempo will be 240. The values between are calculated accordingly. Hence, a change in the fader +1 does not mean tempo +1. It will probably mean +2 or +3.
- Tempo - Tempo Up[Button]: This will increase the tempo of the Arranger by one. Does not have the same restrictions with the tempo fader.
- Tempo - Tempo Down[Button]: This will decrease the tempo of the Arranger by one. Does not have the same restrictions with the tempo fader. By pressing both Tempo Up and Down, tempo will be set to the default tempo of the current style (if any).
- Tempo - Tempo Lock[Button]: This will lock the Arranger tempo if unlocked and will unlock it if locked.
- Transposition - Transposition [Fader]: This controls the transposition of the Arranger.
- Transposition - Transposition Up[Button]: This will increase the transposition of the Arranger by one.
- Transposition - Transposition Down[Button]: This will decrease the transposition of the Arranger by one. By pressing both Transposition Up and Down, transposition will reset to 0.
- Views - Styles [Button]: This ensures visibility to the view where styles can be selected(i.e. styles explorer).
- Views - Instruments [Button]: This ensures visibility to the view where instruments can be selected(i.e. instruments explorer).
- Views - Banks [Button]: This ensures visibility to the view where banks can be selected(i.e. banks explorer).
- Views - Presets [Button]: This ensures visibility to the view where presets can be selected(i.e. presets explorer).
- Views - Songs [Button]: This ensures visibility to the view where songs can be selected(i.e. songs explorer).
- Views - Lyrics [Button]: This ensures visibility to the view where lyrics can be selected(i.e. lyrics explorer).
- Views - Patterns [Button]: This ensures visibility to the view where patterns can be selected(i.e. patterns explorer).
- Views - Melody [Button]: This ensures visibility to melody panel.
- Views - Physical [Button]: This ensures visibility to physical panel.
- Views - Lyrics [Button]: This ensures visibility to lyrics viewer panel.
- Views - Lyrics [Button]: This ensures visibility to lyrics viewer panel.
- Views - Page 1,2 3...16[Button]: This ensures visibility of the selected page for the active explorer.
- Views - Pages Prev [Button]: Moves to the previous page of the active explorer.
- Views - Pages Next [Button]: Moves to the next page of the active explorer.
- Views - Back [Button]: Goes to the parent directly of the current visible directory of the active explorer.
- Views - File 1,2 3...16[Button]: This will set to the Arranger the corresponding file as the number shows left to the item of the active explorer.
- Style Sections (by Index) - Prev Style Section: This will set the previous section of this currently playing in the arranger.
- Style Sections (by Index) - Next Style Section: This will set the next section of this currently playing in the arranger.
- Style Sections (by Index) - Style Section 1,2,3...16 [Button]: Each of this buttons allows you to set the corresponding style section to the Arranger. By index means 1 will select the fist section as shown in the arranger, 2 will select the section section and so on
- Style Sections (by group) - Style Intro 1,2,3...9, Style Main 1,2,3...9 etc [Button]: Each of this buttons allows you to set style section to the Arranger. Intro 1 means the first section in group intro 1 intro 2 means the second section in group intro 1 and so on.
- Bank Memories - Prev Memory: This will set the previous memory of this currently active in the arranger.
- Bank Memories - Next Memory: This will set the next memory of this currently active in the arranger.
- Bank Memories - Memory 1,2,3...16 [Button]: Each of this buttons allows you to set the corresponding memory to the Arranger.
- Style Sections (by group) - Style Intro 1,2,3...9, Style Main 1,2,3...9 etc [Button]: Each of this buttons allows you to set style section to the Arranger. Intro 1 means the first section in group intro 1 intro 2 means the second section in group intro 1 and so on.
- Mixer - Mixer Master Volume [Fader]: This allows you to control the master volume.
- Style Tracks - Master Volume [Fader]: This allows you to control the volume of your style.
- Style Tracks - T1, T2...T16 Volume [Fader]: This allows you to control the volumes of each track of your style.
- Melody Tracks - Master Volume [Fader]: This allows you to control the volume of your melody.
- Melody Tracks - LH1, RH1, RH2, RH3 Volume [Fader]: This allows you to control the volumes of each of your melody tracks.
- Melody Tracks - LH1, RH1, RH2, RH3 Mute [Fader]: This allows you to mute each of your melody tracks.
- Midi Keyboard - Split Chords/Melody [Fader]: This allows you to define your chords and melody section in the arranger's main keyboard.
- Midi Keyboard - Octave Up [Button]: This will cause the notes to be played one or more octave(s) up.
- Midi Keyboard - Octave Down [Button]: This will cause the notes to be played one or more octave(s) down.

In most cases, you wish the assigned midi events to be handled only by the arranger in order to start, stop, select files etc. But in some cases you may wish these messages to be handled by the arranger but to also to be transferred to the plug-in. In this case you need to check the option "Allow assigned midi messages to fall through fro plug-ins processing".

#### Keyboard Map

Similar for your midi controller you can assign partial or all functionality to be controlled by you PC/MAC hardware keyboard. Apparently faders are not supported so only the functionality that can be assigned to buttons is available. Furthermore, here you can map some other ui controls such as Midi Editor shortcuts. The picture below shows the default mapping.

#### Clock

Here is where you can select the clock which drives the arranger. The following options are currently available:

- Audio Clock: The arranger is driven by the callback of the audio driver. This is the recommended clock to be used because it is in perfect sync with audio processing and because in general the interrupts which are generated by drivers are the most accurate.
- Midi Clock: The arranger is driven by its internal software clock which interrupts at the selected tempo according to the midi protocol i.e. 24 pulses per quarter note. This mode is not recommended unless you need to set a Master or Slave or you are using the Midi Engine of giglad where the audio clock is not available.
- Midi Clock (Master): The arranger is again driven by its internal software clock but you can also specify the midi output devices to send the clock information, in order for this to be received by other software (e.g. a DAW). You must first enable the midi output devices from the Midi settings.
- Midi Clock (Slave): The arranger is driven by the midi clock of your choice. This can be a hardware midi clock or the midi clock of another software. You must first enable the midi input devices from the Midi settings and obviously you can only have one one device selected (i.e only one midi clock).

The Enable SPP is a tricky option and must be treated with care. It is only available when the midi clock is Master or Slave and correspondingly will send or receive the song position information. Sending this information may not have the results your would expect in the receiver side (i.e. the other software). That is because Giglad keeps looping back in order to keep playing a style section and the other software may not like that. (For example it may stop all the time). Receiving this information is even trickier. For starters you won't be able to change sections using Giglad. The timeline (which is in fact the style which contains the sections) will only be changed by the SPP that is send from the other software. This is probably not what most users want but this option is there because Giglad is used by our users in many ways and there is not point to limit their imagination.

#### Remote

Here is where you can enable Giglad to listen the remote app. Please read more in the Giglad-remote section.

#### User Interface General

Enabling "Reinstate windows positioning", as the name suggests will cause the software to remember its previous windowing state and reinstate it when starts. This should include the main window dimensions but also the internal panels which have been resized according to each user needs.

The knobs settings are applied to all the knobs in the software such as tempo, pan, native effects parameters, etc. You can play with these parameters and use the knob which is under the "Test" label to instantly see how these changes feel when you interact with a knob.

#### Arranger UI

- "Always place the buttons text inside" will cause all the buttons in the Arranger user interface (such as PLAY, S.PLAY, BANK MEMORIES, etc) to draw their action text inside the button even if there is enough room to draw it above.
- "Auto switch to the melody tab..." as the name suggests will cause the right panel in the Arranger user interface to switch back to the "Melody" tab after selecting an instrument for your track. You may wish to disable that and stay at the Instruments tab.

The Arranger user interface, offers 2 options to navigate into your files (styles, presets, instruments, etc). The list view and the tree view. Tree view is used by default and without the option to change this in the Style and Song Editor. But for the Arranger you may wish to choose the list view (which is also the default). This view not only feels closer to hardware arrangers but it also allows better interaction via your midi controller or your PC/MAC keyboard as you can assign View Change, Page Change, File Selection by number to your midi controllers and navigate to it without the need of your mouse. You can optionally select the max number of items that the view will display. Generally, this should not be greater that the number of items you can see in the screen (this depends on the resolution and the size of the screen) as you will not be able to scroll without a mouse.

#### Style Editor

The most important option here is the style back up. If this is not set to none, the software will auto save your style periodically while you work on the style editor. Please note that a different than the original file is used for this purpose so this will not affect the original file which you can save whenever you wish to save. However, if the software terminates unexpectedly, if you re-open it and go to the style editor, Giglad will compare the dates between the actual file and the back up file and will offer you the option to load the back up file if its more recent. If at this point the style that has been loaded is not what you would like to continue working on and you wish to load the original one then: Do not save; instead load the original file by double clicking on it (or drag and drop). Also note that Giglad does not save on the backup file while the Arranger is playing to avoid delays while recording midi events for example. Finally, if you save often by yourself you may consider disabling this by choosing none.

For the Recording, you can select the counting in and if you wish to auto snap (i.e. auto quantize).

You can also select which events to be visible in the "Custom View" in the midi editor. The existing views (Notes, Controllers, Meta) are already sufficient for anyone to work with. But you may wish to create your custom view with the events that you are using the most often.

For the midi events in the "Section edit", when moving sections in the style editor, deleting or creating new, the selected events will only be taken under consideration. it is advised to leave the defaults unless you are an advanced user. For example if a tempo change event exists in section 1 and you decide to swap section 1 with section 2, you probably want only the note events to be moved and for the tempo to stay where it is.

#### Song Editor

Here you can change the Song's Editor Font size and you have the option for the Line Numbers at the left of the editor to be visible or not.

#### Mixer

Here you can select which groups will be visible on the Arranger Mixer.

#### Lyrics

Here you can change the most important display parameters for your lyrics. These are only applied when the displayed lyrics file is a text file.

## Files

As it has already been mentioned in the overview section, Giglad has the following concepts which are represented by files which exist in your hard drive.

- Styles
- Programs
- Banks
- Presets
- Songs
- Audio
- Lyrics
- Patterns

Each of these file can be set to the Arranger and this will result some kind of change. For example setting a style will result the new style to be set. The files can be viewed, set and be edited using the Files Browser.

#### Files Browser

There are 2 ways in the software to navigate into your files and interact with them. The Tree View (Left Picture) and the List View (Right Picture). List view is available in the Arranger only and set by default (you may change to tree view from the settings). Tree View is set and cannot be change for the Style and Song Editors. The Tree View is much more efficient when working with mouse and hence the only option in the Style and Song Editors as you are in "edit" mode. But when performing live, you probably wish to stay away from your mouse. And this is where the true power of the List View comes. Using your midi controller or even your PC/MAC keyboard you can assign page change, previous, next, back and select files by their number. Hence, you can change your current style playing, the instruments in your melody, set a preset or a bank without the need of your mouse.

Both browsers display your files, as these exist in your O/S. The root item is the corresponding parent directory as this has been set from the settings for each file type. Changes in your O/S are monitored so these browsers ought to refresh themselves automatically if any change happens to their name, location, etc. Giglad is using the tree hierarchy for both viewers instead of a linear representation of the files as it gives great flexibility and allows you to group them anyway you wish. The browsers share common functionality and provide you with a few options but, at the moment, in no case have the power of your O/S Windows Explorer/MAC Finder. If for example you wish to copy or move files around, you need to do this outside the software.

☛ Left click on a file for the List View or Double Left Click for the Tree View will cause the file to be loaded and be set to the Arranger. ☛ >Right click on a file will pop up a menu in order to take further actions regarding your selection. Most of the files share common options but some file types may have additional options.

- Edit: If the file type supports it, the corresponding window will pop up in order to edit the file.
- Rename: Pops up a new window in which you can set a new name for the file.
- Delete: Deletes the file permanently from your system. This action is not undo-able so use it with caution.
- Show in explorer/finder: Opens O/S Windows Explorer/MAC Finder to show this file's location.
- Adapt style to the current mixer state (Styles Only): This only exists if the selected file is the one that is currently applied to the arranger. By clicking on it, the style will be re-saved using the arranger mixer. This feature allows you to quickly make adjustments (volumes, pan etc) to your style and permanently save them without the need of going to the Style Editor.

☛ Right clicking on a file's parent directory will pop up a menu in order to take further actions regarding your selection.

- New: Create a new file in the directory that has been selected.
- New Directory: Creates a new directory which will have the selected in the explorer directory as its parent.
- Delete: Deletes the directory and all the files in it. Be extra careful when using this, because the action is not undo-able
- Show in explorer/finder: Opens O/S Windows Explorer/MAC Finder to show this directory's location.

You can set a file to Giglad by dragging and dropping this into the corresponding window. For example drag & drop an instrument on a track that you wish for this to be applied or a style to the style editor window.

#### Styles

If you are experienced in physical keyboard arrangers, you probably already know what a style is. But maybe you have never created a style by yourself. In any case, let's try to give a definition of what a style is. A style is a mix of instruments which are playing the same root chord in different ways repeatably. They can have one or more variations (in Giglad these are named sections) and each of this section can have one or more measures. When the end of a measure is reached, the section starts playing again from the begging. The software (in our case Giglad) knows how to convert the root chord of the style into a different chord by applying a transposition algorithm. Hence, in order to play live, you are creating a style and then you give the chord instructions by simply using your left hand while you are using your right hand to play the main melody. Giglad is using a standardized file format to save/load your style in your hard drive, the midi file format (.mid) and adds additional information (such as the sections, the virtual instruments of your tracks, the CTA's and more). This means that the style can be read by any other software which can read midi files and Giglad can read any midi file which has been created by a different software as well. This gives great flexibility on the way you can create your styles.

You can create a new style from the menu File→New→Style... or in the Styles Browser by right clicking on the parent directory where you wish to create your style and then select the corresponding menu command New→Style.... In both cases the Style Definition window will pop up where you need to define the basic attributes of your style.

- Name: A unique in its relative path name for your style. Because the name of the style is used to save the corresponding file, only valid file names are allowed. You can easily rename a style after creating it.
- Relative Path: The relative path of the style considering the Styles Directory. You may not type directly into the edit box. You need to click on the button at the right side of the control and select the directory from there. Styles can be moved around after their creation.
- Root Chord: The chord which will be used as a reference for Giglad to be able to convert in different chords. It is recommended using a chord which is described by at least four notes. Cmaj7 (C-E-G-B) is a very good chord as it is quite simple and contains the four notes needed, hence it is the default option. The root chord does not restrict the chords that you will be able to play. A root chord of Cmaj7 does not mean by any means that you will not be able to play for example Am, E7, Bdim etc. As mentioned it is just a reference and unless you are an experienced user or style creator, best leave the default of Cmaj7 as it is. The root chord can change after creating the style but the existing events (i.e. notes) will not be converted to the new chord. It is also possible to override the root chord in one or more tracks.
- Time signature: Pretty straight forward option for a musician; this will be the time signature of your style. It is in fact described by a time signature change midi event which is placed at 0 time. Your style can have more that one time signatures and this can be achieved by creating time signature midi events in the midi editor. You may type directly into the field any valid time signature.
- Tempo (Beats per minute): The tempo of a style is defined in beats per minute. A tempo with a value of 120 means that within a minute (60s) 120 beats will be played. The beat is described by the denominator of the time signature of the style. With a time signature of 4/4 for example: 1 beat = 1 quarter note. With a time signature of 4/8 respectively: 1 beat = 1 eighth note. Tempo can easily change after creating your style and it is in fact described by a tempo change midi event which is placed at 0 time. You may add more events to change the tempo while the style is playing but you also need to take under consideration the lock tempo option.
- PPQ (Pulses per quarter note): PPQ describes the number of ticks that a quarter note has and is a standard midi file entry. Unless you are an experienced user, it is advised to leave the default value of 768 as it is. The PPQ cannot be changed after creating your style.
- Controllers/Meta Events: This will be easier to be explained with an example. Lets say a style has 3 sections, Section A, Section B, Section C. Lets say that Section A has a controller event. e.g Volume Change = 127 at tick 0. And section B has a Volume Change = 100 at tick 3072. Tick 3072 is lets say when Section B starts so this event exists at the beginning of Section B. Finally lets assume that Section C has no volume change event. So if the arranger plays Section A (and assuming that you have choose tracks to receive volume events, see below) it will set the volume to the corresponding track at 127. Similar it will set volume at 100 when playing Section B. The question is what will it do for section C which does not have a volume event. If you choose "Follow Style Timeline" then it will set the last volume exists in the timeline, i.e. 100. If you choose "Follow Section Timeline + Tick 0", it will set the volume from tick 0 of the timeline, i.e. 127.
- Return Effects: Giglad has by default 4 global return effects: Reverb1, Reverb2, Chorus, Delay. The melody and physical tracks can use these to send instead of using insert effects on each track (in order to avoid CPU overload). These global effects can be modified and in fact completely change by the user (For example he may choose to replace native reverb with a plug-in reverb). This option here allows you to create 4 additional return effects to be used by this style only. Doing so or not doing so has advantages and disadvantages. If you choose to create 4 additional tracks you obviously requesting more CPU power usage. But after you finish with your style, you know that even if you decide to change your global effects in the future, this style will sound exactly as when you created it. Otherwise it may sound differently since the global effects are changed and the reverb for example is different. Unfortunately there is no right option for this one. If you are not using sends in your style the choice is easy. Do not create additional tracks to spare CPU usage. But if you are using send effects then do you want your style to change its sound? Do you want this global change to also applied to the style? Do you have a good PC/MAC and you do not care about the 4 additional tracks?
- Midi Events Received By Tracks: This is a global setting for the style (which can be change later) but each track can also override this in order to has its own settings. The midi events that are checked will actually be taken under consideration while the rest will be ignored. For example, you can place volume midi events in your midi editor and choose the volume to be taken under consideration and change depending on the timeline or you can choose not to, and instead having a global volume which can be described by the tracks's gain. The most interesting midi event here might be the program change. If the plug-in supports it (the native sound library for example) or if you are using soundfonts then you could change the sound of your instrument in different places in the timeline.

Clicking on the OK button will create a style file in you hard drive and will navigate you in the Style Editor, from where you can describe your style.

#### Programs

A program is a virtual instrument's preset along with the insert and send effects that it may or may not using. In order to avoid confusion over the Arranger's Presets, the word Program is used. Many VST/VST3/AU plug-ins come with a predefined number of presets and you can usually create your owns. You can save them as Programs and add effects on top in order to re-use them later to your style or melody tracks. Programs can also be used to save your soundfonts. Programs have a standardized file format when saved in your hard drive, the lightweight data-interchange JSON. But the actual program is described by a HEX string which makes it impossible to edit these files using a text editor such as Notepad.

Programs are displayed at the Instruments Explorer along with your plug-ins and other type of instruments (soundfonts, memory pool, etc). It is high recommended to use programs in your workflow. First it makes it easy to later re-use a program which you are happy with. Second the information of the program (file relative path) is saved within styles. If in the feature you decide to tweak your program a bit, there is an option in Giglad that will allow you to load your styles by the program's name. And as such all of you styles will adapt the program change instantly without the need of revisiting them one by one and apply the new program/instrument.

You can create a new program from the menu File→New→Program... or in the Programs Browser by right clicking on the parent directory where you wish to create your program and then select the corresponding menu command New→Program.... Additionally, after selecting a virtual instrument on a track (melody track or style track) and adding effects, you can choose to save it as it is by clicking on the corresponding "program" icon which can be found at the top right corner of a style track or by right clicking on the melody track in the corresponding mixer and select "Save as program" from the popup menu. In all cases the Program Definition window will pop up where you need to define the basic attributes of your program.

- Name: A unique in its relative path name for your program. Because the name of the program is used to save the corresponding file, only valid file names are allowed. You can easily rename a program after creating it.
- Relative Path: The relative path of the program considering the Programs Directory. You may not type directly into the edit box. You need to click on the button at the right side of the control and select the directory from there. Programs can be moved around after their creation.
- Instrument: You can select one from your installed plug-ins by clicking on the arrow down button on the corresponding field. The plug-in's window will pop up and any changes you make there will be taken under consideration when the program is saved. If you close the plug-in's window, you can continue editing it by selecting Edit... after clicking again on the arrow down button.
- Include Instrument Suffix: If this is ticked then the final name of the program will include the virtual instrument's name at the end. In the image above for example, the file name that will be saved will be Accordion - Dexed.
- Fx Insert: You can add one or more effects to your program by clicking on the Add button and remove them by selecting the proper one and press the Remove button. You can also reorder them by using the arrow buttons.
- Fx Send: You can choose to send effects to the appropriate returns. These will be the global returns for melody and physical and the style returns for style (if you have select to create the 4 additional returns for the style).

While this window is opened, your main midi input controller can be used to play the selected instrument. Programs are quite flexible. You can choose for example to only save effects in which case when applied on a track which already has an instrument, the action will only apply the effects to it.

### Programs Mapping

If you right click on the most parent directory of your programs (i.e programs working directory), you get will get two additional options New→GM Map... and New→Generic Map...You will be prompted to give a unique name (e.g. myMap) and by pressing OK, Giglad will create a new Map in programs hierarchy as shown in the image.

All these programs will be initially empty and you will have to double click on each one of them in order to set up a virtual instrument of your choice. The goal here is to instruct Giglad which virtual instruments you wish to apply on an external style file (e.g. a Yamaha style). This is obviously a long process but the advantage of using virtual instruments instead of soundfonts without the need of visiting the style editor for each style will probably worth the effort when it comes to GM. Please mind that you will also need to instruct Giglad which map needs to be used from the settings. It is also very important to understand that these maps will only be applied on external styles. If you save one of these styles using the Style Editor or the "Adapt style to the current mixer state", the style will then be a Giglad style and the instruments will be loaded directly from it.

For GM, it is not required to set up all the 128 instruments. If you load a file with an instrument that is not present in your map, the software will fallback to the default.

For Generic maps, this can be a very long process and it probably does not worth the effort. If an external file contains msb/lsb information then in theory the number of instruments that can be mapped are 128*128*128 = 2,097,152. In reality of course they are much less. When creating a generic map, Giglad will populate your map with the most common instruments but most probably these will not be enough. You will have to follow the pattern in order to add more.

Most likely, the volumes and maybe the pans will not be as you would expect. Some virtual instruments may sound louder than others and in general they do not have the smoothness that a soundfont file will have. To overcome this, you have two options:

- Edit the volumes of each file individually, preferably directly using the mixer and then select "Adapt style to the current mixer state". This way you won't have to go to the Style Editor at all. Mind that this process will save the style as a Giglad style at the end.
- Load a style, edit the volumes via the mixer and then select "Adapt GM Map to the current mixer state" which can be found on the directory of your GM Map (in our example myGM). This will apply a relative volume fix to the instruments that are currently used by the style. For example, if the style is using grand piano and its volume is at -6db, if you change this volume on the mixer to be -12db the next time this GM is applied the piano will have less volume. That will not be -6db because decibels are not linear but certainly a smaller value which will correspond to the relative applied volume.

#### Banks

A bank is a set of 16 different file types (e.g 2 styles, 5 presets, 2 songs, 3 programs, 2 audio, 2 patterns) which are represented as "BANK MEMORIES" in the Arranger user interface. You may have as many banks as you want and you can also name them as you wish. Every time you select a different bank, the 16 BANK MEMORIES are populated with the corresponding file types which have been saved and exist in the bank. Because the BANK MEMORIES are always visible in the Arranger screen and you can assign midi control messages (or use PC/MAC keyboard shortcuts) to set these, they are probably the most convenient way to switch presets, styles, instruments,etc. while performing live.

Banks have a standardized file format when saved in your hard drive, the lightweight data-interchange JSON which makes it very easy to edit these using a text editor such as Notepad if needed in case something gets broken (Due to file renaming or moving).

You can create a new bank from the menu File→New→Bank... or in the Banks Browser by right clicking on the parent directory where you wish to create your bank and then select the corresponding menu command New→Bank.... In all cases the Bank Definition window will pop up where you need to define the basic attributes of your bank.

- Name: A unique in its relative path name for your bank. Because the name of the bank is used to save the corresponding file, only valid file names are allowed. You can easily rename a bank after creating it.
- Relative Path: The relative path of the bank considering the Banks Directory. You may not type directly into the edit box. You need to click on the button at the right side of the control and select the directory from there.

When creating a new bank, this automatically gets active and you can start assigning the bank memories of your wish.

#### Presets

A preset is a complete or partial snapshot of the Arranger's state. You can choose to save for example the style which you have set to the Arranger along with your right hand's instrument(s) and the current tempo in order to re-use it later with a single click (or a midi controller button). It is as such a very powerful and useful feature of Giglad as it allows you to pre-make multiple Arranger setups and use them later at your convenience. Presets have a standardized file format when saved in your hard drive, the lightweight data-interchange JSON. Hence you can edit these manually by using any text editor such as Notepad. Generally you will not have to, but in some cases, if Giglad fails to read one of your presets, you may be able tweak the file a bit in order for this to be loadable again.

You can only create a preset if the Arranger module is active. This is quite obvious as it would make no sense trying saving your Arranger's state while you are for example in the Style Editor. The easiest way to create a new preset is to click on the Save button which can be found on the Arranger's toolbar. Alternatively, you can select from the menu File→New→Preset... or Save Preset... directly and if you are a used to keyboard shortcuts your can just press Ctrl+S. Whichever of these actions you choose to take, the result will be the same: The Preset Definition window will pop up. In the Preset Definition window you need to choose which attributes will be saved. You can choose to take a full snapshot of the Arranger's state by selecting all of them or you may wish to select partial attributes to be saved. In any case it is important to understand that only the attributes that you have choose to save will be reinstated while others will remain as they are.

- Style (Foundamental): Saves the current style that has been set to the arranger. The option will be disabled if there is no style currently set to the Arranger. Note that the preset does not keep a copy of the style's data and only saves the path of the style. As such, if you edit the style after creating the preset then, by reinstating the preset, the modified style will be loaded. If you move a style into a different place within your Styles Directory, Giglad will try to find it but it may fail. If you rename your style or delete it then the preset gets broken and you will have to manually edit the JSON file to set the new style's path.
- Style (Mixer): Saves the style group in mixer. That is the volumes, pans, mutes, pans and effects of the style tracks as these have been modified in the mixer.
- Melody (Foundamental): Saves the melody tracks. That includes the track names, the selected instruments, effects, the playing ranges, the volumes, e.t.c. If an instrument cannot be found, when trying loading a preset (this may happen if for example the corresponding plug-in dll has been removed) then the preset will be loaded normally but the name of the instrument will be appeared in red.
- Melody (Mixer): This option is disabled as it is linked with the Melody (Foundamental). Checking/Un-checking one will check/uncheck the other. It is only there for consistency and for the user to understand that the melody in the mixer and the "Melody" tab are linked together.
- Physical (Foundamental): Saves the physical tracks. That includes the audio input channels, the effects, the volumes, e.t.c.
- Physical (Mixer): This option is disabled as it is linked with the Physical (Foundamental). Checking/Un-checking one will check/uncheck the other. It is only there for consistency and for the user to understand that the physical in the mixer and the "Physical" tab are linked together.
- Master (Mixer): Saves the master of the mixer. That includes the master volume, the master pan, the effects, etc. Mind that this option is off by default. That is because in most cases you will not want the master to be reinstated. If for example you are playing something and for any reason you have set the volume to -10db you will probably want for this to stay there if you set a different preset. Another common scenario is that you wish to set some effects to your master and you want them to stay as they are even if you set another preset.
- Returns (Mixer): Saves the return effects of the mixer. The choice to save them or not is a bit tricky. If you do not save them and in the future you decide to change the default returns, then every preset which has not saved them will respect the default returns and will sound different. Which is something that you may want.
- Tempo: Saves the selected tempo.
- Transposition: Saves the selected transposition.
- Syncro: Saves the selected start/stop syncro state.
- Lyrics: Saves the selected lyrics file..
- Key Note: Saves the key note.
- Split Note: Saves the note which defines how your current Arranger's Virtual Keyboard has been split the Chords/Melody ranges.
- Octave: Saves the +/- octave which which has been selected for Arranger's Virtual Keyboard.

You may feel the urge to always save all the attributes mentioned above but in most cases, it will be quite useful to save only some of them. For example you can create a preset that its purpose will be to set your melody instruments. In this case you only wish to save the Melody. Or you may wish to have a preset that will set your microphone. Again you only need to save physical.

#### Songs

A song is a list of instructions which can be set to the Arranger in order for this to play by itself. The instructions describe which style will be used and when, the chords to be played, tempo changes, etc. These instructions are based on a kind of a scripting language; YAML which is a human-readable data-serialization language. This may sound difficult at start but once you get used of it, you will acknowledge how fast and easy this approach allows you to create your songs.

You can create a new song from the menu File→New→Song... or in the Songs Explorer by right clicking on the parent directory where you wish to create your song and then select the corresponding menu command New→Song.... In both cases the Song Definition window will pop up where you need to define the basic attributes of your song.

- Name: A unique in its relative path name for your song. Because the name of the song is used to save the corresponding file, only valid file names are allowed. You can easily rename a song after creating it.
- Relative Path: The relative path of the song considering the Songs Directory. You may not type directly into the edit box. You need to click on the button at the right side of the control and select the directory from there. Songs can be moved around after their creation.
- Template: You can leave it to none or you can select one of the existing templates which will be your starting point in the process of creating the song. Please mind that if you try validating a template it will fail as you need at the minimum to set the song title and the style/section that will be used.

The templates that come with the installation of the software can be found in the ProgramData Giglad's directory (usually C:\ProgramData\Giglad\Templates). These templates are *.yaml files, just like the songs. This simply means that you can easily create your own templates by just creating a *.yaml files and you place them inside this directory. Clicking on the OK button will create a song file in you hard drive and navigate you in the Song Editor, from where you can describe your song.

#### Audio

Giglad can play audio files. Wav, Ogg-Vorbis, Flac and Aiff audio file formats are supported. Left click(for List View) or Double Click (for Tree View) on an audio file in the Audio Explorer will cause the file to be played within Giglad. The audio player is quite limited. You may not seek or pause for example, you can only start and stop. This feature is mainly there to be able to quickly listen your audio recordings. Also please note than when start playing an audio file, previous played style or song will be stopped. Hence, you may not mix the audio with your style or songs.

#### Lyrics

Lyrics are displayed in the Lyrics tab at the top right panel in the Arranger user interface after Left click(for List View) or Double Click (for Tree View) on the corresponding file in the Lyrics Explorer. They can be text files (Left Picture) or any other format which is supported by your native O/S browser component such as html, pdf, etc. (Right Picture). The viewer also acts as an editor when files are text files, which means you can directly type and change your lyrics on the fly which will automatically be saved when is needed.

You can create a new lyrics from the menu File→New→Lyrics... or in the Lyrics Browser by right clicking on the parent directory where you wish to create your lyrics and then select the corresponding menu command New→Lyrics.... A text file will be created this way and will be set to the Lyrics Viewer where you can start typing your lyrics.

Although lyrics are meant for lyrics, because the viewer is quite flexible on the format that it can display, you can use this feature for other purposes such as your scores, notes, etc.

#### Patterns

Patterns allow you to set any chord (major, minor, 7th, etc) in the Arranger with one note only. This feature has mainly been implemented to be used with a foot midi controller in order for the user to be able to instruct Giglad the chords to be played using his foot. Why? Because the user may wishes to use his hands to play a different instrument like the guitar while using his foot to switch chords and have the Arranger playing while he solos.

Because a chord must be detected by a single note, you need to instruct Giglad which chord to play when a specific note is "on". This is achieved with patterns. Before start using this feature, you need to select mode Single Finger (Patterns) in the Arranger settings

You can create a new pattern from the menu File→New→Pattern... or in the Patterns Browser by right clicking on the parent directory where you wish to create your pattern and then select the corresponding menu command New→Pattern..... In both cases the Pattern Definition window will pop up where you need to instruct how the chords will be changed by a single note.

- Name: A unique in its relative path name for your patterns. Because the name is used to save the corresponding file, only valid file names are allowed.
- Relative Path: The relative path of the patterns considering the Patterns Directory. You may not type directly into the edit box. You need to click on the button at the right side of the control and select the directory from there.
- Key: The key note that corresponds to the chords that you will define in the table below. The key can change "in the fly" later for the defined chords to adapt to the new key.

The table is pretty straight forward. You instruct Giglad which chord to play for which note. You can do this by double clicking on the corresponding "Chord" column of the note you wish to assign. For example and as shown in the picture, I have instructed Giglad to play Am when I play the note A, Dm when I play the note D and E(maj) when I play the note E. You can define any chord you like in any note even if it makes no sense at a first glitch. For example I have instructed to play A(maj) when the note is A# because it is convenient to me. (Unassigned) notes will be ignored meaning that no chord switch will take place if any of these notes go "on".

After having created one or more patterns, the time has come to actually use them in order to switch chords in Giglad using one note. The patterns browser looks like any other files browser but it adds a few controls to allow you using this tool efficiently:

- Key: The key in which the selected pattern will use to adapt. In our image, we set the key "A" when we have created the pattern but here we have changed it on the fly to be C. All the chords have been transported to match our key.
- Adapt Key: When this option is on, setting another pattern to the Arranger will cause it to use the Key of this window. Otherwise it will use the originated key and the Key of this window will change to match the key of the pattern.
- Chords List: Not editable. It is there to remind you the chords that have been defined in the selected pattern.

#### Yamaha Styles

Giglad can read and play Yamaha SFF2 and SFF3 styles. The styles should exist inside styles working directory in order to be revealed in the Styles Explorer. You can then use them and edit them as you would do with your own styles.

When a Yamaha style is read for the first time, Giglad will use the External Files Sound Mapping to set the instruments. Using the Style Editor, you can change the instruments and even replacing them with your own plug-ins. Alteratively, you may adjust the volumes, the pans. etc directly in the Arranger's mixer and when you are happy with your changes, you can right click on the loaded style in the Styles explorer and select "Adapt style to the current mixer state". This is the faster way to accommodate an external file to your needs. If the Midi Engine of Giglad is enabled then the style tracks will be populated with midi instruments.

Because the Yamaha style data format does not exactly match Giglad's data format and because the sound mapping may be not quite right as Yamaha Styles are using more than 128 sounds (GM) the styles will not be heard as actually playing them in a physical Yamaha arranger but the result is quite decent and if you take the time to process them a bit and revoicing them, the result will be quite satisfying.

An important note here is the midi messages received by tracks. Check your settings to decide which messages you wish to receive when loading a Yamaha style and you may further visit the style editor to change this for every style. But if you make changes to the volume for example using the mixer while the Volume Event is on, its likely that the volume will be set again by a midi event.

#### Audio Recordings

Anything that is played to the Arranger can be recorded in audio format.

You can create a new recording from the menu File→New→Recording→Audio... or in the Audio Browser by right clicking on the parent directory where you wish to create your recording and then select the corresponding menu command New→Recording... or directly from the "Player" panel in the Arranger by pressing the corresponding button (If it has been set as default in the arranger settings). In all cases (but the last) the Recording Definition window will pop up.

- Name: A unique in its relative path name for your recording. Because the name of the song is used to save the corresponding file, only valid file names are allowed. You can easily rename a recording after creating it.
- Relative Path: The relative path of the recording considering the Audio Directory. You may not type directly into the edit box. You need to click on the button at the right side of the control and select the directory from there. Recordings can be moved around after their creation.
- Audio Format: Wav, Ogg-Vorbis, Flac and Aiff audio file formats are supported.

After clicking on "Start Recording", the window will close and the audio output will be recorded. You should stop you recording by pressing the recording button from the "Player" panel in the Arranger.

#### Midi Recordings

You may record what is played to the Arranger in midi format. Please note the limitation that the arranger should play a style for a midi recording to be started. It is not possible to record midi while playing freely, i.e. without a style. To workaround this, you may create an empty style or a style that may provide some beat in order to have a style playing while you are recording your melody only.

Because a midi recording will create a *.mid file, this will be saved in your styles directory from where you can later play it directly into Giglad by double clicking on it. You can create a midi recording from the menu File→New→Recording→Midi... or in the Styles Browser by right clicking on the parent directory where you wish to create your recording and then select the corresponding menu command New Midi Recording... or directly from the "Playback" group in the Arranger by pressing the corresponding button (If it has been set as default in the arranger settings). In all cases (but the last) the Midi Recording Definition window will pop up.

- Name: A unique in its relative path name for your recording. Because the name of the song is used to save the corresponding file, only valid file names are allowed. You can easily rename a recording after creating it.
- Relative Path: The relative path of the styles considering the Styles Directory. You may not type directly into the edit box. You need to click on the button at the right side of the control and select the directory from there. Recordings can be moved around after their creation.
- Table: The table displays the channel, the program change plus MSB/LSB for each track in your style + melody that Giglad will use to apply the midi events in the file. These values are read only and cannot be changed. If you are using soundfonts (or Giglad's Midi Engine) these should be accurate. If you are using virtual instruments then program change 0 will be applied. If you wish to change that then - For your style you may add program change events - For your melody, you should use soundfonts. In any case, all these can change later by using another midi editor or Giglad itself.

## Arranger

The Arranger is the core of Giglad. Here you can play your music and perform live. The interface has been designed to be as simple and friendly to the user as possible and to simulate a physical keyboard arranger. Its elements are described below.

All the Arranger functionality such as play, stop, change tempo, select style, switch section, etc. can (and should) be mapped to your midi controller and/or PC/MAC keyboard in order to play without the need of a mouse.

#### Console

Displays the playing chord, the current tempo, the style's time signature, the current transposition and the applied octave. It also displays the beats while playing or any another related information (such as the time when playback audio file). Finally the audio engine load can be monitored here and if you click on it, the performance window will open where you can see more details regarding the audio engine.

#### Navigator

Each of these buttons display the currently selected file type. Here for example, my current style playing is "03 01 42 fast" and my current bank is "super_b". Clicking on any of these buttons will result the top left panel which hosts the Files Browser to display the selected file type.

#### Files Browser

The top left panel hosts the Files Browser and the file type that this shows can change from the navigator.

#### TR-Panel

The top right panel hosts the melody mixer for the tracks which play the melody, the physical mixer for physical input tracks (e.g. microphone, guitar, etc), the Instruments Browser and the lyrics viewer. The name of the selected instrument or program is displayed in the track. Left clicking on this area will switch to the Instruments Browser for you to select your instrument. Right clicking on this area will pop up the plug-in's window. Right clicking anywhere else will pop up a menu which will offer additional options for the track. Clicking on the arrow button will pop up the track window from where you can access more advanced features for your track such as insert/send effects and midi options.

#### Player

- Syncro Play: Will cause the arranger to go into syncro play mode, i.e start playing once a chord has been detected.
- Syncro Stop: Will cause the arranger to go into syncro stop mode, i.e stop playing once no note is down in the chords section.
- Play/Stop: Starts the arranger if not already playing and stops the arranger if already playing.
- Fade In: Will cause the arranger to start plying with fade in.
- Fade Out: Will cause the arranger to stop plying with fade out.
- Record: Starts/Stops an audio or midi recording (depending on the default which has been set in the Arranger settings). A file with a unique name will be created in the working directory of the recordings or styles.

#### Tempo

- Tempo Knob:A graphical tool to change the tempo
- Down:Will decrease the current tempo by 1.
- Up:Will increase the current tempo by 1.
- Tap Reset: If the arranger is stopped, by clicking 4 times in BPM sequence, the tempo will be extracted and will be set and the arranger will start playing. If the arranger is already playing, it will instantly move the playing cursor at the beginning of the section.
- Lock:You may lock/unlock the tempo in order for this not to be applied automatically when a style or a style section is set. See also arranger settings.

#### Transposition

- Down:Will decrease the current transposition by 1.
- Up:Will increase the current transposition by 1.

#### Octave

- Down:Will decrease the current octave by 1.
- Up:Will increase the current octave by 1.

#### Melody On/Off

Activates/Deactivates the corresponding melody tracks. This in fact the same as muting a track from the mixer but its here for convenience and consistency.

#### Chords

- Arranger On/Off:When this is on, the arranger plays all tracks. When this is off then the arranger will only play the drums. To be more precise, the arranger will only play tracks which have CTA "Bypass". This is usually the case for drums but if for any other reason a track has CTA Bypass, it will also be played when this is off.
- Memory On/Off:When this is on, the arranger will keep playing the last chord even if you take your hand from your keyboard. When this is off, the chord will be set to nothing if you stop playing it.

#### Bank Memories

You may assign any file type you want to the arranger memories, such as a style, a preset, a program,etc. In order to assign a file type, you need to drag the corresponding file from the Files Browser to the memory you wish to make the assignment.

If the assignment is successful, the memory will take partial the color of the file type and its name. A new assignment will overwrite the existing one. You can also remove an assigned file by right clicking on the assignment and select "Clear".

The memories are auto-saved within the currently selected bank. If you create a new bank, the new bank will be selected and all the memories will be deassigned. Respectively, selecting a bank will populate the memories with these exist in the bank. Bank memories will keep your workflow organized and allow you to quickly set the Arranger in the "state" you want this to be.

#### Sections

This is where you can switch to a different style section. Sections are populated by the selected style, hence the number of sections and the names can be different from style to style. Selecting twice a section which have a successor (Successors are explained in Style Editor but for example a Yamaha style Fill In) will cause the successor section to be set.

#### Keyboard

The Arranger Virtual Keyboard represents your physical midi keyboard controller with the "Main" role. While playing notes on your main midi controller, you will have the corresponding ones highlighted in the Arranger Virtual Keyboard. If that is not the case then re-visit your settings. At the top of the Arranger Keyboard a splitter exists which can be moved by the mouse or by the assigned midi control to define your Chords range and your Melody range. A note that is played in the Chords range is used to identify the chord that must be played for the activated style. These ranges are also taken under consideration by the Melody tracks. The Arranger Virtual Keyboard can also be driven by your PC keyboard with key [A]→[C4], [S]→[D4], [D]→[E4] and so on. Obviously this is not quite convenient. To play properly you need a hardware midi keyboard controller.

#### Toolbar

By hovering the mouse over the toolbar buttons, you will get a tooltip of what each of this does.

- Save: Pops up the Preset Definition window in order to take a snapshot of the Arranger's current state.
- Swap Controller/Mixer positioning A convenient way to easily switch the positioning of the mixer with the Arranger controls.
- Key Note: Sets the Key Note.
- Start Playing: Starts the Arranger.
- Stop Playing: Stops the Arranger.

#### Key Note

Setting the key note is like changing the root chord of your currently playing style. If for example you are playing a style which has a root chord of Cmaj7 and you set the key note to A, then the style will behave as its root chord is Amaj7. Hence, if you are playing a song on Am scale, you will probably want to have the key set to A. But this not restrictive and sometimes it may even sound better if you have a different Key Note than the scale you are playing. It depends on the style and the virtual instruments.

#### Mixer

The mixer is divided into different groups which have different colors and the visibility of these groups can be set from the settings. You can change the volume of your tracks, you can change the pan and you can mute tracks (with the [M] button) or set them as solo (with the [S] button). You can have multiple solo tracks by Ctrl + Click the solo button. Drag & Drop an instrument on a track that can have instruments (a master track or a physical track for example cannot have instruments) will cause this instrument to be set on the track. If you right click on a track, a pop up menu will offer you additional options. Furthermore, if you click on the track arrow the track window will popup from where you can set more advanced options such as insert/send effects and more.

The mixer is resizable and does it best to fit all the tracks but if there are too many tracks, a scroll bar will be present which will allow you to access all your tracks eventually. The last group in the mixer contains the masters (i.e. Style master, Melody master, Mixer Master) from where you can achieve the balance you need between your left and right hands.

The mixer changes only affect the current state of the Arranger. If for example you change the volume of a style track lets say from 0db to 6db the change will not be saved in your style file. Which means that if you reload the style the corresponding volume will be 0db again. If you wish your changes to the attributes of the track to be permanent then you can right click on the applied to the Arranger style in the Styles Explorer and select "Adapt style to the current mixer state" or go to the Style Editor and press Save. This is because you can save the state (which includes the mixer) of the Arranger as a Preset and you can have the same style in different presets with different track attributes. A common simple example is to create a style which includes lets say drums instrument. And you wish to use the same style in two different songs but in one of these songs you wish to have the drums muted. Instead of creating two styles you are creating only one and you create 2 different presets: One with the style as is and one with the drums track muted.

A mixer is also available in the Style Editor.

## Style Editor

The Style Editor provides you with the necessary tools to create your style. The main window's screen is divided in two, where at the top you can see the tracks as well as the timeline of your style and at the bottom is the Midi Editor where you can view and edit the midi events of each track. You can alternatively switch at any time the bottom window to see your styles, instruments or the mixer. You can load a style (i.e. apply it to the midi editor) by double clicking on the corresponding file or simply drag & drop it into the main area. You can set an instrument on a track by using that track's window or by drag & drop the instrument into the track you wish this to be set. A style is based on the midi protocol; it is a midi file after all. This document will assume that you have no previous experience with midi and will try to explain things as simple as possible. Nevertheless, it may fails to do so in which case, if you are having a hard time understanding, you can learn more about midi on the Internet. In fact, it is advised to do so as you will feel more comfortable of what it is that you are doing. Even if you are familiar with the midi protocol or experienced user with other DAW's midi editor, it is still advised to quickly read this section because there are conspepts (such as style sections and chord transposition algorithms) which are unique to Giglad. ☛ A style is composed by tracks. Each track plays a virtual instrument and all the instruments are mixed in order to produce the final result. ☛ A style has a timeline. The timeline is split into different sections and these are in fact the sections of the style. In the picture above 2 tracks are visible (more exist but they do not fit in the window) the Drums and the Bass and 2 variations of the Bass. We can see 6 measures in the timeline (again more exist). Measures 1&2 define the Verse-A section while Measures 4&5 the Fill-A section. Measure 3 also serves a purpose but lets assume for now that it is just ignored from the timeline. Drums & Bass are When creating a new style, and if you leave all its definitions as default, your Style Editor window will look like the one below. By default, you get one track, called Track 1 and one section in the timeline called Main with one Measure; One more measure is added at the end of the timeline which does not belong to the section. Please remember to select a track before trying to add events in the midi editor. Eventually you will wish to add more tracks, more sections and instruct each track what notes should play and when.

#### Tracks

Please refer to the tracks section which describes in detail how you can select an instrument and setup the volume, pan,etc.

The tracks in the Style Editor can be selected. You can select a track by clicking anywhere inside it (not inside of its controls) or by clicking on its corresponding timeline. You can also select multiple tracks by holding down the Ctrl key and change multiple attributes simultaneously.

You can add a track by clicking on the Add button which can be found at the end of the tracks and you can remove a track by clicking on the Remove button which can be found at the top right side of the track you wish to remove. You can also reposition your tracks by clicking on the arrow button in the track and select the proper menu action.

#### Memory Pool (S)

You can switch to the Style's Editor memory pool by using the corresponding tab at the bottom of the top right window. Please refer to the Memory Pool section to understand the purpose of the memory pool and how you can use it. Style's memory pool is a shared memory pool and for styles it should only be used for plug-ins which support multiple channels (e.g. Kontakt) in order to relief your system by creating only one instance of the plug-in and use multiple instruments in your style's tracks. For other type of plug-ins there is no real advantage to go through the memory pool to select your style instruments.

Style's memory pool is referred as Memory Pool (S) and it is created when the style gets loaded. When the style gets replaced by another style, it's memory pool is destroyed. The information of the Memory Pool (S) is stored within the file of the style and an advantage of using it instead of the global memory pool is that the whole information is kept in a single file.

#### Chord Transposition Algorithm (CTA)

The style tracks have an additional tab window called CTA. The attributes of CTA describe how the midi events will adapt on each chord you are playing. As previously mentioned in this document, a style has a root chord. To make it easier, let's assume that the root chord will be Cmaj7. Every track plays notes by respecting the root chord. For example the guitar may play C4-E4-G4-B4 while the bass plays C4-G3-C4-G3. It is not compulsory for the tracks to play only notes that belong to the root chord, but they usually do. When playing live using your style and you play for example the chord Am, the Arranger's engine needs somehow to know how to play A3-C4-E4-A4 instead of C4-E4-G4-B4. This is succeeded with the CTA where you need to select for each track which algorithm will be used to do the conversion. CTA also takes under consideration the Key Note which is set either to the Arranger when playing live or to the song. The following explanations assume C Key Note.

- CTA: Bypass: No transposition is applied at all. This algorithm should always be set for percussion (drums) as the notes of the percussion are not affected by the chord that is playing.
- CTA: Free: No transposition is applied at all unless it comes from the global arranger transposition. This algorithm should be applied in tracks that play some kind of melody which should be the same regardless the playing chord but respects the transposition in case it changes. It can also be applied to tracks from a midi file that is loaded in the style editor but its not meant for a style but for a full song. It always produces notes regardless if a chord has been detected or not.
- CTA: Free (Chord Bind): Behaves exactly as >CTA: Free but it does not produce any notes if no chord has been detected.
- CTA: Fixed: Transposes in such a way so the result notes to be as near as possible to the ones defined in the root chord. For example C4-E4-G4-B4 for Am chord will be converted to C4-E4-A4-C5.
- CTA: U-Shift: Transposes Up each note by maintaining the semitones relationship. For example C4-E4-G4-B4 for Am chord will be converted to A4-C5-E5-A5.
- CTA: N-Shift: Transposes Near each note by maintaining the semitones relationship. For example C4-E4-G4-B4 for Am chord will be converted to A3-C4-E4-A4 because A3 is nearer C4 than A4.
- CTA: D-Shift: Transposes Down each note by maintaining the semitones relationship. For example C4-E4-G4-B4 for Am chord will be converted to A3-C4-E4-A4.
- Guitar: This mode should be set only for tracks that play the guitar and it works completely different than these described above. Some notes no matter the octave they exist are mapped to one of the guitar strings.
  B → Guitar High E A → Guitar B G → Guitar G F → Guitar D E → Guitar A D → Guitar Low E C# → Quint C → Root Note

The X-Shift CTA can be X-Shift [Chord], X-Shift [Bass] or X-Shift [Riff]. Bass and Riff will only make a difference if the selected Chords Detection Mode in the Arranger settings is Fingered on Bass. In that case:

- Bass: The root note in the midi editor will be transposed to play the first note in your left hand. For example if the midi events are C-E-G and your left hand plays G-C-E, the arranger will play G-E-G, i.e. the root note which is C will be converted to G as this is the first note played in your left hand while all others will remain the same

- Riff: Works similar with the Bass but it will transpose all the notes, not just the first one. For example if the midi events are C-E-G and your left hand plays G-C-E, the arranger will play G-C-E

The CTA window has also the Root Chord which can be used to override the root chord of your style for the specific track only. If you choose something other than "Inherit Style", the track will use the selected chord as its root chord and will completely ignore the root chord of the style.

### Chord Transposition Algorithm Advanced

By clicking on the corresponding link in the CTA window you can access the advanced options of the CTA.

You can have different CTA per section or to choose the same CTA for all your sections. The first row is always the Master CTA. That is the CTA that will be applied for all sections unless one or more of them overrides it. In the image above, where we can see the CTA of the Bass Track, all sections but the "Chorus" are using the same CTA, the Master CTA, while the "Chorus" explicitly overrides the Master Track and it is using its own CTA. It is possible to select multiple sections in this table and change CTA properties. Every change you apply while you have multiple sections selected will be applied to all the selected sections. Mind the Mute Notes & Chord Symbols. Any change in this while multiple sections are selected will cause the whole table to be copied and not just the one ticked.

Furthermore, it is possible to have different CTA depending on the range a note exists. For this to be achieved, you need to select "Container" in group type. This will enable the three possible ranges and you can define the mid range from the corresponding combo while the low and high range will be auto set. For example if you choose mid range 36-83 then the low range will be 0-35 and high range will be 84-127. In this case every note depending on the range it exists will follow different CTA. Choosing the Sub CTA will cause the right panel (which is in fact the CTA) to be populated with the properties of the selected range.

At the top of the right panel, you can see info of what is selected and being edit. Full Range CTA (Track-Bass) indicates that I am editing the full range (i.e. no container and different ranges) for the master track. The CTA attributes are explained below.

- Class: The main CTA type which also exists in the track user interface for fast access and explained above.
- Root Chord: The root chord which also exists in the track user interface for fast access and explained above.
- Chord Switch: Describes how the arranger will behave on a chord switch when a note from a different chord is already on. ☛Retrigger: The note will be played again to match the new chord ☛Stop: The note will be set off and will only be played again when the midi events instruct to do so.
- CTA Range: Notes outside this range will not be transposed. This option can be quite useful for some plug-in instruments which use part of the midi range as a controller. For these instruments you probably with to leave the control range out of CTA.
- Forced Range: Notes outside this range will be transposed with the appropriate octave to lie within the selected range. For example if this range is 100 - 127 and the CTA needs to play note 98 it it will eventually play 98+12 = 110. This is a useful setting when you wish a note to be transposed within the playing range of an instrument.
- Playable Range: Notes outside this range will not be played at all. This can be useful for Yamaha styles which they use the very high range of the keybaord for special sounds that are not supported in giglad. Hence, these event are muted.
- Mute Notes & Chord Symbols: You may choose notes or chord symbols to be muted for the specific track. If for example you check the "m" symbol then all minor chords will not be played for this track. This is quite useful if you wish to have different variations depending on the playing chord.

#### Variations

Variations can be very useful when creating a style. A variation is like a track and contains midi events while also has its own CTA. However, no instrument or effects can be assigned to it as it inherits these attributes from the track that it belongs to. In the image below, the bass track has 2 variations.

What you usually want to do is to instruct Giglad to play different midi events (i.e. use track or any of its variations) depending on the chord you are playing while performing live. You do this by muting chords or symbols on the track CTA and its varitaions CTA. For example, in the image below (track CTA left, Variation 1 CTA middle, Variation 2 CTA middle) I have choose my track to play all chords normally but m(add9) which will be played by Variation 1 and mMaj7 which will be played by Variation 2. This means that if I play for example Em the midi events in track 1 will be played, if I play Em(add9) the midi events of Variation 1 will be played and if I play mMaj7 the midi events of Variation 2 will be played.

You can add a new variation by clicking on the arrow in the "Input" tab of the track and select "Add Variation" from the corresponding menu item. You can delete a variation by clicking the "Remove" icon button at the top right of the variation. You can use as many variations as you like and because these are not using any instruments or effects but inherit their track, they do not require additional processing power.

#### Midi Editor

The Midi Editor is used to describe the midi events that each track will send to the instrument. There are also meta events such as the tempo or the time signature which are actually send to the arranger. The midi editor is composed by

- The central grid where the midi events are defined.
- The bottom grid where the velocities of the notes are defined
- A keyboard on the left side which makes it easier to find the notes you wish to put in the central grid.
- A combo box on the left top side where you can select the midi events type to be visible (notes, controls, meta).
- A toolbar with available actions such as select, edit, zoom etc to help you editing.
- A simple input control where you can define velocities and other midi event values such as the tempo, the time signature, the program change, etc.

Most of the midi editor's critical functionality can be mapped to keyboard shortcuts and this is something strongly advised to do so in order to significantly reduce the editing time.

The Midi Editor reflects the selected track. Hence, you need to select at least one track to start editing (unless you are editing meta events). Selecting multiple tracks and using the editor is not advised and it is only needed in certain cases. Most of the time you will wish to select one track and start adding notes in it. Later on this chapter, we will see how the midi events can be added directly from the midi keyboard controller while the Arranger is playing but for now let's use our PC keyboard and mouse to better understand the editor.

Understanding the central grid is crucial and quite straight forward. Each cell, in the left image, represents a quarter midi event and you can see which note event from the music keyboard on the left or which control event from the corresponding text. Here we have simply instructed for the quarter notes C-E-G-B to be played. The note starts playing at the beginning of the rectangle and stop playing at its end. The bottom grid displays the velocity of each note, which is the force with which a note is played. Obviously, this is a a very simple example and in the reality you will wish to describe much more complicated melodies. So let's dive a bit deeper.
By hovering the mouse over the toolbar buttons, you will get a tooltip of what each of this does.
☛ The Select Events (arrow) should be on, when you wish to select events in order to copy, move, resize and delete them. ☛ The Create New Events (pencil) should be on, when you wish to add new events. ☛ The Grid Compo Box represents the note values in the grid. 1/4 will display quarter events, 1/8 will display eighth events and so on. ☛ The Zoom (magnifying glass) allows you to zoom the grid in/out. ☛ The Triple Events adjusts the cells accordingly to fit triple events, when it is on. ☛ The Snap(magnet) will cause the events to be added, copied, moved etc to get snapped into the grid in left(event on) and/or right(event off). ☛ The Quantize(Q letter) will pop up a new window where you can apply quantize to the already added events.

- Adding Events: In order to add an event, the Create New Events button should be selected (pencil). If you then click inside a cell of the grid, and while the snap button is on, an event will be created with the value of a grid cell. More frequently, you will wish to press the left mouse button somewhere inside the grid and start dragging to the right with your mouse. When you release the left mouse button, the event will have be inserted. Depending on if you have the Snap on/off, the event will fill the grid cells or will be placed exactly where you clicked. Pressing the Alt button while clicking it will cause the snap to be ignored.
- Selecting Events: In order to select an event, the Select Events button should be selected (arrow). If you then click on an event, this will be selected. You can click on another event, while pressing the Ctrl button at the same time time, to add more events in your selection. Alternatively you can select multiple events by pressing the left mouse button anywhere inside the grid and outside events and start dragging so that you enclose or intersect events inside your window. By pressing the Ctrl button and clicking on a note in the virtual keyboard at the left will result all the notes in the midi editor of the note that has been clicked to get selected.
- Deleting Events: To delete an event, first select it and then press the Del key or right click with your mouse and select Delete from the corresponding command menu. You can delete multiple events at the same time if multiple events are selected.
- Moving Events: To move an event, press the left mouse button on an event and start dragging. You will see the event moving. By releasing the left mouse button the event will be placed where you released the button. You can move multiple events at the same time if multiple events are selected. If while moving the Ctrl key is down, then the events will be copied instead.
- Copying Events: You can copy events as described exactly above on Moving Events. Alternatively, you can select one or more events and press Ctrl+C or or right click with your mouse and select Copy from the corresponding command menu. The events will get in the clipboard and you can paste them by placing the cursor where you wish for them to be copied and press Ctrl+V or or right click with your mouse and select Paste from the corresponding command menu.
- Changing Existing Events: By putting the cursor at the edge of an event (left or right), the cursor icon will be changed and imply that you can drag the event in order to change its value.
- Changing Velocities: When adding a note, this is is added with the velocity that can be seen at the slide bar under the music keyboard (default 100). You can change this before adding the note but usually you will want to change the velocities later, after placing a few notes. To do so, move your cursor at the top of the rectangle of one of your velocities (bottom grid) and drag it up or down to change its value. Alternatively, you can select one or more notes and change their velocity from the velocity slide bar.

Pressing the Ctrl button while moving the mouse wheel will cause vertical zoom while pressing the Ctrl+Shift button while moving the mouse wheel will cause vertical zoom.

#### Sections

It should be clear by now that the notes in each style section are played in a loop when the section has been selected in the Arranger. For example, a 4/4 style with selected the section Main which contains 4 quarter notes C-E-G-B will play C-E-G-B-C-E-G-B-C-E-G-B-C-E-G-B and so on. There is no restriction on the number of measures that each section can have. The section will repeat itself when all measures of the sections have been played. At the top of the timeline, in both the Midi Editor and the central window of the Style Editor you can see the sections and the measures of each section as well as the total sections in your timeline.

☛ Right clicking on a section will pop up a menu from where you can take further actions such as adding a new section, rename a section, delete a section, etc.

- Insert New Section: Inserts a new section before the section that has been selected. In the image example, the new section will be added before Verse. A window will pop up in order to give the basic attributes of your section such as the name, the number of measures and the number of echos.
- Append New Section: Inserts a new section after the section that has been selected. In the image example, the new section will be added after Verse. A window will pop up in order to give the basic attributes of your section such as the name, the number of measures and the number of echos.
- Rename Section: Pops up a window where you can enter a new name for your section.
- Remove Section: Removes the section from the timeline and deletes all the note events that this contains.
- Merge Sections Merges the named sections and results one final section.
- Split Section Splits a section into 2 with the named measures.
- Move Section Before: Displays a list with all the sections but the one selected in order to move the selected one before another existing section. In the image example, this option is disabled because the selected section is the first one so it cannot go before any other section.
- Move Section After: Displays a list with all the sections but the one selected in order to move the selected one after another existing section.
- Insert Echo Measure: Adds an echo to the section with a number of measures as requested. Echoes are explained in detail later in this document. In the image example, this option is disabled because the section already has an echo.
- Remove Echo: Removes the echo from the section. Echoes are explained in detail later in this document.
- Group: Can be "Into", "Main", "Fill In" or "Ending" and it only affects the way the sections are grouped and placed in the Arranger.
- Successor: Displays a list with all the sections but the one selected in order to select the successor of the selected section. This comes handy to sections which suppose to act as Fill Ins. For example, let's suppose you have three sections in your style: Verse, Fill-In, Chorus. If you set the successor of Fill-In to be Chorus then switching to Fill-In while being in the Arranger will cause the Fill-In section to only be played once (instead of going into loop) and automatically switch to the Chorus section. You can also set the successor to be "Previous Playing" in which case the Arranger will switch to the section that was previously playing or you can set the successor to be "Ending" in which case the Arranger will stop playing after the section finishes.
- Can Switch On: By default, sections switch on the first beat. On a 4/4 style for example, if you switch section on the second beat, the arranger will play the remaining 2 beats before switching to the requested section. You may allow a section to switch on "any beat" by selecting the corresponding option. This is quite useful for "Fill In" sections.

☛ Right clicking on a measure, regardless if this belongs to a section or not, will pop up a menu from where you can take further actions.

- Insert Measure(s): Inserts one or more measures before the section that has been selected. In the image example, the measure(s) will be added before Measure 1.
- Append Measure(s): Inserts one or more measures after the section that has been selected. In the image example, the measure(s) will be added after Measure 1.
- Remove Measure: Removes the measure from the timeline and deletes all the note events that this contains.

A midi event which starts on section A end ends on section B is a "bad" event and will be paint in red. Normally this would cause the note to never go off while playing section A but the Arranger auto fixes this issue by playing note off at the end of the section. However, it is not advised to create or having such events.

#### Echoes

Echoes are an advanced feature of Giglad. They may feel hard to understand at the beginning, but once you get familiar with them, they will allow you to take your style into the next level. Echo is the part of the timeline between the end of one section and the start of the next. In the image below, Measure 2 is echo. As the Arranger is playing, when the timeline reaches the end of section Main, it will be moved back again at the start of section Main. But at the same moment, another timeline continues in order to play the events of the echo. In other words, the events of a section's echo are "mixed" with the section itself.

Let's understand the benefits of echoes. In the image above, note E (upper event) will be played at the start of the section Main. At the end of the section, the note will go off, and almost instantly it will go on again as the timeline will go back at the beginning of the section. This may of course be a desired behavior. But what if you wish the note to keep playing for ever and never goes off? This can be succeeded by using the echo of the section Main. In the image above again, note C (lower event) will be played at the start of the section Main. Because the note goes off at section's echo, but before goes off it has been set on again, as the timeline went back to the begging, what will happen is that the note will never go off and the sound will be constant. Echoes can also provide a great beneficial usage on a Fill In section, i.e. a section that exists only for the transition from section A to section B. In the image below, the bridge section will play C-E-G-B and at that time you can switch to a different section which will start playing but the echo of the bridge will continue and play all the notes C-E-G-B at once. The best practical example of the bridge is the crash cymbal of the drums which usually goes at the beginning of the next section. To achieve the desired behavior, you can use the bridge's echo end put the crash cymbal at the echo.

#### Toolbar

By hovering the mouse over the toolbar buttons, you will get a tooltip of what each of this does.

- Save: Saves your current progress. Giglad does not save automatically so it is strongly advised to save your style often.
- Undo: Undo your last action.
- Redo: Redo your last action.
- Settings: Pops up the Style Definition window from where you can change some attributes of your style.
- Metronome: Sets the metronome on/off. The metronome will start when the Arranger starts, i.e. when you click on the Start Playing in the toolbar. The metronome is useful when you are adding notes to your style live, while playing on you midi keyboard controller.
- Play Chord: Allows you to listen how your style will sound if the selected chord is played in the Arranger. This comes handy as you do not need to switch to the Arranger UI in order to test your style.
- Tempo: Changes the style tempo. You can use the slidebar or type directly into the field the tempo that you wish to set. Mind that because the tempo is in fact specified by a midi event, changing the tempo here will in fact change the value of the corresponding midi event. This will be the last tempo event after the timeline cursor is placed.
- Play Section: Will move the timeline cursor at the beginning of the selected section.
- Record: Allows you to create note events directly from your midi keyboard controller without the need of using your mouse and keyboard. When this is on, and the Arranger is playing, any notes that will be played by your midi keyboard controller will be inserted directly into your style and will be visible on the Midi Editor as well. Note, that a track must be prior selected in order for this to work. Also, mind the Midi Editor's snapping option. If it is on, the notes you play will be automatically adjusted to the grid.
- Start Playing: Starts the Arranger.
- Stop Playing: Stops the Arranger.

## Song Editor

The Song Editor is the tool which you will use to create and edit your songs. A song is based on the human-readable data-serialization language YAML; hence, you could use any text editor such as Notepad (or even better Notepad++ which also supports YAML syntax) to create your songs. However, the in house Song Editor provides some additional functionality such as playing specific song segments, formatting chords and validating not only the YAML syntax but also the song requirements. This additional functionality will be a great asset in the process of creating your song.

#### Song Syntax

If you find it hard to understand the song syntax as explained below, you should search on the internet a bit about the YAML syntax. A song is after all based on YAML and it just adds a few simple rules to form the song. But the core syntax does not change. A song consists of the Header which must be unique and the Segments which can be as many as you like. Each of them consists of a number of mandatory or optional attributes. Lets see and explain the example below which is one of the simplest songs that can be created.

- #---------------------------------------------------- # Song header: Anything after the # character is considered a comment and it is not taken into consideration. You can write anything you want after a # and it is just for your own convenience. The song will play even if this is omitted or if we write instead "# This is my song header".
- song: This declares the song header and it is a mandatory field.
- tempo: This is an attribute of the song and it will set the tempo to 100bmp.
- segments: Here we describe the segments which we want to be played in our song. We describe our segments by separating them with comma and enclosing them inside brackets, i.e. [segment1, segment2, segment3, etc]. In this example we have defined a segment below named mySegment and we have instructed here for this to be played twice.
- mySegment: This declares a segment and as we have seen, it is used by the song header. Any name can be used (within YAML restrictions).
- style: This is an attribute of the segment and instructs the style and the style section to be used when the segment is about to be played. We describe the style by the relative in our Styles Directory path of the style, separated with comma with the style section name inside brackets, i.e. [relative_style_path, style_section_name].
- chords: This is obviously the most critical part where we describe the chords to be played. For simplicity, we’ll consider for now a beat and quarter note to be synonymous. The chords are described again with comma separators inside brackets while the parenthesis states the number of beats for the chord to be played. Hence, in this example, the chord Am will be played for 3 beats and then the chord E7 will follow and will be played for 1 beat.

So by taking into consideration all the above, when the song is played the style \8beat\SlowBaland will be used with its section AA as active and tempo 100. Then the following chords will be played Am (3 beats), E7(1 beat), Am (3 beats), E7(1 beat). Please mind that the segment mySegment contains only two chords buts its played twice in the song header. The syntax of a song is Case Sensitive. If you define a segment with a name mySegment and try to use it in the song header as MySegment you will get an error. If instead of tempo you type Tempo then you will get no error because the tempo attribute is optional. What will happen is that it will be ignored and eventually the style tempo will be used. It should be noted here that the segments do not reflect the commonly used parts of the song Intro-Verse-Chorus. Sections must be defined where different instructions need to be set. For example if the tempo changes you need to create a segment. It is also a good practice to have segments that declare unique chords. If for example there is a song that its chorus has two chords that change like that Am-E7-Am-E7-Am-E7 it is best to create one segment with the chords Am-E7 and declare it to be played 3 times in the song header. At the end of the day, it does not make too much difference and the best practice is the one that suits each user. So as long as you get the expected result and you are happy with it, it does not matter how you have form your song.

#### Song Attributes

The song header and the segments contain attributes which are specific keywords for the song and provide a single instruction to the Arranger. In the example above, we have seen some of these attributes e.g. the tempo which instructs the tempo to be set. Most of the attributes can be set to either the song header or to each segment. If for example the tempo is set at the song header, there is no need to be set to the segments. The song will have the same tempo as this has been defined in the song header. But, you may wish to have a different tempo in some parts of the song in which case you declare the tempo in the segments. ☛ The following attributes are supported:

- title Restricted to the song header and at the moment it does nothing. It can be omitted, but it may have some use in the future.
- tempo Sets the tempo of the song or the segment. It optional and if omitted, the tempo will be set from the tempo of the style. The value should be a number in range 32-288.
- transposition Sets the transposition to the song or the segment. It optional and if omitted, there will be no transposition. The value should be +number for transposition up or -number for transposition down, e.g +2.
- key Sets the Key Note to the song or the segment. It optional and if omitted, the default key note will be used. The value should a note e.g. "A".
- count Restricted to the song header and it is optional. The value should be a positive number. If set, then before the song starts a metronome will count the number that has been set as beats.
- style Sets the style to the the song or the segment. It is mandatory to exist in the song header or to the segments. The value is the relative in the Styles Directory path of the style, separated with comma with the style section name inside brackets, i.e. [relative_style_path, style_section_name].
- segments Restricted to the song header and it is mandatory. Describes the list of segments to be played. The value should be a list with pre-defined segments e.g. [segment1, segment2, segment3]"
- chords Restricted to the segments and it is mandatory. Describes the list of chords to be played. The value should be a list with chords that include their beat value inside the parenthesis i.e. [Am(4), E(2), G(1), A(1)]. If the chord lasts less than a beat, you may add a fraction instead of a number. For example an eighth chord would be written as Am(1/8)

#### A Complete Song

Now that the song attributes and the basic syntax have been explained, let's examine and explain in detail a complete and well-known song, the Hotel California song.

- Anything after a # character is simply ignored. It is formatted with a green colour and just explains the song parts quickly.
- We have set the key to B as this is in fact the song key and it will result the CTA to perform better.
- We have set the transposition to +2. This way, we will define the chords to Am scale but in the end the song will be played in +2, i.e. Bm
- We have set the same tempo to 78bmp. The song has indeed the same tempo.
- We have set a counter to 4. A metronome will count 4 beats before the song starts playing.
- We have define 3 segments which we use with the order that must be played in the song header. Mind that YAML does not get affected by new lines, which gives us the flexibility to place the segments in the song header in different lines in order to make it easier for the eye to read. The intro chords sequence is the same with the verse chords sequence so we are using the same segment for the intro and the verse part of the song. Additionally, the verse segment actually defines half verse of the actual song. That is because in the specific song, the chords in the verse part of the song are repeated. As such to play the verse part of the song, we put the verse segment twice each time.
- We are using the same style in the song, i.e. \16beat\A.Baland. But we use a different style section for the verse and the chorus, i.e. Verse style section for the verse segment and Chorus style section for the chorus segment.

#### Toolbar

By hovering the mouse over the toolbar buttons, you will get a tooltip of what each of this does.

- Save: Saves your current progress. Giglad does not save automatically so it is strongly advised to save your song often.
- Undo: Undo your last action.
- Redo: Redo your last action.
- Validate: Validates the syntax and reports the errors (if any) to the Output Window.
- Play: Allows you to select an individual segment to be played or the whole song to be played.
- Start Playing: Starts playing the song.
- Stop Playing: Stops playing the song.

## Memory Pool

Memory pool is an advanced feature of Giglad and the main idea behind this, is to keep virtual instruments in memory(RAM) in order to eliminate the time required to load and set them up while loading a style, a preset or a program. Memory Pool is for plug-ins only and not for soundfonts as the way the soundfonts are implemented in Giglad, already make the loading time trivial.

When a plug-in is required for usage in Giglad (e.g. loading a style, loading a preset, loading a program), 2 main steps are involved which take most of the time for this process to complete:

- Loading the plug-in to memory: This is the time needed from O/S to load an external dll (dylib) at runtime in Giglad application and the initialization time.
- Set plug-in state: This is the time required by the plug-in to restore each of its parameters in order for this to be sound as it was saved

These times, especially the first one, are no trivial and when loading a style which contains many plug-ins, it could take some time until the style is actually ready for use. By using the memory pool efficiently you can significantly reduce the loading times and in cases to literally nullify them.

There are 2 types of memory pools in giglad, each to be used differently and for a different purpose. Adding instruments in any of these pools will cause the loading time of Giglad at start up to be increased as it will then load these instruments but of course it will make things faster later when you actually need to use the instruments. We will explain first the Exclusive Memory Pool as it is easier to understand and because its usage with our native sound library is a must in order to load your styles almost instantly.

#### Memory Pool (Exclusive)

The Exclusive memory pool successfully eliminates the loading time which is in fact the most significant. However, the time required to set the plug-in state is still present, although may not considerable depending on the plug-in.

In order to add a plug-in in the exclusive memory pool, select the corresponding tab "Exclusive" from the "Memory Pool" tab, click on the Add button and select the plug-in of your choice. After a plug-in has been added, its corresponding "Instances" column will display 1. You may change this to a different number depending on the number of instances that you wish to always be in the memory for this type of plug-in. In order to remove a plug-in from the memory pool select it by single clicking on the row that contains it and press the Remove button.

A good example of usage for the exclusive memory pool is our native sound library. This library is in fact a VST3 plug-in which is installed along with Giglad so it will already exist in your system and can be selected here via VST3→DMXSampler. As shown in the image above, I have selected our native sound library plug-in and I have created 20 instances to always exist in the memory pool. I am now done and I can exit the memory pool. What happens now?

Every time Giglad needs to use this type of plug-in (for example if you select a Dynamix Audio program in the melody, or you load a style which contains multiple of these instruments, or a Yamaha style which by default will be populated with instruments of this plug-in) the software will first see if there is an available one in the memory pool. If this is the case, it will reserve it and apply the required state (e.g to make is sound like a piano) instead of creating a new instance from scratch. When it is not required any more (for example the style that is using it has been unloaded) it will release it from the memory pool so it becomes available for the next time something else needs it. So what I did, instead of creating new plug-in instances over and over again, I have created 20 instances that will be used and re-used from anything that needs them.

If there is no available instance in the exclusive memory pool, the software will create a new one as it would normally do. It will not add it to the memory pool but it will remove it as it will normally do for any other plug-in. So a good question here is how many instances one should create for the memory pool to actually be efficient. Lets say that most of your styles have max 8 tracks which are using this plug-in. And you also usually use 2 of this plug-in in your melody. So you need 10 instances. In that case you must put 10 x 2 = 20 instances in the memory pool. Why? When you wish to switch a style, the new style will be loaded before the previous gets unloaded. Otherwise the audio would stop and this is not what we want. So there is a small period of time, the transition period where 2 styles need 8 number of plug-ins. And if you are switching presets then add the 2 of your melody in this equation. As such you must always create double the number of plug-ins you are planning to use, in order to include the transition.

As said already, our native sounds library works pretty well with the exclusive memory pool. And if you are most working with it, you should create 20-24 instances in the memory pool which will make your styles to change almost instantly. However, the exclusive memory pool is generic and you may use it with other plug-ins that you are using frequently. For example you can place 2 instances of your drums that you are most using in your styles. But specifically for your drums it may be more efficient to use the Shared Memory Pool.

#### Memory Pool (Shared)

The Shared memory pool successfully eliminates the loading time similar to the exclusive memory pool but it also eliminates the time required to set the plug-in state. In that sense, it is faster but it comes with the limitation that you cannot change the plug-in' state. This is not always a problem. It does not work as the exclusive memory pool, i.e. reserving instruments and freeing them. Instead, the instruments in this memory pool can be used simultaneously, i.e. shared (hence the name). For drums for example you would create 1 instance of the drums plug-in in the shared memory pool instead of 2 that you would need in the exclusive one.

The Shared memory pool serves another purpose:

- To efficiently use plug-ins which can send different instruments to different audio channels: Some VST/VST3 plug-ins support multiple midi inputs and multiple audio outputs and they can send different instruments to different audio channels. An example of such a plug-in is Kontakt. In such cases, it is much more efficient in terms of audio processing to use only one instance of this plug-in in multiple tracks instead of creating a new instance of the plug-in for each track.

In order to add a plug-in in the memory pool, click on the Add button and select the one of your choice. The plug-in's window will pop up from where you can change its state. You can change this state anytime you want from this window but your style and presets will not be able to do this when loading. In order to remove a plug-in from the memory pool select it by single clicking on the row that contains it and press the Remove button. By double clicking anywhere in the plug-in's row but the "Tag" and the "Condition", the plug-ins window will pop up again to allow you further editing.

After the virtual instrument has been placed in the table you should double click on the Tag cell and give a unique identifier for your entry. This identifier is crucial and it is used in the tracks to select an instrument from the memory pool but more importantly it is saved in the style file and in the presets. Wisely set it and do not change it after you have used it in a style or in a preset as the latest will fail to load the instrument. Additionally, any changes you make to the plug-in's state are going to affect every file that is using it. For example let's assume you have added a synth that sounds like a piano and set the tag as "myTag". You are creating a style that is using this in one of its tracks. Later on you change the synth and you leave the tag "myTag" but you make it sound like a guitar. If you load your style, the track will play the guitar instead of the piano. This can be good and bad so use it as appropriate.

You can also select for a plug-in to be "Instance always alive" or "Instance alive when needed". When an instance is always alive, it is loaded in the memory when the program starts. In the image above, because I am using these drums in almost every style, I have set "Instance always alive" to have them always in memory and do not waste time loading them. When an instance is alive when needed it is going to be created when a style or a melody track requests to use it. "Instance always alive" will be in most cases what you want to do.

When a plug-in is added, a route entry will be added named as "Main" with the default configuration routing. You may add more routes by clicking on the Add button and name them as you wish. If a plug-in in the memory pool does not support multiple instruments then its pointless and probably wrong to add more than one route. But for a plug-in that does support multiple instruments (e.g. Kontakt), this is how you can achieve to use only one instance of this plug-in in multiple tracks. In order to setup this correctly you need first to set up different instruments on different midi channels and in different audio channels in the plug-in (See for example the Kontakt below). Then you must correspond the instruments of the plug-in with the routes in Giglad.

If everything has been setup correctly, you should be able to select the corresponding route from the memory pool in the track as shown below and listen at the correct sounds. Notice that the DrumKit does not have a sub menu. That is because there is only the Main route available.

Always use your midi input controller or the virtual keyboard displayed in the memory pool when setting up the memory pool and avoid using the keyboard of the plug-in as it will mislead you on what is sent where.

## Tracks

Clicking on the arrow button in the Arranger Mixer will popup the track window, from where you can access additional features to set up each track. In the Style Editor these windows are always visible at the left part of the main window. Each track has multiple tabs from where you can access the different track features. The name of each track is displayed at the top and can be changed by entering your cursor inside it. In the Style Editor, at the top right corner, there is a "program" icon button which can be used to save the current state of the track as a Program and a "remove" icon button which will remove the corresponding track from the style.

#### Input (Instrument)

(Available for Melody and Style tracks)

In this window, you can select a virtual instrument for your track and setup its volume, pan, solo and mute attributes.

- Select Instrument: The arranger user interface provides an easier way to select an instrument but this is still a valid way to select an instrument. To select an instrument click on the arrow button, where (Select Instrument) is displayed and select a VST, a VST3, a soundfont or an instrument from your Memory Pool. if you are in the Style Editor, you can optionally choose an instrument from your style's memory pool referred as Memory Pools (S). Furthermore you can apply an instrument by drag and drop the corresponding file from the Instruments Browser into this field. The plug-ins are categorized by their manufacturer to save some space. The list will be empty if no plug-ins are available in Giglad. Ensure that you have plug-ins installed in your system and that you have defined the plug-ins search directories in the settings. If the list is still empty, try doing a full re-scan from the Tools→Plugins→Re-scan. When you select the instrument, the plug-in's window will pop up from where you can change the plug-in settings. If you wish to remove an instrument from your track, click on the same arrow button and select Remove from the corresponding menu. In order to access the plug-in's window and change its settings just click on the plug-in name inside the field or click on the same arrow button and select Edit.... You can also set the midi output channel which the track will use to send the midi messages to the plug-in and the audio inputs channels from witch the track will receive the audio from the plug-in. These settings are for advanced users and unless you know what you are doing, it is advised to leave them as they are.

- Volume: To increase/decrease the volume on a track, use the slider. The volume is indicated in decibels(db). By double clicking on the slider the volume will be set to 0db.
- Pan: To change the pan, use the corresponding knob.
- Mute: You can mute a track by clicking on the [M] button.
- Solo: You can make a track solo by clicking on the [S] button. When a track is solo, it will be the only one producing audio in its group. For example, if a track has been set as solo in the melody group, then only this track will produce audio in the melody group but other groups such as the style group or the physical group will not be affected. You can have multiple solo tracks by Ctrl + Click the solo button.

When selecting an instrument for your track you should be able to play and listen sound by using your midi controller or the virtual keyboard (if you are at the Arranger). If you cannot listen any sound coming out from your speakers then: ☛ Double check your hardware connections. ☛ If the LED's on the track and the mixer are not moving check your audio device settings. ☛ If while playing, the corresponding notes do not get highlighted in the keyboard ensure that your hardware midi keyboard controller has been set and selected in the settings. ☛ Ensure that you are playing at the midi keyboard controller range which corresponds to the range of the track.

The Style Editor tracks also have an arrow button from which provides additional functionality.

- Midi Events Received: Will pop a window from which you can override the midi events received by this track. By default "Inherits Style" will be selected which means that the track will receive the midi events as these have been defined in Style Settings. However, you may choose to override the style and have different settings of this for each track
- Add Variation Will add a variation track. See variations on Style editor to learn more.
- Move Before/Move After Allows you to reposition your track.
- Source Channel This is the channel that the midi events (exist on this track) are using. If you change the source channel, all the midi events in this track will be updated to use the new selected channel. Although this option will not make much difference when creating a style from scratch and using virtual instruments, it is generally a good tactic to ensure that there is no channel conflict and that drums are playing on channel 10 for midi protocol compatibility.

#### Input (Physical)

(Available for Physical tracks only)

In this window, you can select to include an external audio source in Giglad. In order to do so, you must first select to open one or more audio input channels from the audio settings.

- Select Input Channel(s): Click on the arrow button, where (Select input channel(s) is displayed and select a single channel (mono) or two channels (stereo) which will be the audio source that you wish to bring into Giglad. If you wish to remove an audio source from your track, click on the same arrow button and select Clear from the corresponding menu.

For the other attributes (volume, pan, sole, mute) please see instruments.

#### Midi

(Available for Melody tracks only)

In this window, you can setup further your midi controller with the specific track.

- Select Midi Input Device: By default, each track will receive input from your main midi keyboard controller (i.e. the midi controller which has been enabled with the role "Main"). But if you have more than one midi controllers which you have assigned them with the role "Aux" then you can instruct the track to receive input from a different midi controller. This feature allows you for example to have multiple keyboards and have assigned one track to each one of them which will end up for you to being able to play a different virtual instrument on each of your midi keyboard controllers. Mind that if you select "Main Device" then the track will always receives the input from the main device which means that if you change your "Main" from settings, the track will adapt. But if you select the name of your device, then the track will always use this device. If the device is not found, because for example you forgot to turn it on when starting Giglad, it will be in red and the track will play nothing.
- Select Midi Input Channel: By default, this is set to "all" which means that on whatever midi channel the midi device sends the data, the track will receive the data and send them to the corresponding virtual instrument. But you can optionally filter to only receive midi data from a specific midi channel.
- Select Range: You can select the range from where the input will be received. By default, the Right Hand tracks have the "Melody" Range set and the Left Hand tracks have the "Chords" range set (The chords and melody ranges are defined by the splitter on the top of the virtual keyboard). When you play something in your midi controller, notes that do not belong to the specified range will be ignored. You may also define a custom range. This feature gives great flexibility as you can use one midi controller in order to play different virtual instruments in each range.
- Select Velocity By default the "Dynamic" options is set (Velocity D) which means that the velocity of the midi notes that are played for this track will be determined by the midi controller. You may select the "Fixed" option to override this value as it comes from the midi controller and always apply the same velocity value (0-127). Finally, you may select the boost option to increase or decrease this value as it comes from the midi controller by the giving percentage. For example if you have applied boost +10% and you play a midi note with velocity = 100, the software will apply a velocity 100 + 0.1 * 127 = 113.
- Select Octave You can select the octave in which this track will eventually output. If for example your play C1 in your midi keyboard controller and this setting is +1, then you will eventually listen C2.

#### CTA

(Available for Style tracks only)

In this window, you can define the attributes which will transpose the midi note events of the track for each chord you are playing.

The attributes of this window are explained in detail in the Style Editor Chord Transposition Algorithm (CTA) section.

#### Fx Insert

(Available for Melody, Physical and Style tracks)

In this window, you can add one or more VST/VST3 effects in your track.

- Add Effect: Clicking on the Add button will pop up a menu with the available VST/VST3 effects. The plug-ins are categorized by their manufacturer to save some space. The list will be empty if no plug-ins are available in Giglad. Ensure that you have plug-ins installed in your system and that you have defined the plug-ins search directories in the settings.
- Remove Effect: Clicking on the Remove button will remove the selected effect.
- Up/Down Arrow buttons: Using the Arrow buttons you can change the order of the effects. The effects in Giglad are serial processed and as such the order matters.
- Double left clicking on a plug-in will display its window.
- Right clicking on a plug-in will pop-up a menu with additional options. Using this menu, you can insert a plug-in in between of existing plug-ins. You can also choose to bypass a specific plug-in in which case there will be no audio processing.

Use insert effects with caution as they require additional processing power from your system. Always prefer send effects for these that support it (reverb, chorus, delay, etc).

Giglad does not compensate plug-in's latency as it would make it impossible to perform in real time. You will not be able to use VST/VST3 plug-ins which introduce latency and if you try to add one, you will get the appropriate message.

Although as above mentioned Giglad cannot compensate plug-in's latency, it is possible to force Giglad to accept a plug-in which has latency. This is not recommended and the sound will not be accurate but if the latency is too small. it may make no difference. Enable it at your own risk: Use the Input Command in the log window and type set -lib::plugins_latency_neglect 1.

#### Fx Send

(Available for Melody, Physical and Style tracks)

In this window, you can send the track audio to other effects. Use the knobs to send the required signal for each type of effect. The processing power required for send effects is trivial especially compared with insert effects so make it a habit to use them if possible instead of inserts.

Clicking on the corresponding name of the effect (e.g. Reverb 1) will pop-up the first available plug-in in the Returns chain. Mind that any change you do in this window will affect all the tracks which send to Reverb 1 for example.

The Return effects are by default in house implemented effects (mainly JUCE implementation) but you can replace these with your own plug-ins or even have a chain of multiple plug-ins. Click on a return track arrow and specify your plug-ins as you wish. Generally, this is only advised for experienced users. If you change any of the global effects (even if you change the native effects parameters) you must save them as a preset and then you must load this preset in order for these to be applied (Mind that you can create your own startup preset, see Arranger settings). For a style, if you have chosen to add the 4 additional returns, your changes will be saved within a style.

## DMXSampler

DMXSampler is a VST3 plug-in implemented by Dynamix Audio and based on HISE. It is the official sample player made exclusively for Giglad.

Through the use of Giglad programs, DMXSampler plays the official Giglad sound library made by Dynamix Audio. DMXSampler has two modes: Voice and Drums. Each mode has its own interface design, and unique set of settings specifically tailored to meet the most demanding tasks in sample reproduction. If you are an advanced user and you have sampling experience, you may tweak any of the parameters to achieve the sound of your preference and then save your changes as your own Giglad Program.

Although DMXSampler is a VST3 plugin, it is only possible to use it only within Giglad and with Giglad Programs.

#### Voice Mode

Voice Mode has 4 layers, with each layer containing one multisample. For example, the Grand Piano voice is made with 3 layers: TONE, HAMMER NOISE, and STRING RESONANCE. The TONE layer is played when the key is pressed and midi NOTE ON information is received, while the other two layers are triggered when the key is released and midi NOTE OFF information is received. Layers are used to achieve many different things, from extreme realism like in this example with the Grand Piano, to some creative usage cases when different multisamples are used to achieve some interesting new voices. Each layer has different colour (red, green, blue, yellow), and each layer has its own AMP and FILTER Envelopes, LFO, PITCH, VELOCITY AMP and FILTER modulators, also trigger settings and shaping. Not all sections of the interface are marked with layer colours, the effects section, like EQ and Compressor, also the output section are always marked with gray colour, which means that they are shared between all the layers as they are placed further down in the signal chain, therefore those sections affect the whole voice.

#### Drums Mode

Drum Mode is different in its appearance as it has 6 independent sections for 6 drum families: KICKS, SNARES, HI-HATS, TOMS, CYMBALS, PERCUSSION. Drum Mode also has two settings pages for each drum family, one with sound settings, the other with the EQ and Compressor settings. Sound settings interface has a separate volume, AMP and FILTER envelopes, analog tape simulation effect, tune, and reverb amount for each drum family. The EQ and Compressor page also has independent settings for each drum family. Low and high bands of the equaliser have a fixed shelf curve, while the parametric mid band has a bell curve with the adjustable Q factor. Compressor has full controls setup with Attack and Release being controlled by vertical sliders, and threshold, ratio, and gain compensation being controlled with circular sliders. Drum Mode also features the reverb effect. It is also possible to add the reverb in the mixer, however in this case the same amount of reverb is added to the complete drum kit, which is not the best practice. As not all drum families need the same amount of reverb, for example kick should get much less reverb than snare or toms, the use of this dedicated reverb is advised. Room Size controls how long the reverb tail is, Damping affects the low pass filter and how long the tail is for the high frequencies, Stereo Width reduces or increases the stereo width of the reverb, and Reverb control is actually a reverb output volume.

## Auxilary Window

The auxiliary window can be accessed via the main menu View→Auxiliary Window.. and implements tools which can be used as helpers or troubleshooting.

#### Log

The log window displays real time information as well as warnings and errors while the software is in use. Any toast message is also included in the log as in fact the toast message displays all warnings, errors and important info messages that end up in the log. If at any moment something does not work as you would expect, you can visit the log window to see if you can get any hint.

- Errors are displayed in red and require your immediate attention.
- Warnings are displayed in yellow and indicate that something goes wrong but you may continue.
- Info is displayed in white and does not require any action.

In the image above: ☛ The Failed to open audio device ASIO: Studio USB ASIO Driver clearly tells me that Giglad has failed to use the audio device which I have selected from the settings. Without an audio device there will be no clock, there will be no sound coming out. ☛ The Cannot start playing without a style or song has been set was reported when I clicked on the Play button without having set a style to the Arranger. ☛ The Failed to use virtual instrument from memory pool "DrumKit": It is not included in the plug-ins memory pool was reported when I loaded a style. The style was loaded but I got a warning which simply tells me that I am using a virtual instrument in my style from the memory pool which cannot be found. Right clicking on the output window will pop up a menu from where you can:

- Copy the whole or partial output
- Clear the output.
- Input Command: This will place an input text window at the bottom of this window where you can type commands similar to the command line of Windows or MAC terminal. The available commands are not documented and this feature is there for advanced users or to be used with our support team guidance

#### Performance

Giglad is using real time audio processing and as such, the audio engine is constantly processing audio even when you listen no sound. The performance window provides information regarding the performance of the audio engine of Giglad and the plug-ins. What you will be most interested, is to ensure that the indication of the Audio Engine is not anywhere near 100% (This is also displayed in the Arranger Console panel).If this indication goes above 100% you will be listening sound glitches coming out from your speakers. When this happens you must release the load by trying the following

- Increasing the buffer size in Audio Settings.
- Reducing the sampling rate in Audio Settings.
- Increasing the number of threads in Audio Settings.
- Removing plug-ins (i.e. virtual instruments) from your style or melody tracks.

The performance window also allows you to easily identify the plug-ins that requires more resources than others. In the picture above for example, it is concluded that the virtual instruments which are used for the Piano and the Background are taking the most of the system resources. It should be noted that the indication of the masters (e.g. Style) is not the summary of the slaves. For example if a style contains two tracks with virtual instruments, with the indication of the first being 5% and the indication of the second being 15% it will not result by any means the indication of the style to be 20%. The indication of the style shows only the time needed to mix the two virtual instruments and this is always trivial.

#### Properties

The properties window is meant to display information on a selected object. Currently this is only implemented for the Style Editor where you can select a track, a section or midi events to see internal data.

#### Midi Events

You may select a single track in your mixer and watch the midi events that this receives from its corresponding menu "Watch Midi Events". If a track is being watched you will then be able to see the messages in this window. Notes will be shown in the virtual keyboard while any other controller messages will be displayed as text. This can be useful when creating a style and trying to understand what notes the arranger actually plays when you play different chords.

## Third Party

#### Third Party Libs

- JUCE Framework
- ASIO Interface Technology by Steinberg Media Technologies GmbH
- VST Plugin Technology by Steinberg Media Technologies GmbH
- Dynamix Audio
- FluidSynth
- yaml-cpp
- Crypto++ by Wei Dai

#### Third Party Icons

- Style icon by Alice Design from the Noun Project
- Program icon by Paul Verhulst from the Noun Project
- Preset icon by Gregor Cresnar from the Noun Project
- Song icon by Roberto Chiaveri from the Noun Project
- Recording icon by angelina from the Noun Project
- Fade In/Out by Arena from the Noun Project
- Reset by Rainbow Designs from the Noun Project
- Lock/Unlock by Julynn B. from the Noun Project
- Zero by Rflor from the Noun Project
- Undo-Redo icons by Freepik from www.flaticon.com
- Metronome icon by Freepik from www.flaticon.com
- Settings icon by Freepik from www.flaticon.com
- Note icon by Freepik from www.flaticon.com
- Zoom icon by Freepik from www.flaticon.com
- Record icon by Google from www.flaticon.com
- Snap icon by Google from www.flaticon.com
- Validation icon by SKETCH ICON from the Noun Project