Gordius TinyBox User manual

THE TINYBOX
User Manual v.1.4

1
Contents
Introduction: what is the TinyBox ? ....................................................................................................... 4
1. An FCB1010 “booster” ................................................................................................................. 4
2. A MIDI-USB interface ................................................................................................................... 5
3. A MIDI filter/router ..................................................................................................................... 5
4. A wireless status display on iPad or tablet .................................................................................. 5
5. A MIDI touch controller ............................................................................................................... 5
6. A setlist manager, lyrics display, sheet music app ...................................................................... 5
The TinyBox hardware ............................................................................................................................ 6
Getting started ........................................................................................................................................ 8
1. Make sure the FCB1010 can connect to the TinyBox .................................................................. 8
2. Turn the FCB1010 into a TinyBox slave ....................................................................................... 8
3. Install TinyBox ControlCenter ...................................................................................................... 8
4. Make all connections ................................................................................................................... 8
5. Launch TinyBox ControlCenter .................................................................................................... 8
Using a computer with the TinyBox ....................................................................................................... 9
The TinyBox ControlCenter software ................................................................................................... 10
Launching TinyBox ControlCenter ..................................................................................................... 10
Displaying TinyBox status info on the laptop .................................................................................... 13
Using the TinyBox editor ................................................................................................................... 14
Managing setlists, song lyrics and music scores................................................................................ 15
Monitoring the TinyBox MIDI messages ........................................................................................... 19
Upgrading the TinyBox firmware ...................................................................................................... 20
Programming the TinyBox .................................................................................................................... 21
The TinyBox setup structure ............................................................................................................. 22
Example 1 : structure of a typical TinyBox setup .............................................................................. 23
Example 2 : sending MIDI messages ................................................................................................. 25
Example 3 : programming expression pedals .................................................................................... 26
Example 4 : using variables ............................................................................................................... 27
Example 5 : using conditional commands ......................................................................................... 28
Example 6 : a programmable MIDI filter ........................................................................................... 29
Example 7 : a programmable MIDI router......................................................................................... 30
The TinyBox programming language ................................................................................................... 31
0. Comments ................................................................................................................................. 31
1. Defining preset, effect, trigger and sweep names .................................................................... 32

2
2. Defining the bank structure ...................................................................................................... 35
3. Defining songs and setlist .......................................................................................................... 38
4. Defining preset contents ........................................................................................................... 39
4.1. Defining MIDI channels ......................................................................................................... 40
4.2. Defining data variables .......................................................................................................... 41
4.3. Defining the TinyBox initial state .......................................................................................... 42
4.4. Defining song or bank initialization ....................................................................................... 42
4.5. Defining the preset contents ................................................................................................. 43
4.6. Defining the effect contents .................................................................................................. 43
4.7. Defining the trigger contents ................................................................................................ 44
4.8. Defining the sweep contents ................................................................................................. 45
5. The command set ...................................................................................................................... 46
5.1. Switch and pedal assignment commands ............................................................................. 47
5.2. Effect activation and relay activation commands ................................................................. 49
5.3. MIDI commands .................................................................................................................... 50
5.4 Continuous Control commands ............................................................................................. 51
5.5. Delay command ..................................................................................................................... 52
5.6. Filter/router commands ........................................................................................................ 52
5.6.1. Filtering certain MIDI message types ................................................................................ 53
5.6.2. Filtering certain MIDI channels ......................................................................................... 53
5.6.3. Routing MIDI channels ...................................................................................................... 54
5.6.4. Filtering or routing MIDI notes .......................................................................................... 54
5.6.5. Filtering or routing MIDI ControlChange messages .......................................................... 55
5.6.6. Resetting the filter/router ................................................................................................. 55
5.7. Variable commands ............................................................................................................... 56
5.8. Conditional commands .......................................................................................................... 57
5.8.1. The condition syntax ......................................................................................................... 58
5.8.2. if…then…else statements .................................................................................................. 59
5.8.3. while statement ................................................................................................................. 60
5.8.4. switch statements ............................................................................................................. 60
5.9. UseKeyboardControl ............................................................................................................. 62
APPENDIX : TinyBox programming language reference ...................................................................... 63
APPENDIX : the Tinybox MIDI routings – a detailed rundown ............................................................ 66
Communication between FCB1010 and TinyBox .............................................................................. 67
Controlling your MIDI enabled hardware ......................................................................................... 69
The MIDI IN to MIDI OUT routing ...................................................................................................... 70

