Microtonal Musical
Robot
Research project on
the development of new tools for musical expression at the University
College Ghent

|
|
<Korn>

an experimental moving Bb cornet
dr.Godfried-Willem RAES
2008-2009
|
This musical robot belongs to the category of our more experimental instruments.
The experiment was not so much an attempt to realistically automate an existing
instrument, although it does in fact make use of an old Bb cornet and there
is an attempt to get a realistic cornet sound. In this case however, we did
not start with a mechanical design for an artificial embouchure with mouth,
lips and mouthpiece coupled to and in acoustic interaction with the tubing of
the instrument, as we have done in <So> and <Bono>, but rather used
a small motor-speaker compressor directly coupled to the cornet via a capilary.
The motor driver causes resonance in the cornet tubing, but in this case there
is no real windflow through the instrument. When a note is requested from the
cornet, the firmware will calculate the optimum valve combination -including
non orthodox fingerings- for the requested pitch. Microtonal pitches are implemented
such that the instrument is capable of performing quartertone music, as well
as a wide range of different tunings and temperaments with great perfection.
The relatively low Q-factor of the horn (compared to strings...) as an acoustic
resonator renders this very well possible. The signal generated in the motor
was shaped after a physical model of the air pressure waveform in the mouth
cavity of a player. Since there is no loop coupling from the resonator to the
generator, the sound generation mechanism is a hybrid somewere between synthetic/electronic
and natural/acoustic. The advantage being that the reliability of the robot
becomes very high, but this is obtained at the detriment of realism.
The valves are used in this instrument to tune the fundamental frequency of
the instrument. The valves can be controlled independently from the mouth driver
frequency. They are mechanically driven by unipolar solenoids (Lucas-Ledex types
as used in our player pianos) and have a return spring. Bi-directional solenoids
would have been superior (read faster and more silent in operation due to the
absense of return springs) but we just did not have enough mounting space in
this rather small instrument.
High brass instruments in their normal human biotopes tend to move quite a
bit in space. The highly directional characteristic of these instruments make
this also an expressive valuable parameter. Thus we tried to implement movement
in two degrees of freedom in this robot: the cornet can be tilted in the vertical
plane over an angle of about 90 degrees and in the horizontal plane, it can
rotate over 180 degrees. This conforms pretty well to what human players do
in terms of movement on stage. The movements cannot be very fast however. The
intention never was to render Doppler effects possible...
The electronic circuitry consists of four PC-boards:
1. Midi-hub board: This board, using a Microchip 18F2525 controller, takes
care of the Midi I/O handling and communication as well as the control of some
of the the lights and the movement of the horizontal movement stepping motor,
including the two end sensors. For these we used two microswitches with long
springsteel needles. Circuit details can be found at the very end of this webpage.
2. Horizontal stepping motor driver board using an industry standard LM18298
dual full-bridge driver IC. 
3. Pulse & Hold board: This board steers the three solenoids for the pistons
as well as the vertical movement stepping motor. Component population on the
board was modified to accomodate for required position sensors for the motor
movement. For position sensing in the vertical plane we used a beautyfull antique
mercury switch with 3 contacts. This switch has a glass tube in a circular shape
filled with mercury. It is designed rotate over its 6mm axis.
The light
bulbs and LED's mapped on the midi notes 124 to 127 are also controlled by this
microprocessor board.
4. Sound generator board: This board, using a microchip ds-PIC 30F3010, steers
the 15 Watt motor compressor horn driver. Note that the output transformer forms
a tuned circuit, tuned to the formant band of the cornet (1.8kHz). The transformer
at high sound pressure levels, operates close to saturation, thus causing a
formant shift upwards. When a coil gets into saturation the inductance decreases.
This clearly non-linear behaviour of the circuit was part of the design.

The wave forms generated in the firmware on the pwm1 and pwm2 outputs of the
controller are PWM based modified sinewaves in opposite phases. The carrier
frequency is around 20 kHz.
Power supply voltages and currents:
- +12 V dc (5A) for the valve solenoids, sound driver and lites
- -18 V dc (5A) for the valve solenoids
- +5V/ 1A for processor boards
- +9V/ 2.8A for the horizontal stepping motor

Midi Mapping and implementation:

