<HybrLo> a sub octave electroacoustic pipe organ using membrane driven resonator
pipes V2.0 |
<HybrLo>
As the results of the <Hybr> robot turned out
very positive, and after building the top octave extension <HybrHi>,
we decided to give it another extension into the very low range of notes. An
extension in the low range was already conceived after finishing <Hybr>
but due to the inherently large size of the pipes, we left the idea dormant
for a few years. But as the need became more and more urgent to get easier to
transport instruments in the very low register, we took up the idea again. Using
thin PVC pipe material makes indeed transportation a lot less problematic, even
though by necessity, it would have to be a rather large instrument. In order
to minimize size, we decided to limit the polyphony to 12 voices, and have each
pipe play either the low octave or the higher octaves. Thus octave doubling
becomes impossible by design. However, this way the ambitus of the instrument
becomes four octaves. It could even be further extended by adding the duodecimo's
and other harmonics. The inharmonicity of the pipes however becomes quite noticeable
and therefore we did not implement it.
. Learning some lessons from the <Hybr> design, here we strictly adhered
to the design rule stating that the ratio of pipe length to internal diameter
must be larger than 10. The pipes work acoustically as 1/4 lambda resonators..
As the required pipe lengths turned out too long to construct a transportable
instrument, we decided to crop them such that the total height of the instrument
stays smaller than 2 meters. So even fully mounted it will pass through a normal
door. We first calculated the ideal sizes for the lowest pipe and came to the
conclusion that this pipe ought to have a diameter of 300 mm if it should have
a resonance at the octave. Clearly, this would lead to a way too large instrument,
as even the diameter of the shortest pipe would become ca. 150 mm. However,
It would make a great instrument, as with such sizing the use of very powerful
drivers would become possible. If anybody wants to commission it, we are ready
to accept an order...
<HybrLo> was designed at a time the Logos Foundation was highly endangered,
as an advisory commission composed of complete idiots (however politically highly
correct...) issued a negative advice about our governmental funding. In such
an awkward context it became a priority to design the instrument such that it
could be build from recycled materials and merely components we had in stock.
Clearly this had severe repercussions on the visual appearance of this robot.
Sorry for that. Blame the conservative puritan leftists that oppose to real
experimental work in the arts for this.
As we used 16 bit microcontrollers (and not the 32 bit ARM controllers used
for <Hybr> and <HybrHi>) the implementation of the controllers for
this instrument turned out a bit different. Some controllers found on the other
instruments (vibrato and tremolo) were dropped here, as for such low frequencies
it didn't make much sense. However, in this instrument we thought about experimentally
inclined composers and provided in individual ADSR control and waveshape for
every single note. Thus the instrument can even be used to mimic percussion
instruments or pizzicato bass lines. For compatibility with the other instruments,
global controllers for these parameter are implemented as well. To make things
even easier for users, we implemented a small set of presets as well. After
been used for almost five years, we discovered none of our users actually ever
used all the possibilities we had implemented. So, at the occasion of a firmware
revision near the end of 2020 - a revision we undertook in the first place to
remove a minor bug from the code causing some amplitude instability at unpredictable
moments - we decided to simplify the controllers a bit. We kept the possibility
to individually modulate the amplitude of every note as well as the individual
modulation and modification of the wave shape. The ADSR-controllers however
are now global, affecting the entire instrument.
The 16-bit microprocessors in this robot are working at the upper limit of their capabilities. All the code is based on a multitude of fast interrupt handlers running at up to ultrasonic frequencies which by their very nature had to be handled in a hierarchical way. All wave processing makes use of PWM modulation, nine channels for each processor. This 'on the edge of processor possibilities' approach is not without musical consequences and in a way the robot in the end has somewhat of a more human behavior: as the music gets faster and more complicated, it may give up on precision. It will not crash nor get out of tune, but as the number of controllers and key pressure commands send to it becomes very high, the envelopes will tend to become a bit irregular and shaky.In the firmware upgrade we undertook in 2020, a lot -but not all- of these problems were solved.
Here is an overview of the complete circuitry:
Definitive pipes as made, tuned and measured:
freq | 1/4 lambda | f0 | f1 | f2 | f3 | l/d | L | De | Di | SPL | Spkr | L1 | U-length | L2 | Le | |
22 |
29.135 | 2956 | 29 | 58 | 117 | 233 | 23.6 | 2879 | 125 | 119 | 89dB | GW-205/85 40 W | 1639.3 | 430 | 712,1 | - |
23 | 30.868 | 2790 | 31 | 61 | 122 | 244 | 22.32 | 2713 | 125 | 119 | 90dB | LPB130 Nokia 4 Ohm 25 W | 1528.6 | 430 | 856.6 | - |
24 | 32.703 | 2634 | 33 | 66 | 132 | 264 | 21.07 | 2557 | 125 | 119 | 90dB | LPB130 Nokia 4 Ohm 25 W | 1424.6 | 430 | 604.8 | - |
25 | 34.648 | 2486 | 35 | 70 | 140 | 280 | 22.83 | 2420 | 110 | 106 | 90dB |
PioneerTS-130CI 4 Ohm 25 W |
1390.5 | 315 | 616.5 | - |
26 | 36.708 | 2346 | 37 | 74 | 148 | 296 | 21.51 | 2280 | 110 | 106 | 90dB | LPB130 Nokia 4 Ohm 25 W | 1300 | 315 | 572.5 | - |
27 | 38.890 | 2215 | 39 | 78 | 156 | 312 | 20.27 | 2149 | 110 | 106 | 90dB | BMW 4 Ohm 25 W | 1212.5 | 315 | 528.7 | - |
28 | 41.203 | 2090 | 41 | 82 | 164 | 328 | 20.90 | 2028 | 100 | 96 | 90dB | ITT LPB128 4 Ohm 25 W | 1133.6 | 310 | 489.3 | - |
29 | 43.653 | 1973 | 44 | 88 | 176 | 352 | 19.73 | 1911 | 100 | 96 | 90dB | LPB128 8 Ohm 20 W | 1150 | 316 | 250 | 195 (140+55) |
30 | 46.249 | 1862 | 46 | 92 | 184 | 368 | 18.62 | 1800 | 100 | 96 | 90dB | LPB130 4 Ohm 25 W | 1600 | - | - | 195 (140+55) |
31 | 48.999 | 1757 | 49 | 98 | 196 | 392 | 20.29 | 1705 | 90 | 84 | 92dB | LPB128 8 Ohm 20 W | 1575 | - | - | 130 |
32 | 51.913 | 1659 | 52 | 104 | 206 | 412 | 19.13 | 1607 | 90 | 84 | 93dB | ITT LPB120 8 Ohm 20 W | 1477 | - | - | 130 |
33 | 55.000 | 1566 | 55 | 110 | 220 | 440 | 18.02 | 1514 | 90 | 84 | 93dB | LPB128 8 Ohm 20 W | 1394 | - | - | 130 |
For the calculations the velocity of sound was taken as 344 m/s, for a temperature of 21 degrees Celsius. Note that with this mensure the cross section surfaces of the lowest and highest pipes relate to each other as 2:1. (11122 mm2 versus 6361 mm2). All speakers are used below their resonant frequency if the fundamental is sounded.
The electronic circuitry consists of a midihub board containing a MIDI parser,
and the controls for the lights. Next we have four tone-generator boards each
generating three notes. For these boards we used 16 bit PIC processors designed
for steering motors in three phases. Thus we could implement three channels
of independent pitch generation with full ADSR control on each board. This is
the circuit:
The component
values for the note filters are different for each opamp. They were calculated
using an online filter calculator by Analog Devices. The -3dB frequency was
calculated for 8-times the fundamental frequency. The -12dB point at twice this
frequency. The envelope filters are dimensioned for a cut off frequency at 40Hz.
All resistors are 1% precision, but for the capacitors we had to live with 5%
due to unavailability of precision capacitors on the market. (For inductors,
the situation is even worse, as common tolerances are no better than 20%). In
the circuit drawing given above, the values shown are for the notes 22, 23 and
24. The resolution for the ADSR-channels is 16 bits and the envelope sampling
rate 1800 samples/s. There is no audible leak-through of the sampling frequency
in the output signal. The dynamic range is user selectable from 20dB to 60dB
in 10dB steps. The mapping of the midi values (0-127) on dynamics are always
logarithmic. The most recent source code for these four boards can be found
under these links:
The hex-dumps are available as well. These can be uploaded in the microcontrollers using MPLAB and a PICkit-3 programmer (Microchip). If you really want to get some understanding as to how this instrument works, we strongly advise you to pay the effort to study the source code. We did an effort to document it pretty well. Notwithstanding this, a close reading of the Microchip programmers manual for the 24/33EPxxxMC202 microprocessors may be required before you attempt to change anything in the code.
Hybrlo_22_24.hex | Hybrlo_25_27.hex | Hybrlo_28_30.hex | HybrLo_31_33.hex |
As we wanted quite a powerful sound we used >20 W loudspeakers to drive the PVC tubes. We used recycled 135 mm chassis speakers as commonly used in quality cars produced between 1980 and 1990. (Hence the 4 Ohm impedance of most speakers). This made a twelve channel audio amplifier a requirement. We succeeded in designing these 12 channels on a single Eurocard board, cut in two halves. We used six TDA7264 stereo amplifier chips rated for 2 x 22 Watt each. Note that we are using all speaker drivers at frequencies below their resonant frequency. There is a risk of overloading the speakers, not because of too much electrical power but rather due to excessive mechanical excursion of the 110 mm cones at resonance with the air columns. At the one hand, using speakers below their resonant frequency lowers their efficiency a lot, but then at the other hand, using them with a tuned resonator makes up for the loss in efficiency. To finish it all up, we had to design the required power supply circuits as well. For the amplifiers we used a classical analog power supply with a 225 Watt toroidal transformer (2x 12 V). All amplifiers are mounted on a common heatsink. Note that the heatsink carries the -15 V power and is not insulated from ground! In order to limit power consumption and heat developed on the heatsinks, users are advised to always use the power-off controller (#66) when the instrument is not playing. This fully mutes all amplifiers without really turning the power off.
Midi implementation and mapping:
Midi channel: 8 (counting 0-15) [same channel as <Hybr> such that it
can use a same track in sequencer software and be treated as a single instrument.]
Note Off: notes 22 to 69, note release implemented.
Note On: notes 22 to 69, velo implemented.
Lights:
The lights are mapped on the note range 0 to 3. The velocity byte steers the flashing speed. With velo=127, the lights will be steady ON. Flashing speed can be modulated with the key pressure command.
Controllers:
In 2020, we upgraded the firmware for this robot. The controllers implemented have undergone some changes. Here is the newest implementation. For reference, and for updating older midi-files and/or software using <HybrLo>, the previous implementation can be found in this archive file: hybrlo_V1.html
number | function | default setting / remarks | |
#1 | Frequency jitter | noisiness of the sound. 0 by default | |
#7 | Global sustain level | this controller cannot be used to change volume for sounding notes. If you want to do that, channel aftertouch should be used. | Overrides individual settings |
#14 | Global waveshape | 127 (corresponding to 50% duty cycle wave) Cannot be used to change the waveform for sounding notes. If you want to do that, key pressure commands should be used. | overrides key pressure settings for individual notes |
#15 | ADSR-period | setting 127 corresponds to a period of 1.2 seconds [default = 51, for 512 ms] | |
#16 | Global attack time | 0 - 127 of the time set by #15 | |
#18 | Global decay time | 0 - 127 of the time set by #15 | |
#19 | Global release time | 0 - 127 of the time set by #15 | |
#20 | Tuning | Global tuning (range, a quartertone up or down). Default value 64 for A= 440 Hz (*) | not yet implemented |
#30 | flashing speed lights | Sets the flashing speed for all implemented lights. (Notes 0 - 3) | |
#66 | power on / off | power off resets all controllers to default values. It also mutes the amplifiers. | |
#69 | lights automation | switch: on (> 0) or off (0) ON by default. The value selects the lights mapping. | Light shows 1 to 7. (**) |
#80 | dynamic scaling | 20dB - 30dB - 40dB - 50dB - 60dB [default is 30dB, midi value = 32] | |
#90 | highest note limit | this controller can be used to limit the ambitus. The parameter is the highest note limit. | 22-69, default value 69 |
#94 | sustain level note 22 | this controller can be used to steer volume during the sustain phase | applies to all Bb's |
#95 | sustain level note 23 | this controller can be used to steer volume during the sustain phase | applies to all B's |
#96 | sustain level note 24 | this controller can be used to steer volume during the sustain phase | applies to all C's |
#97 | sustain level note 25 | this controller can be used to steer volume during the sustain phase |
applies to all C#'s |
#98 | sustain level note 26 | this controller can be used to steer volume during the sustain phase (***) | applies to all D's |
#99 | sustain level note 27 | this controller can be used to steer volume during the sustain phase (***) | applies to all Eb's |
#100 | sustain level note 28 | this controller can be used to steer volume during the sustain phase (****) | applies to all E's |
#101 | sustain level note 29 | this controller can be used to steer volume during the sustain phase (****) | applies to all F's |
#102 | sustain level note 30 | this controller can be used to steer volume during the sustain phase | applies to all F#'s |
#103 | sustain level note 31 | this controller can be used to steer volume during the sustain phase | applies to all G's |
#104 | sustain level note 32 | this controller can be used to steer volume during the sustain phase | applies to all G#'s |
#105 | sustain level note 33 | this controller can be used to steer volume during the sustain phase | applies to all A's |
#123 | all notes off | silences all notes but leaves controllers unaffected. |
If <HybrLo> is replacing <Bourdonola> in existing midi files, setting controller #90 to 62 will do. If it is used as a mere bass extension of <Hybr>, the controller could be set to 33.
(*) If the tuning
is set much different from 440Hz, the overall amplitudes will be affected, unless
tuning follows the changes of resonance frequencies as a result of temperature
changes. The range is a quartertone up or down. Parameter value 64 equals
A=440Hz)
(**) For detailed information, look into the PIC
source code, in particular, lines 635 - 709.
(***) 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. If that
is the case, the command is followed by ctrl. #6 for the parameter value and
ctrl.#38 for the fine adjust value.
(****) In many sequencer programs, controllers 100 and 101 are treated as 'RPN':
registered parameter number. Both controllers are then handled together as a
16 bit controller, where ctrl.101 holds the MSB and 100 the LSB.
To understand the different parameters and controllers available in this robot, a close look at the following graph might help:
All levels are scaled on a log scale selectable with controller #80. Followings scales are implemented: 20dB, 30dB, 40dB, 50dB, 60dB. .
Key pressure is implemented for all notes in the ambitus of the instrument and used to modify the waveshape of the drive signal. By default, key pressure it set to 127, corresponding to a 50% duty cycle wave. Key pressure commands can be sent at all times and do not require the note(s) they refer to, to be sounding. Key pressure commands are sticky: they are not reset with a note-off. Power off (ctrl.#66) will reset all settings to 127. The waveshape in use can also be globally controlled with controller #14. It will also change for different program change commands. For the lights (mapped on notes 0 to 3) key pressure commands change the flashing speed for the lights that are turned on.
Channel aftertouch: Since version 2.0, this is implemented for the notes within the ambitus. It applies to all notes sounding on the moment the command is issued. A 'standard' use is to obtain a general crescendo or diminuendo on sounding chords.
Pitch bend is not implemented on <Hybrlo>
Program Change: This command can be used to select a few different controller presets.
Prog.# | name | remarks |
0 | default | optimum velocity values: 64 |
1 | plucked | ideal velocityvalues: 100 |
2 | nasal slow | velocities < 80 |
3 | organ | velocities @ 40, for a sound similar to <Bourdonola> |
4 | sharp | velocity is pretty irrelevant here |
Note that sending program change commands whilst notes are playing, can lead to unpredictable results at times. So this should be avoided. Sending an all-notes-off command followed by the program change command for the selected preset will always work.
All level related controllers follow a logarithmic scaling from 0dB to -60dB (depending on the setting of controller #80).: The -60dB scale applies to a controller #80 setting to 127.
As the processor used here has 16 bit PWM resolution, the 0dB reference corresponds to 2^16. Note that we use output voltage units (VU) here and not sound pressure levels according to a dBA scale. .
Music composed for <HybrLo>:
Godfried-Willem Raes 'Bottom Boot' , a once only namuda performance for an
unfinished HybrLo robot (15.09.2016, premiered by Emilie De Vlam and the author)
Here is an MP3 of this piece...
Kristof Lauwers, 'Study #20 for HybrLo' (2016)
Godfried-Willem Raes 'Lithos' (act1 in Technofaustus) with a special interactive
part for HybrLo.
Godfried-Willem Raes 'Namuda
Study #61: Family Completed'
Back to Logos-Projects page : projects.html | Back to Main Logos page:index.html | To Godfried-Willem Raes personal homepage... | To Instrument catalogue |
Construction diary:
01.07.2016-16.08.2016: Study of the PIC 24EP128MC202 microprocessor. We will
use this type to generate 3 notes and 3 independent ADSR's. So for a 12 note
instrument, we could have enough with 4 boards. Comments on the firmware development
can be found in the header of the sourcecode files. For code development we
are using the Proton24 compiler and a PicKit3 programmer/debugger.
20.08.2016: Circuit and PCB designed for the 12-channel audio amplifier to drive
the speakers. The power supply for all these amps together should be rated +/-
15 V - 8 A. (120 VA should be enough). Here is the PCB:
The chip amplifier used on this board is TDA7264. There is a separate volume
potentiometer for each channel (Bourns 10 k log). Amplifier gain for each amp
is 30 dB. We provided in a muting input for all amplifiers together.
21.08.2016: 12-channel power amp PCB finished: etched, drilled and soldered,
apart for some missing components that we had to order. Test and evaluation
board etched for a 3-channel synth using LC filters. The final version to be
used for HybrLo ought to have active filters though. Start design for the PCB
holding the tone generators.
22.08.2016: Further soldering work on the amp- and test/evaluation board. Test
board using LC filters finished. Results evaluated: we have excessive noise
stemming from the ADSR channel. First of all, the PWM should be disabled at
the end of the release phase of a note. Second: we have to recalculate the LF
filters with the actual values soldered in place. The eternal problem here is
the impossibility to get precision capacitors in the range 1uF to 47uF... However,
the ADSR implementation seems to perform well. There seems to be no way beyond
the use of active filters.
23.08.2016: Test and evaluation board finished. Signal noise ratio is not too
great with ca. -40 dB. Here is the circuit drawing with measurement results:
The noise at
the output stems from the AD633 multiplier. The noise level remains the same
with the inputs shorted. Here is a picture of the finished board: There
are better multipliers on the market, but they are a lot more expensive... This
is a scope image of the audio output on two channels, with ADSR applied:
Missing components soldered on the 12-channel amplifier board.
24.08.2016: First working version for the firmware ready and tested. This code
serves notes 22, 23, 24 and their octaves 34, 35, 36. Continued work on the
PCB design for these boards. The active filter components can be calculated
with the on-line utility made available by Analog Devices. OP27 low noise precision
opamps will be used for these filters.
25.08.2016: Measurements and experiments carried out to make a good sounding
pipe resonator for the lowest note (midi 22, or 29.13 Hz) using 125 mm diameter
sewer pipe. It would be a good idea to give the pipes a flared end.
26.08.2016:Test pipe made as follows: 1 straight tube 1440 mm , 1 elbow 200
mm, straight piece 70 mm, 1 elbow 200 mm, 1 straight length 969 mm, so total
pipe length becomes 2879 mm. Taking into account the end correction this gives
an acoustical length of 2956 Hz. The Q-factor of the tube is not very high,
making it quite difficult to find a very exact tuning. In any case this works
pretty well when driven with a 4 Ohm speaker at 29 Hz (Our tonegenerator has
a readout with a resolution of only 1 Hz...). If we stick to 135 mm chassis
loudspeakers, it looks like we will have all speakers in stock.
27.08.2016: PCB's for the midi hub board and a first Pic24 with active filters
board etched. First tests with components for note 22.
28.08.2016: Some corrections made on the PCB for the active filter board. PCB
etched, drilled and start soldering components. Running out of photosensitive
Eurocard PC boards, so new order placed at Farnell.
29.08.2016: All filter values calculated and optimized for low noise using the
online Analog Devices utility. Code for hub board v1.0 finished. Hybrlo channel
decided to be 8, so same as Hybr and HybrHi. If we want to avoid the note overlap,
we should use this robot on a different port. E96 series resistors are no common
place at Farnell... Many essential values are missing in their assortment. Decided
to use OP27 opamps for all the filters. OPA627 would be overkill taking into
account the noise produced by the multipliers...
30.08.2016: Further design of the instrument. Waiting for components from Farnell.
Test pipe made for note 23. Two tone generator boards finished now, with the
components for the active filters. PCB design for the next two boards improved:
the film capacitors take more space than we anticipated... The signal/noise
ratio appears to be a lot better than what we feared.
Two more corrected PCB's
etched. Drilling will be for tomorrow...
31.08.2016: All drilling done. All components soldered in. The PCB's are all
ready for testing and programming now. Midi controllers to be implemented worked
out. There will be a wealth of them... We will implement key-pressure to modulate
the waveshape. Continued work on the firmware for the sound generator processors.
01.09.2016: GMT code written for testing all the boards. The test code is integrated
in the GMT-cockpit for <Hybr>. All note generator boards programmed and
tested with the oscilloscope. Source code and hex-dumps for the microcontrollers
uploaded to the Logos website. Start construction of the pipeholder -hardly
to be called a windchest in this case- from 25 mm thick PVC. The holes for the
pipes have to be sawn out with a jigsaw, as we do not have round saws large
enough. Start design of the chassis and the wheel base.
02.09.2016: Continuing work on the windchest. Missing PVC pipe material ordered.
Welding works on the chassis: stainless steel profiles 50x50x2 and 50x30x2.Wheels
mounted on the corners: these wheels have also horizontal rollers. Two wheels
have brakes. Running out of M10 x 100 bolts: up to MEA. Experiments with small
woofers (90 mm cones) recycled from Aciko small loudspeaker enclosures performed.
The cone excursion is too small and they produce a lot of distortion. Here are
some pictures of the works progress:
As you can see,
quite a way to go still.. It would be a good idea to have the pipework completely
removable. The amplifiers and their power supply ought to find a place underneath
the instrument. Front row with five pipes drawn out on the windchest. Drilling
and sawing is for tomorrow... Works in progress shown to Tim Deurinck, Xavier
Verhelst and Kristof Lauwers. No further disclosure yet.
03.09.2016: All holes in the windchest sawn out. Start mounting of the speakers.
04.09.2016: All speakers mounted with 4 M4 x 50 countersunk bolts and nuts,
just to test functionality. Spacers required for the 90 and 100 mm tubes as
the cones touch the rims of the tubes. A workshop cleanup becomes mandatory
now, as we run out of space to comfortably continue the works on this robot.
Heatsinks mounted on the power amps. Note that these are not insulated and carry
the -15 V voltage! Bottom plate holding the amps finished.
There will be enough space underneath to place the tone generator boards as
well. Thus only the midi-hub board ought to be placed on the upperside. Suffering
a lot from my backbone hernia, as much of the work is so low to the ground and
the construction is getting too heavy now to lift it up easily...
05.09.2016: Start mounting of the tone generator boards on the bottom plate.
Assembly of the power amp power supply. Mains entry with IEC sockets mounted
on the back side. First wiring up.... As
it comes out, we brought ourselves into trouble with the central mounting bar
for the windchest. With the wiring, it would be very tricky to remove it. We
might have to mount connectors for the speakers and the power supply such that
it can be taken apart without unsoldering.
06.09.2016: First tests: The power supply is working as it should. Open voltage
without load is -18 V and +18 V.
The speakers will be wired with individual connectors for each loudspeaker pair:
4-pole IMO or Weidmueller. Color coding will be applied to the wiring.
22 | black |
23 | brown |
24 | red |
25 | orange |
26 | yellow |
27 | green |
28 | blue |
29 | purple |
30 | gray |
31 | white |
32 | yellow/black |
33 | pink |
Waiting for the M3 shock absorbers to come from Farnell. (Ettinger, Farnell
order code 1466989)
06.09.2016: Start wiring of the loudspeakers. Finishing the board assembly of
the underplate as the shock absorbers came in today. Missing PVC pipes and pieces
ordered from Audenaert.
07.09.2016: Construction of the holding chassis for the midi-hub and parser
board. This board will get a protective polycarbonate cover plate as the board
carries mains voltage. A bug found and killed in the synth board firmware: the
mute logic was inverted! Half of the wiring of the board holding chassis finished.
We forgot to mount connectors for the mute logic...
10.09.2016: Continuing wiring on <HybrLo>. As we forgot to provide connectors
for the mute inputs on the amplifier PCB's we have to use wires leaving the
boards directly... Holes
drilled for the wires going to the midi hub board.
There would still be some space left for a small 12V SMPS to power some lights...
The mosfets for these are as yet not mounted on the hub board.
11.09.2016: Wiring in principle finished. First tests become possible... A smoke
stack appeared on power up. Amplifier power supply appears shorted, fuse melt
down. The third TDA7264 exploded... Careful examination of the soldering of
the third amplifier (notes 26-27) revealed a short between an input pin and
the +15V power line. We replaced the TDA7264. The board now draws (unmuted)
240 mA running off a +/-15 V bench power supply. This means 80 mA per amplifier
which seems normal. The data sheet gives no data with regard to this parameter.
All amps appear working now. Making a setup for the tests with MIDI control...
The mute polarity needs an inversion. Furthermore there must be some wiring
errors as note 22 does not come from the speaker we wanted... work to clear
out. However, the first notes did sound already!
12.09.2016: Continued debug work. PicKit3 installed in the workshop for ease
of programming. Wiring
of the connectors was all wrong but we got it all corrected now. All PIC microcontrollers
reprogrammed. First sounds demonstrated for Moniek Darge and Kristof Lauwers.
Wave shape control seems not to be working for some reason. The six highest
pipes are fully tuned and working now. Waiting for 110 mm and 125 mm diameter
PVC pipe to flow in...
The pipes in the picture are made from recycled material. The gray ones (90
mm and 100 mm diameter) are definitive already. Fortunately our workshop has
quite high ceilings... The volume controllers for the individual notes are absolutely
not meant to be operated by users. They are trimmers and changing their settings
will endanger the instrument as well as bringing it completely out of balance.
Hub board PIC reprogrammed: now key pressure is working fine.
13.09.2016: Hybrlo implemented in the GMT coding for the robot orchestra. Controller
#15 added for global waveshape control, overriding individual settings with
the key pressure command. Test code for scales added in the GMT test application
for <Hybr>.
14.09.2016: Sawing of 10 mm thick standoff rings for the loudspeakers, as the
cones tend to make contact with the windchest plate. First coding experiments
using Namuda technology.
15.09.2016: Preliminary presentation of <HybrLo> to the audience in our
'Cold Boot' concert. Performance by Emilie De Vlam.
16.09.2016: Robot disassembled again, to mount the 10 mm loudspeaker standoff's.
A hole day of work... The
ordered PVC pipes still did not come in.
17.09.2016: White LED strip mounted on the underside of the chassis. This appeared
to be a big mistake, as the strips we used are not insulated on their underside...
Thus we had to stick them to the edge of the polycarbonate plate protecting
the potentiometer axes. 12 V Vicor SMPS (0.83 A) glued to the underside (PVC
glue). LED 12 V spotlights mounted on de upperside, pointing upwards. All lights
decided to be white, mapping on notes 0,1 and 2. Noticed a strange behavior
on startup: all speakers give an ugly signal for about 2 seconds on cold boot.
We will have to find a remedy in the PIC24 firmware. Two speakers got a small
bump on the inner dome of the cone. We repaired them with a needle and than
closed the punched hole with some red Loctite silicon compound: This
slightly lowers the resonant frequency of the speaker.
18.09.2016: Finalisation of the soldering of the midi-hub board: placement of
the power Mosfet's. Bright yellow power LED added on the board. The lights should
be working now. Firmware for the hub board adapted. Milling the polycarbonate
protective plate over the hub board.
Test code added in GMT. It all works fine now.
19.09.2016: An easy way to stabilize the pipes could be something like this:
Five frontal pipe
feet glued for good using PVC glue.
20.09.2016: Searching for possible replacement parts for the speakers. Four
Dayton DS115-8 4" speakers ordered from Parts Express. Visaton SC13-8 (Reichelt)
could also be a candidate. We will add a table with possible alternative speakers
in the maintenance section at the bottom of this webpage. Further work on the
firmware for the note generator boards. Release-not-working bug found and killed.
Board for notes 22-24 reprogrammed. Code modified such that waveform modulation
during a note is now possible using the key pressure command.
21.09.2016: All synth boards reprogrammed. Start implementation of the MIDI
program change command, to simplify presets for the users: we could have a Pizz
bass, a string bass, an organ bass, a sfz bass etc... preset. Still waiting
for PVC to flow in... Stuck on deliveries.
25.09.2016: Missing 100 mm PVC pipe fitting found on the flea market. Base for
pipe 28 finished. Pipes 22 to 27 remain to be done...
05.10.2016: Users manual for the robot lights
updated with instructions for HybrLo. Still stuck on deliveries to continue
work.
07.10.2016: All pipe holders glued to the windchest plate. Tubes diameter 110
mm sawn to size. Still no supply of gray 125 mm diameter PVC pipe and MF-elbows.
These are required for notes 22, 23, and 24. Trying to find someone with a car
to get more tubes at Deschacht, Antwerpse Steenweg... Start making of the U-bends
in the pipes. Only the seven lowest pipes will get a U-bend. Inventory of missing
parts: 5 elbows diameter 125 PVC or 6 MF elbows, glue mount. 3 meters of diameter
125 gray PVC pipe. All pipes finished so far, labeled with Dymo labels for ease
of mounting.
08.10.2016: Up to Deschacht to get the missing PVC pipes and elbows, with Peter
Van Lancker. Pipe work in principle finished now, apart from some minor aesthetic
issues. First tests with all pipes cut to size and tuned. Some U-turns may need
a bracket to keep them perpendicular. Oddly enough, standard PVC elbows do not
make right angle degrees but rather 87 degrees angles.
The picture was taken in our workshop during construction.
09.10.2016: Fine tuning and minor corrections on pipes 29 and 30. Pipe 29 lengthened
a bit and pipe 30 given a single elbow on its end. Firmware for all 24F PIC's
upgraded: now pwm changes are no longer immediate but performed after each PWM
cycle. Program changes implemented in this firmware as well.
10.10.2016: Firmware greatly improved. Now modulation of volume during a sounding
note is made possible. All levels now make use of a 40dB log scale. Pipes for
notes 31, 32, 33 given an elbow on the top. It just looks better...
11.10.2016: Considering to extend the note range with 3fo and 4fo pitches...
Tried out. We implemented every note now in 4 octaves, thus the range of the
instrument becomes 22 to 69. However, keep in mind the instrument remains limited
to 12 note polyphony and octaves are mutually exclusive. With this range <HybrLo>
can be used as a full and extended replacement for <Bourdonola>. Controller
#90 implemented on the hub board, to allow easy limiting the ambitus. <HybrLo>
placed in the robot orchestra for first evaluations and tests:
Awaiting feedback...
12.10.2016: All levels and volumes now have a 40 dB range and full log scaling.
Elbow added on pipe 29. The 40 dB scale after all does not fulfill our expectations.
So we changed it back to 60 dB. All level related parameters now make use of
this logarithmic scaling.
13.10.2016: Frequency uncertainly introduced in the firmware and implemented
for controller #1. This models acoustical sounds much better than pure periodicity.
In fact we modulate the duration of the off phase in the oscillators. Thus the
on-pulses are kept constant for any given frequency. As a consequence the spectrum
stays more stable than in the case we would have randomized the entire period
as such. Scaling for attack and decay reduced to 206 ms. Release time kept with
a range of 0-512 ms on request of Kristof Lauwers. Pleased with the result now...
14.10.2016: Finalizing the five presets in the firmware after extensive testing
of the parameters by Kristof Lauwers. Firmware upgraded again.
26.10.2016: Photosession with HybrLo...
16.09.2018: HybrLo is replacing Bourdonola in all robot orchestra concerts up
to the end of October, as Bourdonola is off to Manchester. Midi files adapted
accordingly.
07.12.2020: a bug discovered in the PIC 24EP code: reading 32-timers with TMR2
and TMR3 must use TMR3HLD to read the msb, not TMR3 directly. This bug was found
in all projects using this chip since 2016: <So>, <Autosax>, <Flut>,
<Hunt>, <Bug> , <Pi> and <2Pi>. Fortunately we can reprogram
the PIC's without disassembling the instrument!
14.12.2020: Revision of the IC 24EP firmware. Controller 100 added to change
the dynamic lookup tables. Later changed to controller 80, for compatibility
with many other robots.
15.12.2020: We see further improvements possible... however, if we implement
these fully, <HybrLo> becomes a version 2 robot as we will loose full
compatibility with existing midi-files and applications.
16.12.2020: A new version of the firmware ready now to be tested on the hardware...
17.12.2020: Everything seems to work again glitchfree. Documentation adapted
and brought in tune with the firmware implementation again. Berekende waarden:
bij CC15 @ 127 is Timer2=ADSR_period= 112 + ((127+1) <<4) = 2160 ==> 9.1238
ms. Bij aan adsr-setting van 127, geeft dit een ADSR-sektie duur van 1.1678
s. Minima: bij CC15 = 0 is Timer2=ADSR_period = 112 + 16 = 128 ==> 0.54 ms.
Bij adsr set to 127, geeft dit dan een ADSR-sektie duur van 69 ms
18.12.2020: Alle PIC's opnieuw geprogrammeerd. Testkode in GMT voor <HybrLo>
afgesplitst van die voor <Hybr>. Eerste tests met bestaande midi bestanden
met een partij voor <HybrLo>: in het bestand voor 'La Cambiada' (Di Giusto)
dienden we juist de velocities (ze stonden allemaal op 40) te verhogen tot 120.
De ADSR-period kontroller (#15) stelden we in op 32.
19.12.2020: Channel aftertouch implemented. However, this entailed an upgrade
of the firmware on the midi-hub board. At that occasion we discovered a bug
in this firmware: it did'nt pass program change commands, thus explaining why
the presets did not have any effect on HybrLo... This problem is by now solved.
20.12.2020: Light automation added on the hub board.
21.12.2020: Six different light shows added, selectable with controller #69.
10.01.2021: Extra 24EP board gemaakt voor research doeleinden. Polo-film van
het ontwerp 30.08.2016 hiervoor gebruikt.
24.03.2021: Note 25 (C#) failure. We presume the loudspeaker (LPB128-4 Ohm)
to be burned out. It was a 20W type.
25.03.2021: Search for a replacement speaker: JBL Club 5000C, or Pioneer Woofer?
26.03.2021: Two pioneer speakers TS-130CI came in. We thought we ordered only
one, but apparently they come as a pair... Advertised as 130W ('max. music power',
you know...), they look like they can handle at the very most 10W sine wave...
DC resistance of the voice coil is 3.33 Ohm. Nominal impedance: 4 Ohm.
27.03.2021: JBL Club 5020 speakers ordered. Advertised as 120W... but 40W would
be great. Impedance is only 3 Ohms. They should come in monday 29th...
23.06.2021: Note 25 repair session: the speaker was found to be burned out.
We replaced it with a Pioneer speaker (TS-130CI) .. We would have preferred
to use the LBL Club 5020 speakers, but these have cones that stick out way too
much such that mounting them became impossible. They are designed for mounting
on the backside, something only possible if mounted on thin plate material such
as in a car. This repair session was done with Mattias Parent and Bert Vandekerkhove.
Godfried-Willem Raes just supervised the repair.
27.09.2021: After playing uninterrupted for 25 days in the exhibition at the
SMAK museum, <HybrLo> returned to the robot orchestra in perfect condition.
02.08.2023: <HybrLo> is doing fine, but we upgraded the midi-specs as
we found them not clear enough. Found out that ctrl.14 does not work during
and for playing notes. Key pressure works as documented.
14.09.2023: <HybrLo> transported to Berlin for the performances of 'Zeroth
Law' by Gamut Inc. at the Deutsche Oper, Tischlerei.
02.10.2023: <HybrLo> reurned from Berlin. Note 27 found to be defective...
Damage through transportation or overload in Berlin? We will have to find out...
11.10.2023: Checking out <HybrLo> to find out nothing went wrong, except
that someone must have turned down the trimpots on the frontside... Readjusting
the volumes of all pipes is indicated now. Done.
TO DO:
Maintenance information:
Circuit diagrams:
General overview:
Power supply:
Transformer: MCTA225/12, Farnell order nr.9532790.
Note generator and filter boards:
Amplifier boards:
Midihub and parser board:
PCB's:
Note generator boards with active filters and multipliers (Eurocard size: 100 mm x 160 mm, single sided PCB):
These boards are mounted op the bottom plate with M3 male-male shock absorbers as stand off's.(Ettinger, Male-Male, Farnell order code 1466989).
Amplifiers PCB's: (at 200%)
Loudspeaker sizing:
Critical evaluation:
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
Raes, Godfried-Willem , Expression
control in musical automates
Raes, Godfried-Willem, <Hybr>
Raes, Godfried-Willem, <HybrHi>
Raes, Godfried-Willem, 'Logos @ 50, het kloppend hart van de avant-gardemuziek in Vlaanderen' (ed. Stichting Kunstboek, Oostkamp 2018)
Maintenance and disassembly instructions:
Before undertaking any repair on this robot we strongly advise to first read
through our construction diary, as this will clarify fully how the machine was
originally designed and assembled.
If the machine has to be taken apart, perform following steps:
1.- remove all the pipes. On replacing them, apply a thin layer of Vaseline
to the bases.
2.- Place the machine upside down on two stands. Make sure it doesn't rest on
the midi-hub board.
3.- Loosen the four long M10 bolts that hold the bottom plate together with
the windchest.
4.- Loosen all four 3-pole Weidmueller connectors carrying the 5 V and MIDI
lines.
5.- Loosen all six 4-pole Weidmueller connectors that connect the speakers to
the amplifier board. Note the order! The wires are color coded.
6.- Loosen the wires that feed the mains voltage to the MIDI hub board.
7.- Now the underplate can be fully removed and serviced. The processor boards
and amplifier boards can now be taken apart.
Loudspeaker replacement possibilities:
brand / type nr | P | fres | dB | range | impedance | price | source | notes |
Visaton VIS SC13-8 | 40 W | 78 Hz | 90 dB | 8 Ohm | 21.7 Euro | Reichelt | ||
Dayton DS115-8 | 35 W | 55 Hz | 60-8000 | 8 Ohm | 14 $ | Parts Express | ||
Visaton VIS FR13-4 | 30 W | 100 Hz | 65-20000 | 4 Ohm | 11.45 Euro | Reichelt | ||
Axton ATF130 | 70 W | 90 dB | 70-25000 | 4 Ohm | 49 Euro | Bol.com | 23 Euro bij Amazon | |
JBL Club 5020 | 40W | 3 Ohm | 55 Euro | protruding cone! | ||||
JBL Club 5000C | 55W | |||||||
Pioneer TS-130CI | 25W | 47-6000 | 4 Ohm | 22.50 Euro | Bol.com |
Lights:
Robody picture with <HybrLo>:
Candidates? Welcome!
[EOF]