3
MIDI-USB port 1 ................................................................................................................................ 71
MIDI-USB port 2 ................................................................................................................................ 72
A special case : “UseKeyboardControl” ............................................................................................. 73
A special case : troubleshooting ........................................................................................................ 74
APPENDIX : Tinybox latency measurements ....................................................................................... 75
What is latency ? ............................................................................................................................... 75
How does TinyBox keep latency down ? ........................................................................................... 75
The latency measurements : overview ............................................................................................. 76
The latency measurement results ..................................................................................................... 81
1. Comparison TinyBox – MidiSport .......................................................................................... 81
2. TinyBox latency MIDI IN – MIDI OUT ..................................................................................... 84
3. TinyBox latency from virtual FCB1010 trigger to MIDI OUT .................................................. 88
Document versions
Version 1.4 20/08/2020 Support for extra SysCommon and SysRealtime messages added
SwitchOn/SwitchOff commands no longer restricted to be used in
presets only – effect activation infinite loop detection added
Version 1.3 01/07/2020 support for ‘while’ loops added
Version 1.2 05/06/2020 Appendix about latency measurements added
Version 1.1 01/06/2020 Getting started chapter added
MIDI routing appendix added
‘UseKeyboardControl’ and ‘ModifyVelocity’ commands added
Version 1.0 18/05/2020 Initial release

4
Introduction: what is the TinyBox ?
As an ideal companion to the Behringer FCB1010, the TinyBox is many things in a tiny black box. It will
take a comprehensive manual to explain all features in detail, but here’s a short overview:
1. An FCB1010 “booster”
By combining your FCB1010 with the TinyBox, you turn it into a very powerful MIDI foot controller.
The box eliminates all the restrictions of the original floorboard:
- a setup can contain up to 200 banks of 10 presets
- each bank can contain any mix of presets, effects (or stomp boxes) and triggers (or momentary
effects)
- each preset can send a virtually unlimited number of MIDI commands on any combination of
MIDI channels
- a preset can send SysEx messages of any complexity
- a preset can start a MIDIClock stream with programmable BPM, and send MIDIStart, MIDIStop
or MIDIContinue messages
- a programmable delay can be added between MIDI messages
- an optional “Direct Bank” switch can give one-click access from all banks to an extra set of 9
commonly used presets
- each expression pedal can send one or multiple ControlChange sweeps, which can be different
for each preset.
- expression pedals can use different sweep curves
- expression pedals can also send PitchBend or ChannelPressure messages
- the use of conditional commands and data variables allows to add complex “if…then…else…”
logic to your setup content
- …
All this comes with very intuitive editor software which makes creating a complex setup as easy as can
be. You can describe your setup as plain text, using a text editor with auto-complete functionality. This
makes sharing your setup with others as easy as copy-and-pasting a piece of text. The setup text is
compiled into binary code prior to sending it to the TinyBox through USB. The software runs on Mac
and Windows.

5
2. A MIDI-USB interface
The TinyBox includes a class-compliant MIDI-USB interface, which means it can be connected to a
Windows or Mac computer without installing any drivers. The box can send MIDI messages both to
hardware connected to its MIDI OUT port and to software running on a computer connected through
USB.
The MIDI-USB interface is also used for reliable transfer of setups to the TinyBox. Gone are the days of
buying and trying different MIDI interfaces to find one which is compatible with the Behringer FCB1010
patch dumps.
3. A MIDI filter/router
MIDI can be sent to the TinyBox and passed through a programmable filter/router. This filter can block
certain MIDI channels, move or copy certain MIDI messages to a different MIDI channel, transpose
MIDI Note messages up or down, adapt note velocity, block certain note ranges or ControlChange
numbers, and so on. This allows you for instance to turn a simple MIDI keyboard into a full fletched
master keyboard with different zones controlling multiple synths simultaneously.
4. A wireless status display on iPad or tablet
Connect the TinyBox to a computer running the included TinyBox ControlCenter, then wirelessly
connect an iPad, Windows or Android tablet to the computer, and you get a wireless FCB1010 status
display! TinyBox ControlCenter acts as a webserver for your tablet. Use the browser to view real time
status of your FCB1010: current bank name, available preset names, stomp box states, and so on. What
a huge difference compared to the small 7-segment display of the FCB1010 – you can now name your
presets and stomp boxes and know what is going on at any time. ControlCenter itself also incorporates
a local status display, so without WIFI you can view the status directly on your laptop too.
5. A MIDI touch controller
The same status display on your iPad can be used as a wireless MIDI controller! You can click any button
on the “virtual” FCB1010 in your browser, and the TinyBox will react as if the footswitch of a “real”
FCB1010 was pressed. This might appeal to keyboard players for instance, who could even leave the
FCB1010 at home and use the virtual iPad version instead!
6. A setlist manager, lyrics display, sheet music app
As a fancy extra, TinyBox ControlCenter comes with a setlist manager which allows you to upload song
texts and/or sheet music. You can scroll through the setlist using the FCB1010 up/down switches, and
the preset bank for each song is activated on the FCB1010 while the corresponding song text or score
is displayed on your laptop or iPad.

6
The TinyBox hardware
1. Power input: connect any power adapter delivering 9V AC or DC, 500mA or more
2. 7-pins MIDI connector for two-way connection with the Behringer FCB1010 1
3. USB connector for connection with a Windows or Mac computer
4. 5-pins MIDI IN connector
5. 5-pins MIDI OUT connector
6. Red power LED
7. Blue USB status LED
Along with the TinyBox comes a dedicated FCB1010 firmware chip, which turns the FCB1010 into a
“TinyBox slave”. Programming the FCB1010 is no longer needed, all configuration is done in the
TinyBox.
1 The 7-pins cable transfers MIDI to and from the FCB1010, along with FCB1010 phantom power. For
plug-and-play compatibility the FCB1010 needs to be equipped with a “Single Cable Kit” (available at
http://shop.tinybox.rocks) which makes the FCB1010 phantom powered and gives it the same 7-pins
MIDI connector for connection with the TinyBox.

7
The illustration below compares the 7-pins connector with regular MIDI IN and MIDI OUT connectors:
Although the TinyBox is designed as an add-on for the Behringer FCB1010, it is also possible to use all
its features even without an FCB1010 connected:
- as mentioned in the introduction an iPad can serve as a “virtual FCB1010” : when clicking the
buttons of the virtual FCB1010 the TinyBox will react in exactly the same way as if a real
FCB1010 was used
- MIDI keyboard players can choose to use the lowest octave of their keyboard as TinyBox
remote control instead of the FCB1010. 12 keys could replace the 12 footswitches of the
FCB1010, and 2 joysticks or knobs could replace the expression pedals. Of course it is also
possible to work with smaller preset banks in your setup and use less keys for remote control
(3 keys could already be sufficient: “bank up” / “bank down” / “select preset”)
In order to use the TinyBox in this way, search for the “UseKeyboardControl” command further
on in this manual.

8
Getting started
These are the first steps to take when you receive your TinyBox
1. Make sure the FCB1010 can connect to the TinyBox
As shown in the previous chapter the TinyBox communicates with the FCB1010 through a 7-pins MIDI
connector. The easiest way to make the FCB1010 compatible with this connector is by installing the
single cable kit ( http://shop.tinybox.rocks/index.php?route=product/product&product_id=50 )
Follow the instructions in the manual included with the kit.
2. Turn the FCB1010 into a TinyBox slave
Your TinyBox order includes a firmware chip for the FCB1010, which turns it into a TinyBox slave. With
this firmware it is no longer necessary to do any programming on the FCB1010 itself. The floorboard
just sends key presses to the TinyBox, and the TinyBox takes control over the FCB1010 display and
LEDs. Instructions for replacing the FCB1010 firmware PROM can be found here :
https://www.fcb1010.eu/downloads/Upgrade%20Manual_FCB1010_Rev_A.pdf
3. Install TinyBox ControlCenter
Download the software from your account page in the TinyBox web shop. Installers both for Mac and
for Windows are available
4. Make all connections
Connect the FCB1010 with the TinyBox using a 7-pins MIDI cable. Connect a power adapter (9V, 500mA
or more, AC or DC) to the TinyBox power jack. Connect a USB cable between TinyBox and computer,
connect a regular MIDI cable from TinyBox to controlled device.
5. Launch TinyBox ControlCenter
Launch TinyBox ControlCenter. Follow the instructions in the next chapters to verify the correct
connection between TinyBox and computer.

9
Using a computer with the TinyBox
In order to program the TinyBox you need to connect it to a computer (Windows PC or Mac) using a
USB cable. The computer runs the TinyBox ControlCenter software. You will find out all details about
this software in the next chapter.
TinyBox ControlCenter not only allows you to program the TinyBox, but it can also communicate with
the TinyBox during live use to request realtime status info: the current bank content, currently selected
preset, activated effects, etc. The TinyBox ControlCenter can act as a lightweight web server, so any
web browser can connect to it and display live status info of the FCB1010 and TinyBox. In the simplest
scenario you can use ControCenter itself to show the status view directly on your laptop, however you
can as well use an iPad or other tablet as “wireless status display”. Of course, for this the device must
have a WIFI connection with your computer. Most nowadays computers have WIFI built in and can
easily be turned into a WIFI access point1. An alternative is to connect through an external WIFI router,
which can be purchased new for around 20 USD.
using laptop as WIFI access point
using an external WIFI router
1 https://www.imore.com/how-turn-your-macs-internet-connection-wifi-hotspot-internet-sharing
1 https://www.windowscentral.com/how-turn-your-windows-10-pc-wireless-hotspot

10
The TinyBox ControlCenter software
This software can be freely downloaded from our web shop. Once you have purchased a TinyBox a
download link will appear on your account page. Installers are available for Windows and Mac.
Like the Tinybox itself also TinyBox ControlCenter is many things in one. It contains
- an editor to create TinyBox setups and send them to the TinyBox through USB
- a setlist manager to upload song texts or scores to be displayed during live use
- a MIDI monitor app to check which MIDI messages the FCB1010 actually sends
- a status window showing currently selected song/bank/preset/activated effects etc…
- a web server hosting the same status window, so that the info can be displayed on a remote
device connected through WIFI
- a TinyBox firmware upgrade tool
Launching TinyBox ControlCenter
After launching the software it shows up as a small MIDI connector icon in the Mac menu bar (in the
upper right corner of the screen) or in the Windows tray area (in the lower right corner of the screen)
ControlCenter on the Mac menu bar ControlCenter on the Windows status bar
Click the icon to access all the different tools or to shut down the application. When you close all tools
a notification will pop up to remind you that the ControlCenter application is still running. Indeed, the
built-in web server will keep running until you explicitly quit the application.

11
As long as no TinyBox is connected to an USB port, some of the menu options will remain disabled.
As soon as a TinyBox is detected on the USB port (you don’t need to install any drivers for that!) all
menu options will be enabled, and you can click the topmost menu item to see the webserver address.
An iPad or other remote device can surf to that address in order to display the current FCB1010 status,
and optionally show song lyrics or scores :
Don’t forget to add “:2000” to the URL as mentioned above. It indicates that the server communicates
on port 2000. This way the default port 80 remains free for regular internet traffic.

12
Remark : a ‘disclaimer’…
Next to the Windows and Mac versions of the software, we have also released a Linux version which
is compatible with Raspberry Pi 3 (and higher). Being a very cost effective solution, the Raspberry Pi is
gaining popularity. It can be a good alternative for bringing an expensive laptop on stage, an
environment which is not always the safest for such gear. The low cost of a Raspberry Pi allows to
always have second device available as backup.
Please be aware that the Linux version of the software is experimental, and not officially supported !
We do our best to keep the software source code as platform independent as possible, which allows
us to release versions not only for the 2 main operating systems, but also for the Raspberry Pi.
However, being a community driven project, the RasPi ecosystem is constantly moving forward and
changing, and it is not feasible to guarantee constant compatibility of our software with this dynamic
environment. We will do our best to provide a stable Raspberry Pi release, but its update frequency
might be lower than for the 2 main operating systems.

13
Wireless TinyBox status display and remote control
When an iPad or other tablet is wirelessly connected to your laptop you can open a browser and surf
to the address mentioned before. This will open following page :
This page gives you a representation of your FCB1010, showing detailed info about its current status:
- currently selected bank number and bank name
- currently selected preset
- active stomp boxes or effects
- available presets, stomp boxes and triggers in the current bank
Next to showing you the current status, this screen can also be used as an actual remote control for
the TinyBox. You can use it as a “virtual FCB1010” which can even replace the real FCB1010. Keyboard
players for instance might prefer using the iPad in front of them instead of a floorboard.
Whenever you touch the screen to select a preset, activate an effect, or scroll through banks, not only
the TinyBox will react to these commands, but also a connected FCB1010 will adapt accordingly in
order to remain in sync with the status screen at all time.
Displaying TinyBox status info on the laptop
Ticking the “FCB1010 status window” option in the ControlCenter context menu will open exactly the
same status screen on your laptop. So if on stage you can directly look at your laptop screen, there is
no need for a WIFI connection with another device, and you can monitor the status directly on your
laptop using the ControlCenter status screen.

14
Using the TinyBox editor
In the ControlCenter menu tick the option “Setup editor”. This opens the editor window in which you
can create, edit and manage your TinyBox setups.
The menu options are self-explanatory. They allow you to create, rename and delete setups, save
changes, and download a setup to your TinyBox.
One of the advantages of the TinyBox approach is that its setups are purely text based, so you can very
easily copy-and-paste your setup into an external text file for backup on a stick, for sharing with others
on a forum, etc…
Full details on the actual setup structure and programming syntax are given in a later chapter.

15
Managing setlists, song lyrics and music scores
When ticking the “Setlist manager” option in the TinyBox ControlCenter menu, a tool pops up which
lets you upload song lyrics, tabs or music scores to the built-in web server. These can be text files (.txt)
or image files (.png or .jpg) which you may have created in any text or image editor.
Before opening this tool, make sure that you have specified all songs in your TinyBox setup (see further
chapters for details on creating and editing a TinyBox setup). Then download this setup to your
TinyBox. The setlist manager tool lists all songs which are defined in the setup currently stored in the
TinyBox. For each song you are now able to upload one or multiple files. On the server the files will be
renamed to match the song name, and they are sorted in alphabetical order of their original file name.
If at some point you would rename a song in your TinyBox setup, the setlist manager will no longer be
able to link the uploaded song files to that song. This will be indicated in the setlist, and you will be
able to manually re-link the uploaded files to the renamed song, or you can also remove the files and
upload new ones.

16
For instance, suppose we rename the song “de do do do” in our TinyBox setup to “de do do do de da
da da”. As a result, we will see the following when we open setlist manager :
Songs for which you have uploaded song files to the server, but which are no longer part of your
TinyBox setup, are shown in red at the bottom of the setlist. In our example that’s the case for the
song “de do do do” which we just renamed. Indeed, we now see the renamed song “de do do do de
da da da” in our setlist, with no song files uploaded yet.
We can delete the files for “de do do do”, after which the red entry in the list will disappear, and we
can upload new files for “de do do do de da da da” using the “+” icon next to that song name. But as
the song files probably didn’t change it is easier to just link the uploaded files to the renamed song, by
clicking the “link” icon next to the red song name :

17
After uploading song files in the setlist manager, the FCB1010 representation on the status page will
be shrinked in order to take less space while still showing the same status info, and the song files (lyrics
or music scores) will be displayed under the FCB1010 image :

18
The setlist manager lets you choose to display two images or text files simultaneously next to each
other, or to display one single image or text file at a time. Image files are scaled to take all the available
space, while for text files the used font size will be adapted to fill the available space. If readability of
song lyrics is a problem you can increase the font size by splitting up the text in multiple separate text
files.
When clicking the up or down switches of the FCB1010, you will scroll through all song files for each
song one by one: if you have multiple files for a song, the up/down switches will now scroll to the next
or previous score or lyrics file within the current song, rather than immediately jumping to the next or
previous song.
In “dual file” display, the score files will be scrolled through as follows, if you have 3 files per song:
On the FCB1010, the small green LEDs next to the songnumber display show how many lyrics pages
are still to be shown for the current song. If no LEDs are on, you know that a click on the “Up” button
will proceed to the next song. If one or more LEDs are on, you know that a click on the “Up” button
will not proceed to the next song but will instead proceed to the next lyrics page on the FCB1010 status
display.
The menu LEDs above indicate there are still 4 lyrics pages to go for the current song
When you want to scoll quickly up or down your setlist, you can keep the FCB1010 up or down switch
pressed. When doing so, after a small delay the FCB1010 will start auto-scrolling through the songs of
the setlist without scrolling through all individual songfiles for each of the songs. Fast scrolling will
continue until you release the footswitch, or until you reach the last or first song in your setlist.

19
Monitoring the TinyBox MIDI messages
All MIDI messages programmed in the TinyBox are sent both to the MIDI OUT connector of the TinyBox
and to port 1 of the built-in MIDI-USB interface.
Indeed, when connecting a USB cable between TinyBox and your computer, you will notice that a total
of 3 MIDI In and 3 MIDI Out ports are detected :
Midi Studio on Mac MIDI-OX on Windows
Port 3 is used for transferring TinyBox setups, port 2 is used for getting TinyBox status info and for
remotely controlling the TinyBox from your iPad or laptop. Port 1 is available for your setup, through
this port you can control any music software application with your FCB1010.
Incoming MIDI traffic on port 1 can be monitored with the MIDI monitor tool included in TinyBox
ControlCenter. Click the “MIDI monitor” option in the ControlCenter context menu to open it. Just
make sure you have closed down the other music applications prior to launching the monitor tool, as
the MIDI ports can only be used by 1 application at the same time.
Table of contents