an electroacoustic regal using electromagnetic membrane buzzer driven conical pipes

Godfried-Willem Raes



This small and very portable robot builds further on the experiences gained during the development and evaluation of our tiny <Pi> robot built in 2017 and the reduced ambitus <2Pi> robot built in 2018. It belongs to the family of robots designed by us using membrane driven organ pipes. Other robots, members of this same family are <HybrLo>, <Hybr>, <HybrHi>.

In contrast with the two previously built miniature organs, this one was designed to use conical resonators. In traditional organs, cone resonators are exclusively used in combination with reed pipes. Registers such as trumpet, oboe, bassoon, tuba... have conical resonators. These resonators are not strictly tuned, as the tuning is merely dependent on the reed, but are used and adjusted to obtain the specific timbre for the register. One may encounter them as 'full length', 'half length' or quarter length, but the exact lengths are not tuned. Trumpets with full length resonators do sound really powerfull. As the cones are taken shorter and wider, the tone becomes more sharp and piercing.

The fact that cone resonators in traditional organs are not really tuned, accounts for the fact that we could nowhere trace practical formulas for the calculation of the resonant frequencies of conical pipes. The formula we had in our own syllabus on acoustics is difficult to use here as the value to be taken for c deviates quite a bit from the geometry of the pipe excited at the small side of a cone with length L. The condition c << lambda can only be met for cones with a large opening angle. For this project we wanted a rather sharp opening angle in order to improve on the lower partials, so the condition could certainly not be fullfilled. In order to be able to calculate the most suitable scaling for the resonators, we first made a few test pipes with different lengths but constant cone angles, for measurement:

The value to be taken for c, after a series of measurements, came out a ca. one thirth of c. It therefore seems that the pipe at the truncation of the cone, behaves as if the cone is coupled to a cylinder with the same volume as the virtual cone with length c. Hence our finding that Lak = L + 0.3d + c/3. Here is an improved drawing, at the base of our final calculations:

Using cone resonators it became clear that we could design this instrument to sound a full octave below <2Pi>, without loosing too much in amplitude. Contrary to what is found in textbooks on acoustics, these pipes sound as quarterwavelength pipes. The resonances at overtones for our 261Hz pipe were found to be: fo= 261Hz, f1=530Hz, f2=790Hz, f3= 920Hz, f4= 1310Hz and f5=1580Hz. So, more or less a n=1,2,3,4,5... series.
Just as in <Pi> and <2Pi> , here we again used tiny electromagnetic buzzers, type ABT-408-RC costing only about one Euro a piece, but as the power of these buzzers is very small, a really powerfull sound was out of scope here. The cone resonators were made from traditional organ pipe metal, an Sn-Pb alloy, and soldered on a cone former mandrel. The special extruding tool we made for <Pi> could be used again to make the rectangular opening at the small end of the resonators. The sound of the pipes thus formed is quite reedy, as was to be be expected from metal membranes, and thus compares quite well to a soft high pitched regal.

For driving and tuning the buzzers we designed a circuit build around the microchip Pic 24EP128MC202 microprocessor, in fact a chip developed as a dedicated 3-phase motor controller. The circuits are in principle identical to the ones used for <Pi> and <2Pi>, but the PCB boards were redesigned and improved on some details. Here we have only two PCB's, each serving 15 notes. All sound synthesis is handled in the digital domain using PWM techniques. On each processor chip, three 16-bit timers are used to generate the required pitches with variable duty cycles. The three PWM channels working at a base frequency of >300kHz are used for the envelope control of each individual note by multiplying their output with the variable duty cycle square wave signal from the tone generators. No low pass filtering was applied, as all possible artifacts are situated well above the normal auditory perception range. Moreover, the coils driving the membranes serve as an intrinsic low pass filter due to their inductance (900uH). We considered using analog control for the global volume control of the instrument as the power supply voltage for the buzzers controls directly the sound volume leading to a possibly better resolution in dynamics. However, after some experiments we dropped the idea mainly because it would introduce a high risk of overloading the buzzers if the instrument were given in the hands of not knowledgeable musicians. The current through the buzzers should be limited to 75 mA.

Here is the circuit design (shown for 3 notes only, but the practical circuit on a single 100 x 220 mm board, houses 5 processors, good for 15 notes):

The 20 Ohm Bourns trimpot resistors in series with the load in the circuit are used to balance the non-linearity of the frequency response of the sounders. Their value increases as the resonant frequency is approached. Complete detailed circuit drawings are given at the bottom of this page. In this version, we used multiturn trimpots such that balancing becomes more comfortable as compared to <Pi> were we soldered in selected fixed value resistors. The MOSFETS used here were selected to operate on a 2.5V gate voltage such that they can be fully driven with the outputs of the AND-gates. Mosfet types that can be used are: FQPF20N06L, IRLZ34N and most certainly quite a few more. We remain open for suggestions for more suitable through hole types in this application..

The complete robot consists of just two PCB's in the format 100 x 220 mm, each holding five 16-bit PIC microprocessors. Here is an overview:

As each PCB houses 5 PIC microcontrollers , there are 10 controllers to write firmware for.

The populated PCB's, without the resonators, look like: With resonators:

To make and calculate the required conical pipe resonators we first made a bunch of test-pipes of different lengths and measured them out carefully using our Tektronix arbitrary function generator. After collecting the data, we wrote a small computer program to calculate by logarithmic interpolation the required pipe lengths for the practical instrument. It was observed that the pipes resonate as 1/4 wavelength resonators for all pitches below the resonant frequency of the buzzers. As for the highest notes on <3Pi> the cones became too short to sound well, we decided to construct all the pipes on the second board, as 1/2 lambda resonators.


Definitive pipes as made, tuned and measured:

  freq = f0 L Lambda / 4 R Z
Board 1 Hz mm mm Ohm Ohm
60 261 282 329 23 23.26
61 277 264 310 23  
62 293 247 293 23  
63 311 231 276 22  
64 329 216 261 22  
65 349 201 246 22  
66 369 188 232 22  
67 391 175 219 22  
68 415 163 207 22  
69 440 152 195 22  
70 466 141 184 22  
71 493 131 174 21  
72 523 122 164.6 21  
73 554 113 155.4 21  
74 587 104 146.6 21 21.42
Board 2     l/4 -- l/2    
75 622 96 / 231 138.4 / 277 20 21.22
76 659 89 / 216 130.7 / 261 20  
77 698 82 / 201 123.3 / 247 20  
78 740 75 / 188 116.4 / 233 20  
79 784 69 / 175 109.8 / 220 20  
80 831 63 / 163 103.7 / 207 20  
81 880 57 / 152 97.9 / 196 19  
82 932 52 / 141 92.4 / 185 19  
83 988 47 / 131 87.2 / 174 19  
84 1046 42 / 122 82.3 / 165 18  
85 1109 37 / 113 77.7 / 155 18  
86 1175 33 / 104 73.3 / 147 18  
87 1244 29 / 96 69 / 138 17  
88 1319 25 / 89 65 / 130 17  
89 1397 22 / 82 61.6 / 123 16 12.88

An extra feature of <Pi>, <2Pi> as well as <3Pi> is that they can, next to the default equal temperament tuning, also be tuned in so called just intonation. As the intervals in any just intonation system are based on a single reference pitch, we implemented just intonation for all 12 possible base-pitches. To this end we implemented controller 21. With value 0, equal temperament is used. With values 12 to 23 just intonation is in use, based on the references C to B. These are the interval ratios as implemented:

1:1 16:15 9:8 6:5 5:4 4:3 45:32 3:2 8:5 5:3 9:5 15:8

Note that changes of pitch and tuning are only applied to the next note played and thus do not affect an already playing note.

For composers <3Pi> offers a wealth of subtle possibilities, a striking one being that the pipes can also produce controllable noise bands around their central pitches. Not only it can behave as a tiny organ, but also quite well as a source of soft but high pitched percussive sounds. In order to explore this, just set the sustain level very low and use very high velocity values with fast attack and decay.

Midi implementation and mapping:

Midi channel: 5 (counting 0-15)