Midi channel: 12 (fixed in the firmware)
Midi note range: 52 to 94. (Optimum sound in the range 66-89) Note on, velocity
is implemented and has a wide control range. The most realistic sounds are obtained
in the 100 range for the velocity byte.
Note Off commands are required, but can be dropped for pure legato playing.
Controller 13: [to be implemented] changes the lookup
table for the valve-pitch correspondence. The default
is 0 and conforms to an empirical mapping of valve combinations for optimal
resonant sound. Value 1 selects the theoretical valve combinations calculated
after simplified acoustic theory, values 2 and 3 select user programmable (sysex)
lookup tables. Higher values can be used to send just
any valve combination the user wants te see used for any note. The table below
gives all details:
| Ctrl 13 Value |
-1/2t |
-1t |
-1 1/2t |
remarks |
| 0 |
|
|
|
default empirical [detailed mapping] |
| 1 |
|
|
|
acoustic [detailed mapping] |
| 2 |
|
|
|
user table 1 (sysex programmable) |
| 3 |
|
|
|
user table 2 (sysex programmable) |
| 4 |
off |
off |
off |
4-7 valid |
| 12 |
on |
off |
off |
12-15 valid |
| 20 |
off |
on |
off |
20-23 valid |
| 28 |
on |
on |
off |
28-31 valid |
| 36 |
off |
off |
on |
36-39 valid |
| 44 |
on |
off |
on |
44-47 valid |
| 52 |
off |
on |
on |
53-56 valid |
| 60 |
on |
on |
on |
60-63 valid |
| other |
|
|
|
invalid |
Using this controller it is also possible to change the fingering for a sounding
note whilst it is sounding, thus rendering sone sound coloration possible
without changing the actual pitch.
Controller 17 is used to control the maximum sound level during the attack
period and as a general volume controller while the note is playing. (Note that
when this controller is set to 0, you can't play any notes. For a dal niente
crescendo, start from value 1.) A good default setting to start working from
is 90.
Controller 18 is used to control the duration of the note attack. The inderdependencies
of these controllers together with the velo byte is shown in the graph below:
A good default setting
for this controller is 105.
Controller 19: Release controller: to be implemented.
Controller 21: Horizontal movement controller. Value 64: center, 127->0=
move left (CCW), 0->127=move right(CW). The firmware will calibrate on each
of the extreme positions (0 or 127). The full semicircle takes about 3 seconds
in time. The firmware assumes that after a cold start, the cornet is in a central
position. It will recalibrate whenever an endposition is encountered.
Controller 22: Vertical inclination controller. Value 64: center, 63-0= move
down, 65-127=move upwards. Note that downward movement is twice as fast as upwards
movement. The traject is les than 90 degrees. The traject will be recalculated
whenever the endposition read by the mercury switch is encountered. Thus, when
you request shaky movements, the traject will be very limited because of the
shaking of the mercury that this causes.
Controller 25: valve movement force controller. With value 18, the movement
is smooth and a bit sluggish, whereas with 127 it may get noisy but very fast.
With values below 18, valve movement may become a bit unpredictable since the
movement will depend on wear, temperature, return spring force variations and
greasing of the pistons. After a cold start, this controller will be in a default
64 position.
Controller 70: Calibrates the vertical movement motor to a horizontal position.
This command should only be sent on a full stop of all motors. The parameter
can be any non-zero value. This calibration also takes place automatically after
a cold start of the robot. Do not use this controller in any sequenced composition.
Controller 123: switches the sounding note off, unpowers the steppers, dims
all the lights.
Program change: to be implemented. Program changes are
used to let 'quick and dirty' users set presets for certain limited musical
applications. It saves them the burden to get into the interpretation level
of music, at the detriment of nuance. The implementation and program numbering
scheme will we analogous to the ones developed for <So> and <Bono>.
Lights: The lights are mapped on very high midi-notes as follows:
- note 127 triple bright white LED on pulse-hold board with PIC2
- note 126 triple bright white LED on pulse-hold board with PIC2
- note 125: Blue LED light assembly, mounted near mouthpiece driver (PIC2)
- note 124: Harley Davidson tungsten light bulb (PIC2)
- note 123: not yet mounted (PIC1)
- note 122: not yet mounted (PIC1)
- note 121: not yet mounted (PIC1)
- note 120: not yet mounted (PIC1)
- note 119: not yet mounted (PIC1)
- note 118: not yet mounted (PIC1)
Pitch bend: The <Korn> robot can be used in any tuning system. In the
drawing below we give the coding example for a quartertone scale:
Most good sequencer
software (such as Cakewalk or Sonar) use the signed 14 bit format. Note that
one unit of the msb corresponds exactly to a 0.78 cent interval. To convert
fractional midi to the msb only pitchbend to apply follow following procedure:
if the fractional part is <= 0.5 then msb= 63 + (FRAC(note) * 128), if the
fractional part is larger than 0.5, we should switch on the note + 1 and lower
the pitch with msb= (1-FRAC(note)) * 128. Note off does
reset the pitch bend for the playing note!
Technical specifications:
- size: height 800 mm, depth 400 mm, length 400 mm.
- weight: 17 kg.
- transportation: needs a flightcase. Can be taken as luggage in airplanes.
- power: 230 V ac / 150 W
- Tuning: based on A = 440 Hz (within 1 cent). The tuning can be adjusted.
- Ambitus: 52-96 (optimal range: 58 - 87)
- control: MIDI-input, 3 MIDI-Thru. (UDP port to be implemented later)
- Insurance value: 6.800 Euro.
Design and construction: dr.Godfried-Willem
Raes
Collaborators on the construction of this robot:
- Kristof Lauwers (GMT implementation)
- Johannes Taelman (PIC coding)
- Yvan Vander Sanden (controller testing)
Music composed for <Korn>:
- Sebastian Bradt "Barbiefication" (for <Korn> and <Xy>)
(2008)
- Godfried-Willem Raes "Sires Hands" for <Sire> and <Korn>
and a performer with the Handy One interface
- Godfried-Willem Raes "Just
Calls for Brass" (in just intonation, with <Bono>, <Heli>
and <So>)
- Yvan Vandersanden "Interaktief stuk voor <Korn>, <Snar>
en Wii kontroller" (2009)
- Godfried-Willem Raes "Gesti for Korn", quadrada study #19 for
a naked performer and <Korn>. Staged in collaboration with a.rawlings
(2009)
- Kristof Lauwers "Picrada Study for Korn".
Pictures taken during the construction in our workshop:


Nederlands:
Robot: <Korn>
De overgrote meerderheid van de muzikale robots die we ontwikkelden
voor 2007, waren elk voor zich pogingen om bestaande akoestische instrumenten
zo getrouw mogelijk te automatiseren in zoveel mogelijk aspekten van hun bespeling.
Daartoe mimeerden we zoveel als mogelijk de menselijke bespelingswijze van deze
instrumenten. Het <Korn> projekt wijkt van dit opzet in hoge mate af.
Hier was het helemaal niet onze bedoeling een mimetisch bespeelde automatische
kornet te bouwen (immers, een automatische Sousafoon -<So>- hadden we
reeds met redelijk sukses voltooid, waardoor een automatische kornet niet direkt
een nieuwe verwezenlijking zou zijn). Niettemin maakt deze robot wel degelijk
gebruik van een oude Sib kornet die hier evenwel in eerste plaats dienst doet
als afstembare resonator in een instrument dat verder alleen werd gekoncipieerd
om min of meer realistische kornet-geluiden op een plastische en kontroleerbare
wijze te kunnen produceren. In dit ontwerp werd uitgegaan van het simuleren
van de drukvariaties in de mondholte van de bespeler en in het mondstuk middels
een elektronisch aangestuurde motor driver, zoals gebruikt in kleine megafoons.
Wat hier ontbreekt is de terugkoppeling met de resonator die het instrument
zelf eigenlijk is. Het instrument fungeert hier als een passieve resonator en
is niet via een dynamische regeling gekoppeld aan de eigenlijke toonvorming.
Daardoor krijgen we enerzijds een heel hoge betrouwbaarheid, maar anderzijds
dan weer een toch wat synthetisch klinkend klankresultaat met weinig of geen
artefaktische bijgeluiden en een eerder stereotype gelijkmatige artikulatie.
Wat we van bij het ontwerp evenwel zeker geimplementeerd wilden zien was een
ruime gamma aan mogelijkheden op mikrotonaal gebied. Zowel kwarttoonsmuziek
als muziek in de platonische juiste boventoonsstemmingen diende perfekt speelbaar
te zijn. Om die reden kan deze robot heel goed overweg met alle niet-standaard
vingerzettingen. Akoestisch gezien wordt dit mede mogelijk gemaakt door de relatief
lage Q-faktor van de licht konische toeter gezien als akoestische resonator.
De ventielen werden geautomatiseerd met unidirektionele elektromagneten,
helemaal naar plan en opzet zoals toegepast in de eerste
versie van <So>. We hadden liever bidirektionele magneten gebruikt,
maar daarvoor vonden we gewoonweg geen plaats in een zo klein instrument als
de kornet. De ventielen werken dan ook met de gewone terugslagveren.
De elektronische schakeling bestaat uit enkele afzonderlijk funktionele
boards:
1. Midihub board; Dit board, uitgerust met een 18F2525 PIC-controller
van Microchip, staat in voor de midi-kommunikatie en voor de besturing van de
horizontale stappenmotor. Twee ingangen worden gebruikt voor het inlezen van
de horizontale positiesensors. Daarvoor werden mikroswitches met lange naaldhefbomen
in veerstaal gebruikt.
2. Stappenmotor besturings board, voorzien van een LM18298 driver
chip en een latch:
Deze print ontwierpen en bouwden we reeds in 1989 en hadden we nog liggen. Het
datasheet voor de driver chip is weer te vinden in de referenties onderaan deze
pagina.
2. Pulse-Hold board voor de besturing van de ventielen evenals
voor de besturing van de vertikale stappenmotor. Dit board maakt gebruik van
een Microchip 18F4620 controller in 40pins DIL behuizing. De bestukking van
het board werd enigszins gewijzigd om de beide noodzakelijke inputs voor de
eindsensor van de motor mogelijk te maken. Voor deze sensor gebruikten we een
cirkelvormige driepolige kwikschakelaar voorzien van een 6mm as. Het onderdeel
dateert van vlak voor de tweede wereldoorlog...
De lampjes en LED's gemapt op de noten 124 tot en met 127 worden ook door deze
mikroprocessor bestuurd.
3. Klankproduktieboard: Dit board werd uitgerust met een 30F3010
ds-PIC kontroller van Microchip. Dit board heeft ook een midi-out, dit in eerste
plaats omwille van de debug mogelijkheden. Opgemerkt moet worden dan de uitgangstransfo
hier een afgestemde kring vormt met een resonantie rond 1.8kHz, overeenkomstig
de gewenste formant voor een kornet.
Aangezien een kornet op zich genomen een vrij klein en licht instrumentje
is, kwam de idee bij ons op om het ook meteen enige mate van beweeglijkheid
mee te geven. Deze beweeglijkheid behoort immers ook tot het typische geluid
van de hoge koperblaasinstrumenten, die immers zonder uitzondering een sterk
direktionele akoestische afstraling hebben. Hiermee konden we meteen Toshiba
& Yamaha de loef afsteken, want hun bewegende trompetspelende robot -die
wel zowat alle kranten haalde- is vals! Het geluid komt immers uit een luidspreker
uit de borstkas van de robot trompettist. Ook wilden we onze robot graag zo
gaan bouwen dat hij het zou vertikken om debiele muziek te spelen... Dat is
echter helaas nog steeds vapourware. Horizontaal kan onze robot 180 graden bewegen,
en vertikaal 90 graden. Hiermee mimeren we heel goed wat menselijke spelers
op het podium doen. Een hoge snelheid konden we voor deze bewegingen evenwel
niet realizeren. Het was ook niet de bedoeling Doppler effekten mogelijk te
maken.
De <Korn> robot werd gemonteerd op 3 rondom beweeglijke
zwenkwielen voorzien van remmen. Wanneer de remmen niet worden vastgezet tijdens
het spelen, kan de robot zich als gevolg van de eigen bewegingen ook wat over
het podium verplaatsen... een leuk maar eigenlijk onvoorzien neveneffekt.
Construction & Research Diary:
- 04.01.2008: first experiments with the sound generator devices: horn motor
compressors.
- 07.01.2008: Cleanup and adjustment of the valves
- 08.01.2008: First experimental construction of a motor horn driver, taken
from an old megaphone. The sub-octave sounds (the real fundamentals of the
cornet) cannot be made to sound really good. Hence we decide to drop them
altogether.
- 10.01.2008: Construction carrier plate for the valve solenoids with 19 mm
holes in stainless steel.
- 12.01.2008: TIG welding work on solenoid assembly. Design of a holding structure
for the cornet such that we leave the possibility for the instrument to move
freely, open.
- 13.01.2008: Welding works on the cornet holding structure. Design of the
motor driver holder. First workshop pictures taken and added to this webpage.
- 14.01.2008: Selection of a suitable stepper motor for the horizontal movement.
For vertical movement, we could simply use a heavy solenoid combined with
a spring. These features will have serious consequences for the design of
the power supplies! Purchase of ball bearings for two axis of movement. Vertical
inclination will require a force of ca. 50N.
- 15.01.2008: Further design of support structure. Suitable stepper motor
maybe ASMO 24 V/ 100 Ohm/winding 4-phase motor with worm-wheel gears, if we
use a tiny wound steel or nylon cable for the vertical movement. This motor
comes from a recycled old Japanese photocopier. The advantage of this mechanism
is that no power on the motor is required to hold the cornet in any given
position. Problem to be solved: how can we safely connect the steel wire to
the barrel.
- 16.01.2008: Plasma cutting of ground plate. Welding support for vertical
movement motor. Design for wheels of the support block.
- 17.01.2008: Start cutting and welding works for the horizontal movement
mechanism. The main chassis is ready now, included the three wheels with breaks
under the equilateral triangle bottom plate. Heavy duty connector found for
the removable connection between moving upper part and the electronics on
the base plate. Toroidal transformer selected for power supply: 2x 12 V/ 5
A. This transformer can be mounted under the base plate.
- 18.01.2008: Turning work on horizontal dented wheel. Mounting of toroidal
transformer underneath. Drilling holes for the horizontal stepping motor mounting
bolts. Discussion of the sound mechanism and its PIC implementation with Johannes
Taelman.
- 19.01.2008: Horizontal motor mounted and adjusted. Positioning of PC -boards.
Mounting holes drilled. Threads for motor mounting (M5 studs) welded on bottom
plate. Two 90/60/30 triangles in 3mm thick stainless steel plate welded to
end point. These serve for avoidance of mechanical resonances and for mounting
of the horizontal stepping motor controller. All welding performed with frequent
intermediate cooling with compressed air to avoid warping.
- 20.01.2008: Mounting and wiring of power supplies. Mounting of all required
PC-boards, except DS-PIC board. Midihub board soldered with component values
documented below (see end of this webpage). Mosfets exchanged for IRLZ44 types.
- 21.01.2008: Interboard connectors made. Design of end position sensors for
the steppers. Electrical testing of midihub board and motor controller board.
- 22.01.2008: Schematic for pulse-hold board redrawn. Soldering and component
selection and placement on pulse-hold board. Stainless steel piece bend, sawn,
polished and drilled with eyelet for the vertical movement. Mounting holes
24mm apart, for M5 bolts. Bottom part large connected wired. Six ultrabright
LED's mounted on pulse-hold board, mapped on notes 126 and 127.
- 23.01.2008: Rotary mercury switch applied for vertical movement sensing
and positioning. The use of this part makes the robot illegal as an industrial
product in most of the civilised world. However, we had the part on our shelves
for at least some 40 years, before we finaly found a good application for
it. Moreover, the part comes from military radio equiment from just before
the second world war. Orange light bulb (from a motor bike, probably Harley
Davidson) mounted on vertical motor assembly. This bulb has 10 Ohm cold resistance.
It draws quite a lot of current from the 12V supply. Note that the mounting
uses an insulation feed through since the metal of the holder is connected
to one of the supply leads.
- 24.01.2008: All wiring finalized, except the ds-PIC board for the sound
driver. Microswitches for end-detection on horizontal movement added. Power
supplies tested o.k. Design of the ds-PIC board. Construction of a first prototype,
using a small audio transformer.
- 25.01.2008: ds-PIC board finalized and mounted. <Korn> is ready now,
except for the (ordered) 25mm mechanical precision ring to hold the gear wheel
on the horizontal movement axis. The PIC programming works with Johannes Taelman
can take off... First firmware version for the PIC-controllers uploaded.

- 26.01.2008: First evaluation and test session. The code for the stepping
motors is still missing in the PIC firmware. The valve firmware works nicely,
the lights also. The ds-pic seems not working unless we reset it by applying
a pulse to pin1. This type of PIC appears to be extremely sensitive to spikes
on the supply lines. We remember having met similar troubles in the design
of <Bono>. The power delivered to the driver is 280mW, when the power
supply voltage is 5V. Thus, this voltage can safely be raised quite a bit.
Optimum sound is now obtained with following controller settings: Velo=38,
C17 = 127, C18=127. The calculated lookup tables correspond perfectly to optimum
horn resonance. So, there is no need to implement user lookup tables here.
However, different fingering can contribute to a more lively sound.
- Experiments with the ds-pic board: We raised the power supply to 24V and
with a 10 Ohm series resistor, and connected it to our driver circuit. With
maximum controller settings, we have a voltage drop over the resistor of 11.4
V, hence a current of 1.14 A. Such a current clearly saturates (...and heats)
the transformer, with quite interesting sonic artifacts as result. An RC or
even LC combination might even sound better here, since it could give us the
possibility to tune it to the characteristic formant of the cornet. We tried
this, but the first results were very disappointing. So we conceived another
approach and calculated the integer number of the harmonic on the sounding
note that falls as close as possible within the formant of the cornet. For
this frequency band we assumed 2800Hz, a value taken from literature on old
analog eletronic organ design books for the formant filters in cornet registers.
Obviously we need either measurements of our own, or more reliable sources.
The result of this calculation was added to the file describing the calculated
fingerings: lookup tables for <Korn>
(its a .txt file, not html!).
- 27.01.2008: The addition of a sub-partial corresponding to the base frequency
for each played note at about 30dB below the level of the main pitch, contributes
greatly to a more realistic sound. Further experiments with the hardware circuit
led us finaly to the adoption of a hardware formant filter, designed around
the primary of the output transformer on the ds-PIC board. To do this, we
left the usual protection diodes (BYV32) out altogether and fitted a capacitor
calculated and measured to give a resonant frequency around 1.8kHz. Soundwize,
this proved to be a major improvement, rendering the implementation of additive
formant components in the generated waveform unnecessary. If further filtering
and non-linear circuitry is required, it can now be done on the secondary
side.
- 28.01.2008: We digged up a spare part for the motor driver, in case the
one mounted gets overloaded in the process of the experiments. First work
on an algoritmic demo piece for <Korn> coded in GMT.
- 29.01.2008: Measurements of the real partials as compared to the platonic
ones shown here:

- 30.01.2008: Measurement and evaluation session by Kristof Lauwers. Pitch
bend range is now -50 to +50 cents.
- 01.02.2008: Dented wheel fixed on vertical column with pointed M3 bolts.
Solenoids definitive mounting and fixing. Replacement of felt washers inside
the pistons in order to silence their mechanical operation. Experiments with
LC-circuits in the primary circuit of the motor driver.
- 02.02.2008: Further experiments with formant filters in the drive circuit.
Whatever we attempt, is remains a very electronic and dull sound. The clicks
at the on- and offsets of a sound correspond to the tap tones on the mouthpiece.
The onset should definitly get a noise burst.
- 06.02.2008: Still a bit handicapped by pretty poor sound production and
lack of movement, <Korn> will already participate in a few pieces on
tomorrows M&M concert.
- 08.02.2008: Preliminary premiere of 'Barbiefication' by Sebastian Bradt.
- 15.02.2008: Work session on DS-PIC code: clicks and glitches removed both
on note-on and note-off. Softer attack implemented. Wind-noise added. Octave
fault corrected.
- 16.02.2008: Composers manual updated in accordance with the latest midi
implementation.
- 21.02.2008: <Korn> participated in the mini-M&M concert in Schaarbeek
(Brussels).
- 01.05.2008: Further worksession on horizontal stepping motor for movement
with Johannes Taelman. Not yet working. We seem to be plagued by bugs...
- 02.05.2008: Horizontal movement is working now, under controller 21. Calibration
is automatic and happens everytime one of the endpositions is reached. Acceleration
curve and stepping speed are automated and not user programmable. The firmware
is optimized for low noise, smoothness of movement and sufficient torque.
Movement speed is 45 degrees of rotation per second. The controller works
positional: 0 corresponds to fully CCW and 127 to fully CW.
- 03.05.2008: GMT testcode for Korn updated.
- 10.05.2008: Working session with Johannes Taelman: vertical movement and
revision of the valve code. The first version was written in assembly, but
for this version we will use the Pic-C compiler. Controller 70 implemented
for vertical movement callibration. Vertical movement now works, but we still
have to rewrite the valve code and the relevant lookups. Stepping pulses on
downward movement are now. ca.20ms, whereas upwards they become 40ms. The
firmware uses only the velo-pulse outputs, so the hold mosfets are not used.
Because of the mechanical construction, the motor never had to develop a holding
torque, hence we could drop these components from the implementation.
- 12.05.2008: Working session with Johannes Taelman: code for velo-pulses
on valves ported to C on PIC2. To be done: Sysex-lookups for fingerings, further
improvement of the generation.
- 13.05.2008: 350mA current source circuit built for 1W super bright LED.
Forward voltage drop is 3.2V as measured. Although the LED itself is pretty
small, if you take the complete required circuitry and cooling components,
there is something ridiculous about these components since at the end of the
bill, a normal tungsten light would have been both simpler, smaller and cheaper...
Light output is 10 lm, wavelength 470nm
- 15.05.2008: 1W blue LED circuit mounted near mouthpiece driver and mapped
on note 125. However, it seems to cause glitches and resets on PIC2, caused
realligments of the vertical movement...
- 16.05.2008: Calibration command must still have a firmware bug. It should
read and monitor the mercury switch -after debouncing- to decide in what direction
to start rotating for allignment.
- 17.05.2008: An extra command should be added in the motor firmware: freeze
movement: ctrl. 71 (switch). This should work at the same time for the horizontal
and for the vertical movement. (PIC1 and 2). The freeze command should cancel
any ongoing movement.
- 12.08.2008: Consistent erratic behaviour. Sometimes actions take place without
any command... This led today to a complete burn out of the Harley Davidson
light armature. We replaced the lamp socket (was bajonet) with a standard
10mm screw socket and fitted a 12-15V/160mA tungsten bulb. After this repair,
it seemed some mosfets on the pulse hold board burned out... More work to
be done. Probably the solenoid driver mosfets burned out. There must be either
bugs in the PIC2 firmware or some other hardware failure.
- 06.09.2008: Further repair work on Korn. The Lucas-Ledex solenoid for the
first valve burned out and shows up a short circuit situation. We replaced
the solenoid. Tests under GMT control. Strange behaviour observed from the
solenoids: bouncing... either something goes wrong with the PIC based timers
or the (Hold voltage) power supply is extremely unstable. First suspect to
examine: +5V, then +12V.
- 07.09.2008: Debug session. The faults are reproducable. Probability that
they stem from unstable +5V is high. However, sofar we could'nt see any glitches
on the scope. However, the +12 voltage shows up very high oscillation ( 4Vpp),
increasing with the load with period in the 5 microsecond range (ca. 200kHz).
This oscillation disappears when we place a 2mF electrolytic over the output
of the LT1084-12 regulator. The pulses in the ground return current could
be at the origin of the instable behaviour. The oscillation could also explain
the erratic behaviour of the vertical stepper, since its mercury sensors are
fed with the same +12V. Piher 2mF/16V elco and 1uF ceramic soldered into board.
Now every thing seems up and working again. The 1W blue LED however seems
not to have survived the failures...
- 08.09.2008: Korn monitored over longer timespans: calibrations on the vertical
motor still do happen at about every 5 minute rates. We have been monitoring
the 5V supply and suspect it fluctuates at a very low frequency.
- 13.10.2008: New acoustic impedance convertor turned on the lathe. This brass
piece was made from the original cornet mouthpiece.
- 20.11.2008: The erratic behaviour is persistent. We will have to replace
the Chinese SMPS (Sunpower) by a more sturdy modular design. Some more work
done on the sound determining circuitry. The <Bono> recipe applied to
Korn. (A single diode on the transformer primary). The capacitor has to stay
as it was. We now feed the driver from the available +12V supply. The transformer
is heavily in overload, so we should look out for a more powerfull part.
- 21.11.2008: To do: add an extra 5V power supply for the horizontal stepper;
replace bright blue LED; search for a better audio transformer. Research and
measurement session on a MCE E217T3F precision toroidal multitap transformer
(Order number: 10018709), recycled from military aircraft.
- 22.11.2008: Origin of the erratic behaviour traced down to very odd behaviour
of the high power LED and its current drive circuit: the LED failed but still
caused very short very high current spikes on the 12V supply, too short to
activate the current limits but so high that we could observe very large spikes
on the ground return leads, causing intermittent brown outs on the 5V supply
feeding the PIC processors. We replaced the LED with a new assembly of 6 bright
blue LED's each drawing a current of only 11mA. Mounting of the MCE multitap
transformer on the backside of the Korn chassis. This entails the addition
of a new welded chassis element. Circuit drawings adapted to the newest wiring.
The horizontal motor looks like working, despite the low power available from
our newly added 5V dc power supply.
- 23.11.2008: Welding work on the construction and mounting of the new chassis
elements (carrier structure) for the MCE precision transformer. Capacitor
across transformer primary increased from 470nF to 2.2uF (bipolar). The amplitude
is now a lot more constant over the entire compass. Intermittent oscillations
on the pulse-hold pic board still occur. Ferrite RFI snubbers fitted on the
most important cable bundles. We suspect a bug in the implementation of the
very slow counters in the pulse-hold PIC firmware. Bug discovered in the dsPIC
firmware: Pitch bend is not reset on reception of a new note as it should!
- 24.11.2008: Coding example worked out for quartertone scales:
GMT code and just intonation examples for Korn debugged.
- 26.11.2008: Test code for ctrl 13 added in GMT test by Kristof Lauwers,
for examination of the optimum fingering tables. However, ctrl. 13 is yet
not implemented in the pulse/hold board.
- 18.12.2008: <Korn> has an important part in my just intonation composition
"Just Calls for Brass".
- 21.12.2008: Further experiments with the tone production. Parallel capacitor
over the toroidal transformer changed again to 220nF, this capacitor must
be a high voltage type (100V). New power supply mounted for horizontal stepping
motor: now 9V /1.6A. This modular supply however, cannot cope with the pulsed
load from the stepper...
- 22.12.2008: New testcode written for the stepper motors. XP Power ECL25US09-E
power supply ordered from Farnell. This type should deliver 2.8A at 9V with
allowable peak current of 3.64A.
- 23.12.2008: New power supply has arrived. We immediately build it in and
tested: the horizontal motor now behaves fully the way it should.
- 02.01.2009: The somewhat shaky behaviour of the vertical movement motor
is persistent.
- 17.01.2009: Debug session on the firmware for the pulse/hold pic. The code
shows up some quite unpredictable behaviour: at times the velo-pulse length
has jitter and may even double. The firmware had a tendency to crash for no
apparent reason. We temporarily disabled the code for the vertical motor.
The horizontal motor code (PIC1) must have some bugs as well. It does not
switch of motor power on reaching an end posiotion.
- 28.01.2009: Apparently the sound driver died from overloads. Fortunately
we could recycle an indentical driver from another Realistic power horn 8
Ohms/ 8 W. After the replacement, Korn is working again, but when we measure
the maximum signal over the driver, it appears at 12V that the overload is
evident. However, sound level is still way too low. We have to recheck the
wave form carefully...
- 01.02.2009: Further research on sound production in Korn. The sound gets
a lot better with a diode parallel over the otherwize not used secondary tap
on the transformer in combination with the 8W driver. However, after constructing
an entirelly new impedance converter on our lathe, adapted to a 15Watt full
range driver, the sound became much better if we replace the diode with a
2.2uF capacitor. This change also gives us a somewhat better dynamic range
as well as a better overload safety margin. Another minor, but nevertheless
most welcome, side effect of the new motor driver is that the instrument is
now mechanically more in balance over its axis of movement, thus relaxing
the forces to overcome by the vertical stepper motor.
- 02.02.2009: Demonstration of the renewed Korn for the collaborators. Evaluation
session.
- 05.03.2009: <Korn> on the road to Lille (France). It's only the second
time he is allowed to leave the logos building.
- 07.04.2009: horizontal movement sensors improved by mounting an adjustable
sensor-pin.
- 25.04.2009: Programming session with Johannes Taelman on the gestures for
<Korn>. Deep measurement and analysis reveals that to a large extend
problems with erratic behaviour is due to spikes on the midi input signal,
stemming from the Midiman 2x2 device. The 4 port device does not show up this
problem. The erratic behaviour can be predicted as soon as the green midi-monitoring
LED on the hub board glows slightly with the midi in cable connected but no
midi-data sent. To a large extend this misbehaviour is due to the laptop power
supply.
- 26.04.2009: Horizontal movement tests.
- 02.05.2009: Worksession on the movement code with Johannes Taelman. Horizontal
and vertical movement is now well implemented. User fingerings also, using
controller 13. Lookup tables using sysex commands for fingerings are as yet
to be implemented.
- 03.05.2009: Testcode written for gesture tracking using the quadrada interface.
- 12.05.2009: Photoshoot with Korn and angela rawlings.
- 13.05.2009: There must still be a bug in the midihub PIC firmware that causes
it to crash. This is the PIC responsible for the horizontal movement. Premiere
of 'Gesti for Korn' with a.rawlings.
- 15.05.2009: Loose cable on upperpart accidently hitting the endswitch remedied.
Kristof Lauwers and Yvan Vandersanden adding end debugging movement code for
Korn.
- 16.05.2009: Demonstration of <Korn> at Technopolis (Robocup).
- 23.05.2009: Debug session on the firmware for the horizontal motor controlling
PIC-microcontroller. The inherent hysteresis of the end-sensors caused logic
trouble. The bizarre crashes of the PIC every so often, are to be examined
further. They seem related to very high midi data rates.
- 24.05.2009: 'Gesti for Korn' rechecked with the Quadrada interface.
- .

Last update: 2009-05-24
by Godfried-Willem Raes
The following information is not intended for the general public, but is essential
for maintenance and servicing of the robot.
Technical drawings, specs and
data sheets:
The moving upper part can be taken out of the base. First loosen the set screws
on the dented wheel as well as on the ring under the base plate, then pull the
rod out vertically. As an alternative one can also loosen the upper ball bearing
(two M6 bolts) and take out the vertical mechanism. This however requires reallignment
of the ball bearing. Then, disconnect the large black rectangular connector.
The wiring is drawn below: 
Horizontal Stepping Motor: Sanyo Denko Co. LTD, Step-Syn, type 103-820-2 (IBM
P/N 2526734) DC 4.5 V - 1.4 A, 2 degrees/step. Lot NR. 7749. Asmaat: 9.5 mm.
Drive belt: Gates, Powergrip 180XL.
Vertical Stepping Motor: ASMO, Type 865100-0110 Part number AX020009A, 4 phase,
100 Ohms/winding. Operating voltage: 24 V. Wire colors: white blue black, yellow
orange white. This component was recycled from an old Japanese photocopier.
Asmaat: 6mm, met wormwielvertraging.
MOSFET's: IRL640: Specs: 17 A / 200 V, logic level mosfet. (Ug = 5 V). No cooling
applied. IRLZ44N can be used as an alternative.
Solenoid type used for the valve pushers: Lucas Ledex (now distributed by Saia-Burgess)
STA type 195207-228 (13.8 V DC @ 100% duty), 10 Watt, 7.8 N @ 5mm with 60 degree
plungers. 26 mm diameter, height 52 mm. The required anchor displacement for
the cornet pistons is 16 mm.
Note on the push tubular solenoids used to activate the pistons:
The following specs are valid at 20 degrees Celsius. Maximum holding force
is 29 N
| 13.8V |
100% |
10 W
1.166 A.turns
|
17.78mm in 41ms
2N starting force
|
2.54 mm @ 10 N |
| 19.6V |
50%
max. ON-time: 470"
pulsed: 360"
|
20 W
1.649 A.turns
|
17.78mm in 32ms
3N starting force
|
2.54 mm @ 18 N |
| 28.0V |
25%
max. ON-time: 120"
pulsed: 32"
|
40 W
2.332 A.turns
|
17.78mm in 22ms
9N starting force
|
2.54 mm @ 27 N |
| 44.0V |
10%
max. ON-time: 32"
pulsed: 8"
|
100 W
3.688 A.turns
|
17.78mm in 15ms
12N starting force
|
2.54 mm @ 40 N |
These solenoids may not deliver enough starting force to start the valve movement.
Therefore we could switch them in series with a 14.3 Ohm resistor (10 Watt)
and have a 2200 microfarad electrolytic over them. When we feed the solenoids
from a 24 V supply, the solenoids when firing will see a voltage of 24 V across
them for a time RC= 42 ms, enough to start the movement with a force of about
5 Newton. When energized, the voltage drops to 14V, enough to hold the valves
pressed down. This was the approach as used in the original design for <So>.
As an alternative, our design for pulse-hold solenoid drivers may be used here.
This was the approach in <Bono>. This approach necessitates a bipolar
power supply. The positive hold voltage can be reduced to 10 V, the negative
velo-pulse voltage should be between 24 V and 36 V. Using this board, the final
circuit becomes a lot smaller than if we used the capacitor discharge circuit.
Motor-compressor driver: taken from power horn, made in Taiwan for Realistic,
type 40-1236C, rated 8 Ohms, 8Watt.
Ball bearings: Blok Polyamide NR. 1060.225.00 (cost: 43 Euro a piece, 01.2008
at MEA)
Specifications for the PIC microcode for <Korn>.
Valve lookup tables for <Korn> (according
to acoustic theory)
Power supply:
Modular 230V ac to 5V / 1A DC linear convertor. (microprocessor and logic power
supply)
XP Power module: ECL25US09-E, 9V / 2.8A output. (3.64A peak), for the horizontal
motor driver.
Toroidal transformer: 220V with two secondary 12V windings rated 5A each.
Wiring & circuit details midihub board:




One super brigth 1W blue LED was used in the first version of this robot. It
is mapped on midi note 125 and controlled by the velo/hold PIC board. These
LED's should be cooled and driven with a constant current limited to 350mA.
One of the following circuits -using cheap standard TO220 regulators- was to
be used in this robot:

Due to -probably- a spike in the power supply, the LED circuit at some point
short after its installation gave up functioning properly and instead of just
passing away, it showed a very erratic behaviour: becoming fully conductive
(with very short current spikes of far over 20A) and opening up again. This
caused such heavy spikes on the ground lines, that it was the origin of erratic
behaviour of the PIC microcontroller. Thus we replaced the circuit with a much
simpler assembly of two times three bright blue LED's connected in series with
a 301 Ohms resistor. The total current at 12V now is only 22mA. Voltage drop
over each of the blue LED's is 2.9V.
Output transformer:
High precision wide frequency range MCE toroidal multitap transformer. Type
nr. MCE E217T3F; Order number: 10018709, recycled from an American military
aircraft.
Cornet details:
Builder: Melchior De Vries, Lier. The instrument was made -unfortunately, for
we have an inborn hate for just about anything military- for the belgian armee.
It is marked BS (this is short for Belgische Strijdmacht) an carries the number
K.F.F.K. 14. We have no indication as to the year of construction, but since
the tuning conforms to A=440, we suspect it was made after 1939.
References:
Beauchamp, J.W. "Analysis and Synthesis of Cornet Tones Using Nonlinear
Interharmonic Relationships". In: j-aes, volume 23, number 10, pages 778--795,
1975.
Beauchamp, J.W., "Analysis of Simultaneous Mouthpiece and Output Waveforms
of Wind Instruments" . In: j-aes, 1980, Preprint No. 1626,
Benade, Arthur .H., "Fundamentals of Musical Acoustics". Ed.: Oxford
University Press, 1976.
Fletcher, N.H. & Tarnopolsky, A. "Blowing pressure power and spectrum
in trumpet playing" In: J. Acoust. Soc. Am., volume 105, number 2, part
1, 1999.
Martin, Daniel W., "Lip vibrations in a Cornet Mouthpiece", In: J.Acoust.Soc.Am.
vol13 . 1942
National Semiconductor, LM18298 Dual Full-Bridge
Driver, datasheet. April 1992
Raes, Godfried-Willem, "Kursus Akoestiek", Ghent University College
1982/2007, Internet: http://www.logosfoundation.org/kursus/4023.html
Raes, Godfried-Willem, "Expression
control in musical automates", 1977/2009,
Robody Pictures with <Korn>:


