Skip to content

2. Project Structure

mat1jaczyyy edited this page Mar 4, 2024 · 35 revisions

This page introduces the essential concepts of Apollo Studio. We advise you to read this chapter early in your Apollo career, as a solid understanding of the program's basic principles will help you fully make use of Apollo's potential for your lightshows.

Projects and Tracks

The type of file that you create and work on in Apollo Studio is called an Apollo Project (.approj). These can be opened either directly (on Windows only) or via the Splash screen's Open Project button. All external material used in the project is stored directly inside of the project file, so there's no need to maintain a specific folder structure. In the same folder as the project, backup and autosave files can spawn in the "Project Name Backups" folder.

Apollo Project file

Projects contain a list of tracks which host your effects. The main parameters that can be modified project-wide are the BPM and Macros. The BPM or tempo will affect time measures for devices that utilize them. Macros hold custom user values which are Project-wide, can be changed and checked for dynamically while playing the project. They're most commonly used for changing the mapping of button presses to effects on the fly (usually called "Pages"). Additionally, projects contain information about usage (work time and project start date) and the author of the project.

Project window

Tracks contain a main chain of devices and manage the flow of signals. Their characteristics are an optional name and a target Launchpad which will be used for button input and light effect output. When a track is double-clicked the track window for the desired track is displayed, exposing the devices it contains. They can be exported independently to an Apollo Track (.aptrk) file.

Apollo Track file

At the top of the project window, there are a few additional buttons alongside the Preferences gear.

  • The Pin button represents the Always on Top setting in the Preferences. You'll find it on most Apollo windows for easily toggling the setting while changing workspaces.
  • The Save Project button (in the shape of a floppy disk, CTRL+S(PC) or CMD+S(Mac)) saves the project if it doesn't match the state of the file on disk. It can be right-clicked to access Save as (CTRL+SHIFT+S(PC) or CMD+SHIFT+S(Mac)) and Save a copy functionality.
  • The Undo and Redo buttons (in the shape of curved arrows, CTRL+Z(PC) or CMD+Z(Mac) for undo and CTRL+Y/CTRL+SHIFT+Z(PC) or CMD+Y/CMD+SHIFT+Z(Mac) for redo) will undo or redo actions you've done to the project, respectively. You can right-click either of those to access the Undo history window, which gives you an overview of all the changes you've made to your project, allowing you to jump back to any point in time.
  • The Clear button (in the shape of a brush, CTRL+F(PC) or CMD+F(Mac)) clears all Launchpads and stops all processing. Holding SHIFT while triggering this will force clear all Launchpads instead, in cases where some light is stuck.

The project itself can be closed altogether regardless of other open windows by holding down CTRL(PC) or CMD(Mac) while closing the window, or using the shortcut CTRL+SHIFT+W(PC) or CMD+SHIFT+W(Mac).

Launchpads

Apollo Studio abstracts the actual MIDI input and output ports away into a concept simply called a Launchpad.

Supported devices are:

  • Novation Launchpad MK2, stock Pro and custom Pro units running recent firmware builds;
  • Novation Launchpad X, Mini MK3 and Pro MK3;
  • 203 Electronics Matrix, Matrix Pro, and Matrix Founder Edition.

Novation device users are recommended to use the Fast LED firmware modification.

Track Launchpads

When a Launchpad is connected the type of Launchpad is immediately recognized, which allows light effect output to adapt to different models seamlessly. Only MIDI ports that are actual Launchpads will be displayed as available Launchpads. Additionally, it is possible to override the input format (Drum Rack or XY Layout) as well as the physical rotation of the Launchpad in the Preferences window.

Launchpad Configuration

Virtual Launchpads can be added by pressing the + button in the Launchpad Configuration section of the Preferences window. These display as a separate window, and can be fed inputs to by clicking buttons and can render light effects by receiving track output. The same pop-out window can be accessed for physical Launchpads as well by clicking the gray pop-out button next to their name. In the top-left corner, you can use the brush icon to clear all Launchpads and stop processing light effects, similarly to the Project window. A Virtual Launchpad can be locked in the Preferences, which means it'll be recreated on next startup and won't disconnect when its window closes.

Launchpad pop-out window

Chains and Devices

Devices are found inside chains and serve for processing signals. There are many different kinds of devices, but they all receive a signal from the left, process it in their own way, and send it to the right. Similarly to tracks, these can also be exported independently to Apollo Chain (.apchn) and Apollo Device (.apdev) files.

Apollo Chain and Device files

Consider a button press from the Launchpad in the form of a signal entering the track's main chain. The input is fed into the track's device chain, starting from the leftmost device. This device processes (changes) the signal and feeds the result into the next device, and so on. The number of devices per track is theoretically unlimited. In practice, the computer's processor speed imposes a limit on the number of devices you can use at the same time. When the signal has fully passed through the device chain, it exits to the Launchpad in the form of a light effect.

Device in a chain

Signals

Instead of using MIDI notes, devices communicate using signals. Signals store information about the button position, color in full RGB, layer, current macros, blending mode, and more. All this information is simply impossible to store in a pure MIDI note. Because the layout Apollo uses for processing is the XY Layout, there is no weird vertical gap across the middle of the Launchpad, which makes the grid feel natural and easy to work with.

When receiving input from the Launchpad, the MIDI note is converted into a signal. The position is then converted to XY Layout coordinates, and the color of the signal is always white with the brightness depending on the velocity of the underlying MIDI note. When outputting to the Launchpad, the signals on multiple layers are rendered into a single signal and sent out to the Launchpad as an RGB SysEx message.

Signal indicators

Travelling signals can be visualized with small dot indicators between devices and on chains. These come at a slight performance cost, and while they are useful to have while creating a project, for the final performance they should be disabled in the Appearance section of the Preferences.