Note Off: notes 60 to 89, note release time implemented. If`release is used, it will override the setting of ctrl.19 (global release time).
Note On: notes 60 to 89, velo implemented. The velocity byte controls the extra level above sustain (set with ctrl.#7) reached by the end of the attack period.

<3Pi> has two blue LED lights, one on each board. These lights are mapped on midi notes 1 and 2. For these, velocity is not implemented.


#1: Wind noise or pitch instability. (Default value 8)
#7: Global volume (default value 127)
#15: Waveform controller (duty cycle, default value 99).
#16: Sustain level controller (default value 118)
#17: global attack control (attack time) (default value 10)
#18: global decay time (default value 20)
#19: global release time (default value 10), release starts on reception of a note-off command. If note-off with release commands are issued, the release byte sent will override this controller for the note released.
#21: tuning system in use. Value 0 (default) sets equal temperament. Values 12-23 set just intonation based on the notes C to B respectively.
#66: Power on/off switch. Power off resets all controllers to their startup default values. Users should always send #66 with value 0 when the robot is not playing.
#72 to #101: Microtuning controllers for the individual notes. Note 60 uses ctrl.#72 etc, up to note 89 with ctrl.#101. By default all these controllers are set to 64. The range is about a quartertone up or down. Warning: In many sequencer programs, controllers 98 and 99 are treated as 'NRPN': non registered parameter number. Both controllers are then handled together as a 16 bit controller, where ctrl.99 holds the MSB and 98 the LSB.
#123: all notes off, preserving all controller settings

Note: controllers #16,#17,#18,#19,#21 will have an effect only for the next following note played and have no effect on the note(s) sounding. Controllers #1, #7, #15, #66, #123 and #72 to #101 have an immediate effect.

ADSR-implementation details:

Program change, with value 0, is implemented and can be used to reset all controllers to their cold boot settings. This command will also reset the tuning in use.

Key pressure can be used to change the waveform of a note whilst that note is sounding, thus overriding the setting with controller #15 for that note.

Channel aftertouch and pitch bend are not implemented on <3Pi>


  All specs given here are subject to changes during the still ongoing evaluation process. The instrument is available for users since the end of march 2022. Its first public appearance was on march 23th 2022, at Logos Foundation. The firmware went through a major upgrade in august 2022.

Technical specifications:
Design, research and construction: dr.Godfried-Willem Raes (2022)

Music composed for <2Pi>: (all this music can be played on 3Pi, transposed an octave lower)

Godfried-Willem Raes '2Pi demo' (2018)

Godfried-Willem Raes "Namuda Study #70: Poly" (2018)

Godfried-Willem Raes "Fanspastic Voyage after a student" (2018, 3Pi version 2022)

Georg Friedrich Haendel "The Inharmonious blacksmith" (3Pi version 2022)

Ludwig Van Beethoven "Allegro fuer eine Floetenuhr" (3Pi version 2022)


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

Dit instrument kwam tot stand zonder enige steun van de Vlaamse Gemeenschap, na een vernietigend en korrupt advies in 2016 van Piet Van Bockstal.

Construction diary:

19.01.2022: PCB voor de laagste noten geetst en geboord.
21.02.2022: Solderen eerste PCB.
22.02.2022: Eerste voorstudie van de firmware voor 3Pi.
23.02.2022: Start opmetingen en konstruktie van experimentele konische resonators.
24.02.2022: Test solderen van een vijftal konussen.
Konusmal, in op de draaibank afgedraaid staal: :

25.02.2022: Math research: acoustical modelling of resonator pipes. Calculation program written in PBcc.
26.02.2022: Twelve resonator pipes finished and tuned.
27.02.2022: All fifteen resonator tubes for board 1 finished. Resonators for 75 and 76 made, but we have to do further research on optimum size for this range. Half lambda may be more appropriate here.
28.02.2022: Measurements and further math research. Schetsen mogelijke opbouw en plaatsing pijpen: waaiervorm, afgeplatte pijpen, vlakke pijphouder... <3Pi> zou ook als een extra register in bestaande orgelrobots kunnen worden gebouwd. Mogelijke kandidaten zijn dan <Bomi>, <Pos>, <Piperola>, <Roro>, <Krum>. Overweging om de resonatoren voor de noten 75 tot 89 als halve golflengte pijpen te bouwen. Te testen op klankkleur breuk bij de overgang tussen pijp 74 en 75.
01.03.2022: Ontwerpen vormgeving, berekening plaatsing pijpen: rechtstreekse montage op het PCB in waaiervorm lijkt wel het mooist...
04.03.2022: Firmware development: rare bug na 2 1/2 uur valt timer 2/3 (de 32 bit timer) volledig stil waardoor niks van de ADSR het nog doet. De hoofdlus blijft lopen en de midi parser is ook nog intakt. De watchdog LED valt uit. Werken dwords plots als signed?
05.03.2022: Alle pijpjes voor board 1 in waaiervorm op het PCB vastgesoldeerd. Eerste tests, twee grote problemen: midi signaal blijkt volkomen onbetrouwbaar te zijn en pijp 72 geeft geen kik. Pijp 72 bleek te wijten aan een slechte soldeerverbinding. Het door ruis volledig gemaskeerd midi signaal bleek opgelost door de 6N137 optocoupler te vervangen door een ander exemplaar... Nog goed dat we IC voetjes gebruikten... Het is overigens niet de eerste keer dat we met onbetrouwbare optocouplers te maken kregen.
06.03.2022: Eerste tests voor board 1: Verdere research naar de oplossing van het crash probleem met timer 2/3. Onderzijde van de pijpjes vastgezet en ingegoten in twee-komponent transparant siliconen.
07.03.2022: Werk stilgelegd vanwege ziek met een Corona besmetting... Besmetting wellicht opgelopen tijdens lange wandeling door overdruk Gent gisteren. Hoge koorts.
08-12.03.2022: In karantijne. Stilaan minder koorts, maar moeheid blijft. Print voor de hoge noten van 3Pi geetst, gebruik makend van dezelfde film voor de lage noten. We zijn duidelijk nog niet helemaal in orde, want de eerste print maakten we foutief in spiegelbeeld...
13.03.2022: Bestukken en solderen van de tweede printplaat.
14.03.2022: Montage van de 1W blauwe LED's op beide boards: enige ruggesteun blijkt nodig, want anders breken de chips binnen de kortste keren af. Noteer de noodzaak om deze TO220 komponenten met een isolerend mica plaatje te monteren. We vallen zonder 24EP128MC202 chips... bestelling geplaatst bij Farnell.
15.03.2022: Konstruktie van 9 conische pijpresonators voor board 2.Deze worden als 1/2 lambda resonators gedimensioneerd zodat de pijplengtes voor de noten 75 tot 89, nu overeenkomen met die voor de noten 63 tot 77.
16.03.2022: Verdere bouw van de resonatoren voor board 2. Alle pijpjes zijn nu klaar en gesoldeerd. Het gerecycleerd pijpmetaal is afkomstig van het oude orgel in de protestantse kerk in de Brabantdam. De montage op het PCB kan beginnen.
17.03.2022: Alle pijpen van board 2 gemonteerd. Alleen het ingieten in transparant tweekomponent siliconengel moet nog gebeuren. Polykarbonaat plaat uitgezaagd voor de eindmontage. Breedte van de plaat is 320 mm.

18.03.2022: Eerste volledige test-assemblage: Aftekenen van de klankgaten in de polykarbonaat plaat. Eerste tentatieve afregeling pijpjes met de trimpotmeters. Noteer: wijzerzin draaien is stiller...
20.03.2022: Photo shoot: Afregeling en intonatie van het gehele instrumentje. Natrekken van de stemming: die blijkt binnen kleine frakties van een cent nauwkeurig en volstrekt betrouwbaar te zijn.
05.08.2022: Firmware upgrade uitgevoerd n.a.v. de bevindingen en verbeteringen met <4Pi>: dynamiek kurve zuiver logaritmisch gemaakt en ook polyfone pitch-shift nu mogelijk gemaakt. Wave form modulatie kan nu ook met het key-pressure kommando. ADSR dokumentatie aangepast in deze webpagina.
17.09.2023: <3Pi> doet mee aan de opstelling met het interaktief robotorkest in de Hnita hoeve in Heist-op-den-Berg. Begeleider en animator daar is dr.Hans Roels. Ook <Ake>, <Toypi> en <Steely> zijn van de partij.



- optimizing the firmware
- extensive testing
- preparing more demo files, some mediaeval music pieces would sound quite well on this instrument.

- evaluation and conclusions on the experimental prototype,

- suggested changes for further future designs:

Maintenance information:

Microcontroller firmware:

source code (to be separately compiled for each of the 10 microprocessors).

Hex-dumps for the <3Pi> PIC's:

PIC 1 60-62 board1
PIC 2 63-65 board1
PIC 3 66-68 board1
PIC 4 69-71 board1
PIC 5 72-74 board1
PIC 6 75-77 board 2
PIC 7 78-80 board 2
PIC 8 81-83 board 2
PIC 9 84-86 board 2
PIC 10 87-89 board 3

The PCB for this instrument (at 200%) is here:

If people are interested in owning a handmade version of this miniature robot, I can hand make them for ca. 4500 Euro. Delivery time will be ca. 2 months.

Cost calculation for the <3Pi> robot:

Board components (30 notes):

item / part NR. description price
24EP128M0202 10 Microchip
IC socket 10 28 pins
IC socket 10 16 pins
6N137 1 optocoupler
PCB 2 100 x 220 + processing (drills, solder, etching baths, films)
Sounders 30 ABT408RC
IC socket 1 8 pins
SMPS 5V - 2A 2 XP Power ECB10US05
5-pole DIN sockets 1 Preh, vertical mount, bajonet
74AC11008N 10 3V/5V AND-gates
LM2940 - TO220 2 3V3 voltage regulator
ICD headers 6-pins 10  
FQPF20N06L 30 power MOSFET
2 pole Weidmueller 2 socket and plug
3 pole Weidmueller 3 socket and plug
Fuse 2 self resetting fuse
Tantalum capacitors 20  
100nF bypass caps 36 5% ceramic
Resistors 60 1% metalfilm
LED's 10 red
Omron Relay 2 G6E-134-ST-US
20 Ohm trimpots 30 Bourns multiturn
Figure 8 connector 1 PCB mount
Blue 1W LED 2 TO220 - PWR350 T21B1
Green LED 2  
Inductors 10 47uH

Mechanical parts and general assembly::

item / part NR. description price
polycarbonate plate material 1 480 x 320 x 8
aluminum profile   70 x 12 x 16
M3 bolts and nuts 24 stainless steel
Epoxy glue 1 fast setting
5 mm distance holders 16 3 mm
Loctite Cyanoacrylate glue 4 gel
Power cord 1 figure-8 plug
MIDI cable 1  
Pipe metal 3 kg  
Wheels 4  
Stainless steel 1 kg  
M4 bolts and nuts 20 stainless steel

total cost for materials: 327 Euro + 780 Euro = 1107.00 Euro

Labor and research investment:

19.02.2022 ---> 20.03.2022: 6 weeks or 30 working days a 315 / d = 9450 Euro (for <3Pi>)

End cost of prototype <3Pi> production: 10557.00 Euro

Last update: 2023-09-17

by Godfried-Willem Raes

Further reading on this topic (some in Dutch):

Audsley, George Ashdown 'The Art of Organ-Building', ed. Dover Inc, NY,1965, (first edition: 1905)  ISBN 0-486-21314-5
D'Appolito, J. 'Luidspreker-meettechniek', ed. Segment BV, Beek , Nederland, 2000, ISBN: 90 5381 116 8
De Keyser, Ignace, 'Challenging von Hornbostel & Sachs', in: 50 years at Logos, 2019
Philips Components, 'Piezoelectric Ceramics, properties and applications', Eindhoven,1991
Raes, Godfried-Willem 'Bug', an automated fluegelhorn (2017)
Raes, Godfried-Willem , Expression control in musical automatons
Raes, Godfried-Willem, "Logos @ 50, het kloppend hart van de avant-gardemuziek in Vlaanderen" (book, 2018)

Technical data sheet, design calculations and maintenance instructions:

 Maintenance and disassembly instructions:


Robody picture with <Pi>, <2Pi>, <3Pi>, <4Pi>: