Documentation Wiki rss-feed

An Introduction to Belcanto

The EigenD software system is designed to be fully functional without using a computer screen. In many circumstances, such as rehersal, or if one is sitting or standing behind musical equipment, using a computer screen and mouse is quite acceptable. In others, such as performing center stage in front of a large audience, there is a need to be able to make arbitary changes to the performing environment on the fly without the use of screen or mouse. Eigenlabs have introduced the Belcanto command and control language to enable this. Every element of the EigenD performance system may be controlled or changed using Belcanto in real time. There are a number of very useful features implemented in EigenD that make the Belcanto language extremely useful to the performer, often in circumstances when they do not use the language directly. These include the ability to run scripts written in Belcanto at the tap of a key and the ability to attach multiple sentences in the language to specific keys on an instrument for use during performance. Smart processing in EigenD also allows many of these commands to be evaluated ahead of time, making often complex instructions occur in a short enough time (less than a millisecond for the technical) to be musically useful.

Belcanto is a simple language. It is not a full computer programming language and is designed to be easy to learn for the beginner. Those that have mastered the skill have found it to be a powerful extension to their ability to perform with an Eigenharp.

You do not need to learn Belcanto to play an Eigenharp using the Factory Setups or if you are happy to change and control your system using a computer screen and mouse.

Before you use Belcanto we recommend that you read the Introduction to EigenD

Speaking Belcanto

You can communicate Belcanto commands to agents running in EigenD in one of two ways. Firstly, you can type commands using a computer keyboard by using the Commander, an application that ships with EigenD as standard. The Commander also contains a browsable lexicon of the full Belcanto vocabulary and a staff view. The commander may be found in the 'Tools' menu.

The second and often more useful way is to play the Belcanto commands in on the Eigenharp keyboard. Belcanto words are defined as short sequences of notes on the major scale. Each word is terminated by playing the last note of that word more loudly. For those who wish to begin learning Belcanto, there are factory setups that add a Belcantop Keygroup to some of the splits in our standard setups.

You will see that Belcanto words are often shown as text, a sequence of numbers or a small staff. The numbers represent intervals. For example, the word 'start' might be written as '5 6'. In the key of C this would mean play G followed by a louder A. The small staff views are shown in the key of C, like this:

52 56
metronome start

We advise you to run the Commander at all times to start with as the staff view allows you to see the notes as you play and to tell if you have played the right word in. It also shows you the full dictionary in a scrollable view, which you will definitely need for your first few weeks.

Belcanto sentences always have a verb at the end. This may be something as simple as 'set' if you want to set a value, or something as complex as 'connect'. Verbs may only appear at the end of Belcanto sentences - they are like a full stop and tell the Interpreter to go off and do what you have asked.

Belcanto Conversations and Asides

If you wish to issue a single Belcanto commmand to one Agent, you can do this by using an Aside. You create an Aside by using the Belcanto word 'hey'. It only lasts for the next sentence. If you want to change the scale that sampler 1 is playing to the blues scale, you can do this using an Aside like so:

2135 11 5
sampler 1 hey
135 23 4116 67
scale to blues set

This is the simplest way to issue a Belcanto command. It is however a little longwinded if you wish to make lots of changes to one Agent as you have to keep saying 'hey'. It is also limited to single agents, so it isn't useful if you want to change the scale of all instruments to the blues scale, for example. To make this easier you can use a Conversation. A Conversation defines exactly which Agents listen when you speak your command. There are a number of predefiined conversations and they can be joined by using the Belcanto word 'join'. The most useful to start with are the 'all' conversation and the 'empty' conversation. If you say

63 1181
all join

then from that moment onwards every Agent in your system has joined your conversation and you are (unless you use an aside) simultaneously talking to them all. This is powerful (you could say 'volume down' for example and every volume control in the system will be turned down by on tick) but can also lead to unexpected effects so it is best used with caution. The empty conversation is just that, it has no Agents in at all. It is a good starting point to build your own conversations up.

You can add Agents into a conversation by using the word 'listen', and remove them by saying 'un listen'. So saying:

68 1181
empty join
2135 11 1131
sampler 1 listen
2135 12 1131
sampler 2 listen

has made a conversation that contain just the two samplers, 1 and 2. If you then said

135 23 4153 67
scale to major set

then those two samplers, and nothing else, would change to the major scale. If you then said

2135 11 6 1131
sampler 1 un listen
135 23 4172 67
scale to pentatonic set

then only sampler 2 would change to the pentatonic scale.

You can save handy conversations using any name you like (or make up) in Belcanto. So saying

288 1556 148
conversation remember

would save a conversation with the name '1 5 5 6' containing sampler 2 and nothing else. At any time after you had done that you could say:

1556 1181
join

and you would rejoin that conversation. The default conversation can always be joined by simply saying 'join' on it's own. This conversation contains the Browser and the Metronome in the Factory setups. You can easily customise it by making the conversation you want then saying

288 332 148
conversation default remember

See also