motor driven siren

for Ballet Mecanique , George Antheil


Godfried-Willem Raes



<Balsi>: Large motor driven siren with volume control

The instructions in Anteil's score for Ballet Mechanique render it impossible to use a standard crank driven siren, as it is detrimental to the gears in these devices to be started and stopped fast. So an electrically driven mechanical siren with either safe braking possibilities or fast sound-muting control has to be designed. The score is very unclear as to the pitches the sirens are supposed to sound. In the score they appear notated as percussion instruments. Of course, from a mechanical point of view, driving the sound producing rotator of the siren directly with a motor would seem the easiest solution. After all this is how electrically driven sirens generally work. However, starting from an existing and historical crank driven siren, this would require an almost complete redesign and balancing of the instrument as we would have to remove the system of dented wheels inside. If we estimate the maximum speed of rotation on the crank as 3 rotations per second, and if we choose a standard motor with 2750 RPM - that is ca. 46 rotations per second, we need belts or gears with a speed down proportion of ca. 1:15. So, if we take a small V-belt wheel on the motor, diameter 40 mm, the driven wheel needs to have 600 mm in diameter. That's way larger than whats readily available on the market... Moreover, frictional losses would become quite large. So, a two step gear, two times 1:4, looked like a better design at first.
Before we tackled this project, we made already a few siren driven robots: <Sire> , a robot using 24 small sirens as well as the large siren integrated in <Springers>. In these earlier projects, we used DC motors and PWM control to drive the sirens. After many experiments with gears and AC motors, we came across a motor from an electric scooter. This motor had a dented wheel and drove the backwheel of the scooter with a chain. It looked like a perfect solution to the problem at hand here.

First approaches: (2017)

For <Balsi> we first decided to give a throw at using a regular AC 3-phase induction motor. Next to the fact that such motors are readily available at low prices, we took profit of the availability of 16-bit Microchip controllers specifically designed for applications in 3-phase motor controllers, type nr. 24EP128MC202 being our favorite for the time being.

The circuit as we designed it looks like: The PWM base frequency was taken as 20 to 25 kHz and is used to generate 3 sine waves with the required phase shift of 120 degrees.Control range for the speed of rotation is 150 to 3000 rpm. The filtering components on the MIDI input appeared to be essential, as the amount of glitches produced by the fast switching MOSFETS at high frequencies and voltage are considerable and caused erroneous and missing data. This is what the signals look like, as measured op the testpoints tp1, tp2 and tp3: This is the setup for the test:

The motor control firmware builds on a pretty straightforward PID regulating loop. Here is the algorithm, coded in Power Basic:


' The machine constants have to be passed on the first call only. Seinvalue is the measured reality value, generaly derived from a sample. Sollvalue is the goal we want to achieve. The function returns the correction factor for regulation and should be used in a regulation loop.

STATIC propconstant, integrationconstant, differenciationconstant AS SINGLE

STATIC oldfout, iterm AS SINGLE

LOCAL fout, pterm, dterm AS SINGLE

IF kp THEN propconstant = kp


IF ki <> integrationconstant THEN RESET iterm ' reset! integrationconstant = ki



IF kd <> differenciationconstant THEN RESET oldfout ' reset differenciationconstant = kd


IF fout = sollvalue - seinvalue ' calculate the error pterm = propconstant * fout. Proportionality term iterm = iterm + (integrationconstant * fout). Integration term dterm = differenciationconstant * (fout - oldfout)

oldfout = fout

FUNCTION = pterm + iterm + dterm ' return value for the PID correction signal


The siren we used for this automation project, before we changed its design, looked like this:

The handgrip and the crank were removed first.

Second approach: (2018)

As we never got our motor controller circuit to operate properly and reliably on the high voltages involved, we abandoned the first design. As an alternative, we changed for a DC motor taken from an electric scooter. These motors work on a nominal 12V and deliver a power of 350W. To drive the siren, we used a chain and chainwheels, recycled from the scooter. As the current drawn is quite high (16A according to the motor shield plate), we decided to use optocouplers in the motor controller.

A novel component in this design is the addition of a damper mechanism. An often inconvenient property of sirens in music, is that the sound volume is always proportional to the pitch produced. To overcome this inconvenience to a great extend, we made a damper consisting of a circular plate that can cover the suction side of the siren. The plate is driven by a bidirectional solenoid, mounted in top of the siren.




dr.Godfried-Willem Raes

Collaborators on this project:


Cost calculation:


<Balsi>: Midi controlled large siren


Purchase of a Polish military siren
Siemens 3-phase motor
PCB Motor controller board
Separation transformer 500VA  


Disassembly and cleaning of siren 1d  
PCB design of motor controller board V1.0 2d  
PCB revision V1.2 1d  
Firmware development 10d  



Parts, technical specifications and maintenance notes:




Order numbers spare parts and special (harder to find...) components:

Last update:2018-10-30