departement muziek & drama

an automated and interactive aeolian cello robot

Godfried-Willem RAES

[Nederlandstalige versie]


The first bowed instrument robot we designed was <Hurdy>, an automated hurdy gurdy, built between 2004 and 2007. The building of that robot had many problems and our attempts to solve these have lead to many new ideas and experiments regarding acoustic sound production from bowed strings. The problems with <Hurdy> were all related to the very complicated controls required for the bowing mechanism: a system with so many degrees of freedom that handling it became far from 'automatic' and the users were left with a very complicated command set in order to make <Hurdy> play the notes he wanted. Bow pressure curve in time, bowing speed, finger pressure, bowing angle all in function of the note to be played and the required dynamic had to be send to the robot. To avoid this we provided the users an alternative way of producing bowed sound from the string: magnetic drive. This worked very well and many aspects of bowing technique in <Hurdy> could be automated in a more user friendly way.

These experiments made us dream of an instrument using twelve strings, in a chromatic arrangement, that would all individually be bowed with our electromagnetic system. So on the drawing table we envisaged an instrument with twelve strings tuned from 36 to 47 and equipped with felt covered solenoid driven dampers. The soundboard could be made from either hardened brass, titanium or Styrofoam mounted in a steel frame. Now one would think the instrument could only play twelve notes, but that's wrong since on each string we can sound the fundamental as well as the entire series of slightly inharmonic partials. In fact the range is extremely extended and covers at least the ambitus of the classical cello. The name of this robot was derived from its working principle, showing some similarity to the aeolian harp, where the strings are struck by the passing wind. <Aeio> lends itself not only as a robotic instrument in the context of our Logos robot orchestra, but can also stand very well on its own as an interactive audio art installation. To render this aspect even more fruitfull, we added a radar sensor and a processing unit for gesture recognition to the robot in 2017.

The basic midi note mapping is:

When the instrument is used monophonically, there are no limitations. However, when you want to play double strings, these can only be played if the requested notes can be produced on two different strings. That's quite the same with all usual bowed string instruments. The driver software will arbitrate for you but there is an obvious possibility that certain chords will not be sounded in full. All strings can be made to sound simultaneously, if required. Vibrato, as common on bowed instruments, as well as glissando playing, is impossible with <aeio>.

A scheme for playing string spectra using midi is to be worked out. Unfortunately, standard midi has no codification for fractional midi notes nor for 'just' intoned intervals. So the best alternative seems to be implementing continuous controllers (say nrs. 36-47) for each string, whereby the parameter value corresponds to the number of the overtone to be sounded. To also control the volume or excitation level of the string, we could implement another series of controllers, say in the range 49-60.

The constructional parts for this robot are all made from welded stainless steel. The instrument is mounted on a wheel base, as most of our music robots.

The circuitry for each one of the string drivers follows the schematic drawing below:

Note that the Mosfets need to be cooled, even though they can withstand up to 41 Amps! A feature around the wiring of the electromagnets in our initial hardware version is that we tried recycling the energy stored in the magnet when switched to re-energize it, instead of just absorbing this energy in the usual diode. This trick only became possible because of using line transformers as electromagnets in this first version. However, many of the modified line transformers burned out through the first experimenting sessions and we replaced most of them with newly wound windings on the same mu-metal cores.
The dampers are controlled by the same PIC microcontroller, a dsPIC30F3010. The dampers are activated on reception of the note off command for the corresponding string. De noteoff-release value controls the time the dampers stay in contact with the string after a note-off. This time interval is interrupted on reception of a new note on request for the same string. By setting controller 64 to %true, the damper mechanism can be disabled for all strings. On startup the mechanism is always enabled.

 All sizes essential to the acoustic design and the practical construction of the <Aeio> robot are given in the very first (distorted) design sketch to the right.  :


The shape of the final design differs quite a bit from these first sketches, but the essential proportions have remained the same.

