<3Pi> <Threepi> <3¶>
|
<3Pi>
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.
Controllers:
#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. |
|
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 |
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.
TO DO:
- 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 |
48.00
|
IC socket | 10 | 28 pins |
20.00
|
IC socket | 10 | 16 pins |
13.00
|
6N137 | 1 | optocoupler |
2.00
|
PCB | 2 | 100 x 220 + processing (drills, solder, etching baths, films) |
140.00
|
Sounders | 30 | ABT408RC |
30.00
|
IC socket | 1 | 8 pins |
1.00
|
SMPS 5V - 2A | 2 | XP Power ECB10US05 |
60.00
|
5-pole DIN sockets | 1 | Preh, vertical mount, bajonet |
12.00
|
74AC11008N | 10 | 3V/5V AND-gates |
15.00
|
LM2940 - TO220 | 2 | 3V3 voltage regulator |
5.00
|
ICD headers 6-pins | 10 |
5.00
|
|
FQPF20N06L | 30 | power MOSFET |
90.00
|
2 pole Weidmueller | 2 | socket and plug |
8.00
|
3 pole Weidmueller | 3 | socket and plug |
12.00
|
Fuse | 2 | self resetting fuse |
2.00
|
Tantalum capacitors | 20 |
40.00
|
|
100nF bypass caps | 36 | 5% ceramic |
9.00
|
Resistors | 60 | 1% metalfilm |
20.00
|
LED's | 10 | red |
5.00
|
Omron Relay | 2 | G6E-134-ST-US |
10.00
|
20 Ohm trimpots | 30 | Bourns multiturn |
180.00
|
Figure 8 connector | 1 | PCB mount |
6.00
|
Blue 1W LED | 2 | TO220 - PWR350 T21B1 |
6.00
|
Green LED | 2 |
1.00
|
|
Inductors | 10 | 47uH |
40.00
|
Total: |
780.00
|
Mechanical parts and general assembly::
item / part | NR. | description | price |
polycarbonate plate material | 1 | 480 x 320 x 8 |
24.00
|
aluminum profile | 70 x 12 x 16 |
5.00
|
|
M3 bolts and nuts | 24 | stainless steel |
12.00
|
Epoxy glue | 1 | fast setting |
10.00
|
5 mm distance holders | 16 | 3 mm |
4.00
|
Loctite Cyanoacrylate glue | 4 | gel |
38.00
|
Power cord | 1 | figure-8 plug |
2.00
|
MIDI cable | 1 |
12.00
|
|
Pipe metal | 3 kg |
150.00
|
|
Wheels | 4 |
20.00
|
|
Stainless steel | 1 kg |
35.00
|
|
M4 bolts and nuts | 20 | stainless steel |
15.00
|
Total: |
327.00
|
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
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)
Maintenance and disassembly instructions:
Robody picture with <Pi>, <2Pi>, <3Pi>, <4Pi>:
Candidates?
[EOF]