The strings are driven by the electromagnets in two phases. The signals and their effect on the string can be depicted as: By extending the duration of the B-states the excitation characteristics of the string can be modified to a great extend. The duration of the B phase should never be smaller than the time the string needs to come back to its central position. Thus the duty cycle for the signals can be limited to 25%. In practice the above drawing of the string movement is idealized for pure fundamental resonance. This will only happen at very low excitation levels. When the string excursions become larger due to a larger magnetization force, the spring action of the string has to be taken into acount. This explains the zero-cross of the movement in the B phases as shown in the drawing below:
It will be clear that the waveform thus obtained comes closer to that of a real bowed string, exactly what we were looking after in the design of this robot. The firmware in each of the twelve PIC controllers has two cascaded 16 bit timers. Using the thus obtained 32 bit timer, a period time T can be programmed. For the fundamental of the string, T should be 1/f in real-world time units. Now we state T = ta1 + tb1 + ta2 + tb2. Furthermore we state ta1 + tb1 = ta2 + tb2. For the research version we implemented two separate parameters to controll the duration of ta1 and ta2 indepently but within the constraints given. In the definitive version this should become a single parameter controlling the ratio ta1/ta2. Using this controller, a wide range of influence is gained over the timbre of the produced sound. To make research en development easier, we designed the firmware for the string drivers such that each dsPIC processor responds to its own midi channel, thus using up 12 midi channels. In normal use, the parser microcontroller (a 16 bit PIC, type 24EP128MC202) takes care of string arbitration and the user sends all commands on the <Aeio> channel solely. This is the circuit for the parser board:

Midi implementation and mapping:

  • Midi note range: 36 - 127. Velocity implemented.
  • Notes 24-35: Exciter beaters. Velocity implemented.
  • Note Off commands are required (dampers) . Release value implemented if controller 65 is true and 64 is false.
  • Key pressure: implemented for each string. For the lights, key pressure steers the flashing speed.
  • Controller 7: Master volume controller. Upper limit for the ebow power.
  • Controller 20: global flashing frequency for the lights.
  • Controllers 30-41: bowing symmetry for each string (default = 64)
  • Controller 64, sustain (dampers on or off, 0 = dampers active, >1 = sustain, dampers off)
  • Controller 65: note-off release value enable/disable switch. If note off with release is not used, the value passed with this controller determines the time the dampers will stay on the string after a note off.
  • Controller 66: power on/off switch (e-bow power and lights)
  • Controllers 50-61: set the tuning base for the strings. Users do not have to set these controllers since the firmware sets the correct default to the string tuning.
  • Controllers 70-79: used to set parameters for the radar system. For details, consult the table at the end of this webpage. Controller 79 must be set to >0 to disable the radar. These controllers are only relevant when the midi input is fed to the radar board. If midi is connected to the parserboard, the radar is disabled altogether.
  • Controllers 80-91: adjust the fine tuning for every individual string
  • Controllers 100-111: set the flageolet multiplier value for a string whilst it is sounding a note.
  • Controllers 114-119: set the durations for the embedded compositions 1 - 5, if radar is enabled.
  • Controller 123: all notes off ( also switches off the lights)
  • Program Change: select different frequency lookup tables (default = 2, empirical series)
    • 0 = platonic series
    • 1 = scientific series, after the second degree equation for string overtones
    • 2 = empirical series, after measurement of best resonance
    • 3 = closest possible approximation for equal temperament
    • 16 = selects embedded composition #1 if radar is enabled
    • 17 = selects embedded composition #2
    • 18 = selects embedded composition #3
    • 19 = selects embedded composition #4
    • 20 = selects embedded composition #5
  • Lights: (ON/OFF)
    • Note 1 = blue LED on the parser board
    • Note 2 = bright red LED strip under damper assembly
    • Note 3 = to be mounted
    • Note 4 = to be mounted
    • Note 5 = yellow LED spot, bass side
    • Note 6 = yellow LED spot, trebble side
  • Midi Channel: 1 (counting 0-15)

Technical specifications:

Design and construction: dr.Godfried-Willem Raes (2007-2017)

Collaborators on the construction of this robot:

Specific pieces for <Aeio>'s participation in the musical robot exhibition at the Speelklok Museum in Utrecht, and specific hardware/firmware to run them are to be developped.

Embedded interactive compositions:

Back to Logos-Projects page : projects.html Back to Main Logos page:index.html To Godfried-Willem Raes personal homepage... To Instrument catalogue Naar Godfried-Willem Raes' homepage



Voor het Logos Robotorkest hadden we reeds in 2004 een automatisch strijkinstrument gebouwd: <Hurdy>, de automatische draailier. Dat stelde heel wat meer problemen dan aanvankelijk verwacht. Het strijkmechanisme kende dermate veel vrijheidsgraden dat de besturing van deze robot bijzonder ingewikkeld was. Jarenlang hebben we gezocht op betere mechanismen om snaren te strijken met een goede kontrole over de toonvorming. Erg vele experimenten bouwden we op en rekenden we van onder tot boven na. Dat leidde in 2007 tot de definitieve toevoeging van elektromagnetische snaaraansturingen op <Hurdy>, maar meteen ook tot een boel nieuwe ideeen voor potentieel verder te ontwikkelen strijkrobots. Zo kwamen we op de idee een soort 'aeolische' cello te bouwen. Deze robot werd ontworpen met twaalf kromatisch gestemde snaren. Vanaf midi noot 36 tot en met 47. Een toets of een tangentenmechanisme met fretten wilden we niet nog eens gaan bouwen. Nu lijkt een tessituur van een enkel oktaaf wel wat weinig om van een cello te kunnen spreken, ware het niet dat ons mechanisme , ook zonder gebruikmaking van inkorting van de snaren, in staat is ook alle boventonen van die twaalf noten te laten klinken. Zo kunnen we de gehele tessituur bestrijken. Om de expressiemogelijkheden niet te eenzijdig te maken, voorzien we elke snaar van een individuele vilten demper. Daardoor kunnen melodische lijnen toch goed geartikuleerd worden gespeeld. Snelle staccatos en zeker pizzicatos zijn evenwel principieel onmogelijk omdat daarvoor enorm sterke elektromagneten nodig zouden zijn en omdat het werkingsprincipe staat of valt met het in resonantie brengen van de snaar, wat steeds een kleine tijd in beslag neemt. De trilling van de snaar moet opgebouwd worden, zoals dat ook bij een slinger het geval is. Voor de toonvorming van <Aeio> zijn 12 dsPIC processoren nodig. Hiervoor selecteerde we het type dsPIC30F3010. Elke processor neemt de besturing van een enkele snaar voor zijn rekening. Er zijn tweemaal drie PWM uitgangen beschikbaar op deze processoren, waarbij elk koppel uitgangen telkens het signaal in faze en het signaal in tegenfaze (negatie) levert. Hiervan maakten we gebruik om de snaar alternerend met twee elektromagneten, elk aan een tegenovergestelde kant van de snaar gelegen, aan te sturen. De pulsbreedte van deze PWM signalen evenals de dood-tijd is in de software instelbaar. Deze signaaleigenschap wordt gebruik voor de implementatie van de velocity sturing van note-on's. De dempers worden bestuurd vanuit dezelfde dsPIC controller. Het note off kommando aktiveert de dempers. De dempkracht kan worden gestuurd door de waarde van het release byte. Een modus om zonder de dempers te spelen is eveneens voorzien. Het werkingsprincipe, waarbij twee elektromagneten alternerend de snaar aansturen met een PWM signaal ziet eruit als getekend in onderstaande vluchtige schets:

De wezenlijke afmetingen waarop we ons steunden voor de bouw en berekening van deze automaat worden samengebracht in onderstaande (vervormde, want horizontaal uitgerokken) werktekening. Ze omvat meteen ook de operationele gegevens voor het snaarmateriaal (gehard veerstaal).

De snaren moeten uiteraard uit ferromagnetisch materiaal bestaan en om een goede magnetische koppeling te verkrijgen met de aangelegde magneetvelden is het wenselijk dat ze zo dik mogelijk zouden zijn. Daar staat natuurlijk als bezwaar tegenover dat naarmate de snaar dikker wordt genomen, de inharmoniciteit sterk gaat toenemen enerzijds en anderzijds dat de snaar dan erg moeilijk over stemmechanismen en kammen te geleiden valt. Een kompromis diende dus gezocht te worden. Dit leidde tot de keuze voor snaarmateriaal in gehard staal met een diameter van 1.5mm. Dat is heel wat dikker dan gebruikt voor de dikste snaren of kerndraden daarvan in pianos. De snaarspanning ligt een heel stuk onder wat voor een luide klank wenselijk zou zijn, maar hierdoor wordt de aanspreeksnelheid wel sterk verhoogd. Het risiko op snaarbreuk is meteen ook zo goed als onbestaand in dit instrument.

Het signaal in twee fazen toegevoerd aan de elektromagneten kan grafisch voorgesteld worden alsvolgt: Hoewel we de snaarbeweging om haar as tekenden als min of meer sinusvormig, hoeft dit geenszins het geval te zijn. Door de B tijd te vergroten wordt de beweging van de snaar veel meer zaagtandvormig en benaderd ze de gestreken snaarklank. Het heeft geen zin de B tijd korter te maken dan de tijd die de snaar onder invloed van haar veerkracht nodig heeft om weer naar haar axiaal middelpunt terug te keren. (1/4 van de periodetijd, dus voor noot 36 geeft dat 3.9ms). De duty cycle van de signalen blijft dan ook kleiner dan 25%. Overigens is de tekening slechts min of meer geldig wanneer de exitatie van de snaar door de magneten erg klein is. Vanzodra deze groter wordt moet ook het veer-karakter van de snaar in rekening worden gebracht. Dit veroorzaakt een nuldoorgang van de snaar voor het eind van de B faze. De hieronder weergegeven tekening benadert beter de snaarbeweging bij een substantiele aandrijfkracht. Het valt ook op dat we hier al heel wat dichter de golfvorm eigen aan een gestreken snaar kunnen benaderen, per slot van rekening toch wel het opzet bij het ontwerp van deze robot.

Hoewel oorspronkelijk bedacht om de snelheid van het aanspreken van de snaren te verhogen, blijken de voor dat doel toegevoegde kloppertjes (aangestuurd door de dsPIC controllers) ook als extra feature op zich bruikbaar. De elektromagnetisch gestuurde hamertjes zijn met leder of hard vilt bekleed en kunnen ook in dynamiek worden gestuurd. Ze werden gemapt in het oktaaf onder de normale tessituur van het instrument.

Om het hele instrument voor gewone gebruikers toch hanteerbaar te maken ontwikkelden we een parser die de binnenkomende instrukties vertaalt naar wat de dsPIC's op een lager programmanivo nodig hebben. Voor deze parser maakten we oorspronkelijk gebruik van een 18F25K20 processor geklokt op 64MHz. Dit board werd in oktober 2017 vervangen door een heel wat sneller 16 bit processor board met een 24EP128MC202 processor, voor de parser funkties en een extra 18F2520 processor voor de lampjes. Dit is het nieuwe schema:
Een verdere uitbreiding van de <Aeio> robot, uitgevoerd in 2017 betreft een eigen radar-sensor met controller voor gesture recognition. Hierdoor kan <Aeio> ook volledig stand-alone werken in audio installatie projekten, waarbij hij door beweging kan worden gestuurd. Hier een detail foto van Aeio, met de gemonteerde radar sensor: In deze volautomatische interaktieve modus speelt <Aeio> om beurten de vijf komposities die in de firmware zijn ingebed.

In het kader van de 50 ste verjaardag van Logos, vertrekt <Aeio> samen met vier andere robots naar het Speelklok Museum in Utrecht. De specifieke omstandigheden in die museale kontekst -een tentoonstelling rond muzikale robots- maakten een nieuwe versie van radar-interface en embedded kompositie noodzakelijk. Daaraan wordt op dit moment gewerkt.

De midi implementatie en de technische specifikatie voor deze robot zijn opgenomen in de engelstalige beschrijving hierboven.

Geillustreerd bouwdagboek:

Omdat ons vaak wordt gevraagd hoeveel werk en tijd kruipt in, en nodig is voor, het bouwen en ontwikkelen van een muzikale robot, hebben we ook voor <Aeio> een beknopt bouwdagboek bijgehouden. Omdat we de bouw tot in de laatste details graag illustreren, kan het ook voor anderen die ons op dit pad willen volgen en/of verbeteren, van praktisch nut zijn. Bij onderhoud en herstellingen aan deze robot, verdient het ook aanbeveling dit bouwdagboek door te nemen.


Most recent note/driver/component placement:

  front coils & bow back coils & bow front mosfet back mosfet PIC state remarks
36 0.56mH Philips orig. 0.56mH Philips orig. BUZ345 BUZ345    
37 0.56mH Philips orig. 0.56mH Philips orig. BUZ345 BUZ345    
38 0.56mH Philips orig. 0.56mH Philips orig. BUZ345 BUZ345    
39 0.56mH Philips orig. 0.56mH Philips orig. BUZ345 BUZ345    
40 1.37mH -C40F-Ph 1.3mH - C40B- Eag IRF1310 IRF1310    
41 1.9mH-C41F-Ph 1.39mH -C41B-Ph BUZ345 IRF1310    
42 0.56mH Philips orig. 0.56mH Philips orig. BUZ345 BUZ345    
43 1.34mH -C43F-Ph 1mH- C43B-Eagle BUZ345 IRF1310   wire shorted.
44 1.23mH- C44F- Eagle 0.56mH Philips orig. IRF1310 BUZ345    
45 0.56mH Philips orig. 0.56mH Philips orig. BUZ345 BUZ345    
46 2mH Eagle orig. 1mH -C46B-Eagle BUZ345 IRF1310    
47 2mH Eagle orig. 2mH Eagle orig. BUZ345 BUZ345   dsPIC crashes on overload

memo: the mosfets controlling the front bow coils are situated on the outside of the dsPIC boards.


(Terug) naar logos-projekten:

Terug naar Logos' index-pagina:

Godfried-Willem Raes personal homepage...

Naar Godfried-Willem Raes' homepage

Naar katalogus instrumenten
gebouwd door
Godfried-Willem Raes

Last update: 2018-05-14

by Godfried-Willem Raes

Further reading on this topic (some in dutch):

Bibliographical references:

ROSSING, Thomas.D (editor), "The Science of String Instruments" , ed: Springer NY, Stanford CCRMA, 2010 ISBN 978-1-4419-7109-8

MDU1100t X-band radar sensor datasheet (Microwave Solutions, UK)

Technical data sheet, detailed midi-implementation, design calculations and maintenance instructions:

Technische gegevens, ontwerpberekeningen en instrukties voor onderhoud en demontage:


Theoretical rounded overtone table based on modern acoustic research: [to be completed]



























36 1                       1
37   1                     1
38     1                   1
39       1                 1
40         1               1
41           1             1
42             1           1
43               1         1
44                 1       1
45                   1     1
46                     1   1
47                       1 1
48 2                       1
49   2                     1
50     2                   1
51       2                 1
52         2               1
53           2             1
54             2           1
55 3             2         2
56   3             2       2
57     3             2     2
58       3             2   2
59         3             2 2
60 4         3             2
61   4         3           2
62     4         3         2
63       4         3       2
64 5       4         3     3
65   5       4         3   3
66     5       4         3 3
67 6     5       4         3
68   6     5       4       3
69     6     5       4     3
70 7     6     5       4   4
71   7     6     5         3
72 8   7     6     5     4 5
73   8   7     6     5     4
74     8   7     6     5   4
75 9     8   7     6       4
76   9     8   7     6   5 5
77 10   9     8   7     6   5
78   10   9     8   7       4
79 11   10   9     8   7     5
80   11   10   9     8   7 6 6
81 12   11   10   9     8     5
82   12   11   10   9     8   5
83 13   12   11   10   9     7 6
84 14 13   12   11   10   9     6
85   14 13   12   11   10   9   6
86 15   14 13   12   11   10   8 7
87 16 15   14 13   12   11   10   7
88   16 15   14 13   12   11     6
89 17   16 15   14 13   12   11 9 8
90 18 17   16 15   14 13   12     7
91   18 17   16 15   14 13   12   7
92 19   18 17   16 15   14 13   10 8
93 20 19   18 17   16 15   14 13   8
94 21 20 19   18 17   16 15   14 11 9
95 22 21 20 19   18 17   16 15     8
96 23 22 21 20 19   18 17   16 15 12 10
97   23 22 21 20 19   18 17   16   8
98 24   23 22 21 20 19   18 17   13 9
99 25 24   23 22 21 20 19   18 17   9
100 26 25 24   23 22 21 20 19   18 14 10
101 27 26 25 24   23 22 21 20 19     9
102 28 27 26 25 24   23 22 21 20 19 15 11
103 29 28 27 26 25 24   23 22 21 20   10
104 30 29 28 27 26 25 24   23 22 21 16 11
105 31 30 29 28 27 26 25 24   23 22   10
106 32 31 30 29 28 27 26 25 24   23 17 11
107   32 31 30 29 28 27 26 25 24   18 10
108     32 31 30 29 28 27 26 25 24   9
109       32 31 30 29 28 27 26 25 19 8
110         32 31 30 29 28 27 26   7
111           32 31 30 29 28 27 20 7
112             32 31 30 29 28 21 6
113               32 31 30 29   4
114                 32 31 30 22 4
115                   32 31 23 3
116                     32 24 2
118                       25  
119                       26  
120                       27  
121                       28  
122                       29  
123                       30  
124                       31  
125                       32  

Robody pictures with <Aeio>: