Spinet Robot Research project on the development of new tools for musical expressionnt |
<Sper> a robotic spinet dr.Godfried-Willem RAES 2021-2025 |
<Sper>
Het eerste door ons geautomatiseerd spinet was <Spiro>, uitgaand van een halffabrikaat spinet gebouwd naar historisch model door Walter Maene. Uit de bouw en de evaluatie van dat projekt konden we lessen trekken ten bate van dit nieuwe bouwprojekt. Ook leerden we veel over het verschil tussen 'historisch' getrouwe instrumenten en 20e eeuwse nieuwbouwontwerpen. Immers voor dit nieuwe bouwprojekt konden we vertrekken van een Sperrhake spinet uit de tweede helft van de 20e eeuw. Dit instrument bleek heel wat degelijker, betrouwbaarder dan de historische kopie die aan <Spiro> ten grondlag lag. Ook bleek het superieur aan het Italiaans 'historisch' klavecimbel (een Zuckermann instrument) dat we gebruikten voor de <Cemba> robot. De dokjes werken heel wat beter en de ongelijkheden tussen de diatonische en de kromatische toetsen werden in dit Sperrhake instrument grotendeels weggewerkt. Verbeter-punten op het vlak van automatisering zelf zijn:
Puur technisch gesproken, bestaat de beste oplossing erin de dokjes van onderuit met de elektromagneten omhoog te duwen op de plaats waar de toetsen dan nu doen. Daarvoor moet het hele keyboard blijvend weggenomen worden. Maar, zonder toetsenbord wordt het wel moeilijk tot omslachtig om het spinet te stemmen, want om dat dan te doen zouden we telkenmale een midi-keyboard ofwel een komputer met midi-interface moeten aansluiten. Snel wat bijstemmen is dan niet meer aan de orde. Ook de alternatieve mogelijkheid om de dokjes aan hun bovenkant met elektromagneten omhoog te trekken bestudeerden we grondig. Bezwaren daartegen zijn enerzijds dat het schroefje waarmee de demper op het dokje wordt afgeregeld dan niet meer bereikbaar is. In het gat voor die regelschroef moeten we immers draad tappen waarmee het dokje aan het anker van de elektromagneet wordt bevestigd. Een tweede bezwaar is dat het erg moeilijk wordt om het mechanisme te verwijderen en terug te plaatsen. De ankers zitten immers vast op de dokjes en de spoelen moeten dan met zijn allen (50) tegelijk en in register over de ankers worden geschoven... voorwaar geen sinecure.
De originele dokjes van dit Sperrhake instrument zagen er zo uit: Bij het vervangen van de plectra bleek evenwel algauw dat de kunststof waaruit de dokjes zijn gemaakt, door veroudering helemaal bros was geworden. We gingen dan te rade bij Chris Vandekerckhove die overging tot de bouw van een hele reeks nieuwe dokjes in hout. Sperrhake is al lang geleden over de kop gegaan en nieuwe dokjes bleken helemaal nergens nog verkrijgbaar te zijn. De besnaring -staalsnaren- behielden we zoals ze was, mede met het oog op het openhouden van de mogelijkheid tot latere elektrifikatie met elektromagnetische transducers.
Na lang beraad en heel wat proeven beslisten we om voor de automatisering uiteindelijk toch voor een Vorsetzer-ontwerp te gaan. Om het probleem van de lawaaierige terugval van de spoelkernen en de toetsen op te lossen, brachten we enkele wijzigingen aan in het schakelschema van ons beproefd ontwerp voor aanslaggevoelige toetsinstrumenten. De mosfet die instaat voor het ingedrukt houden van de toets wordt op zijn gate voorzien van een kondensator en een 1 MOhm ontlaadweerstand. De gate wordt geschakeld via een BAT86 Schottky diode. Hierdoor verloopt het lossen van de kern bij het uitschakelen van de Mosfet geleidelijk. Opgelet moet nu wel worden voor de dissipatie, want traag schakelen gaat uiteraard gepaard met vermogensverlies over de Mosfet die dan immers in zijn lineair gebied moet werken.
Het effekt van deze schakeling is goed te zien op dit oscilloskoopplaatje: Het plaatje toont het signaal op de gate van de hold-mosfet (IRL640).
De automatisering van het luitregister -gesplitst tussen bas en diskant in dit geval- noopte ons ertoe een niet standaard oplossing te verzinnen. Immers op dit instrument wordt de viltstrook in rust weg van de snaren getild door een dikke messing staaf die als registerknop voor de plank die het toetsenbord afdekt dient. Na veel expermenteren opteerden we hier voor twee lineare aktuators. Hiermee konden we vermijden elektromagneten te moeten toepassen die in rust bekrachtigd zouden moeten zijn en blijven. De besturing ervan implementeerde we op het hub board waardoor de uiteindelijke schakeling hier er zo kwam uit te zien: De poorten RA5 en RC5 besturen de baskant van het luitregister, terwijl de diskant zijde bestuurd wordt door de poorten RC3 en RC4. De logika van de besturing moet ervoor instaan dat elk poort-koppel exklusief-or geschakeld wordt voor het bedienen van de registers. In rust moet de logische toestand van elk koppel laag zijn. Deze registers kunnen bestuurd worden met de controllers 27 en 28. Het trajekt waarover de demper op en neer kan lopen, is instelbaar via vier midi-controllers. Het maximale bewegingstrajekt neemt ca. 1.2 seconden in beslag zodat snel aan en uitschakelen van de registers onmogelijk is. De geleidelijk naar luitregister omschakelen is mits wat uitzoeken met de controllers, heel goed mogelijk. Omdat een goede afregeling noodzakelijk is voor de goede werking van de registers, monteerden we de lineaire actuatoren verschuifbaar. Uiteraard voorzagen we ook in enkele stelschroeven waarmee ze ook in de beste positie vastzetbaar zijn.
Opgelet moet worden om wanneer de dokkenlijst moet weggenomen worden -bvb. om een plektrum te vervangen of om het dokje af te regelen- steeds eerst de haakjes waarmee de demper wordt bewogen los te maken. Dit gaat het gemakkelijkst wanneer het luitregister aktief is en de dempers dus op de snaren liggen.
Midi channel: 4 (counting from 0)
Note Off: release not implemented. The soft release for the solenoids is implemented in the hardware and cannot be user controlled.
Note On: velocity implemented, but the ideal value should be 64. If plectra are changed, different velocity values might give better results. With velo value 1, no substantial pulse will be applied to the solenoids. This opens the possibility to just lift the dampers from the string without playing the note itself. If the default velocity override-mode is used, velocities can be controlled with controller 81. Also in this case, setting controller 81 to 1, will just lift the dampers.
Lights are mapped as follows:
Key pressure: implemented for automatic note repeats. The repetitions rate can be different for each individual key. [We may ommit this feature in the final design, as fast repetitions on notes are potentially very destructive for the instrument. If required, there is a metacompiler command in the PIC sourcecode, wherewith it can be enabled.].
Controllers:
Controllers #28 and #29: Lute register controllers, Controller 28 steers the bass side, 29 the treble side. For values smaller than 64, the muffler mechanism will get fully released from the strings. With any value larger than 63, the muffler bar will proceed to fall on the strings. Note that due to the linear actuator used here, it can take up to 700 ms to fully switch the register on or off. When either end position is reached, the actuators will switch off automatically. If users want to experiment with in-between positions or gradual register switching, we implemented the controllers 82,84,85 and 87. By default after cold boot and controller reset, the lute registers will be turned off.
Controller #66: ON/OFF switch. This controller is mandatory! If the instrument is not in use, always switch power off using this controller. Do not repeat on/off commands fast, as this can be detrimental to the power supplies. In normal use, leave some 2 seconds between off/on commands. This controller always performs the all-notes-off command and resets all controllers to their default value.
Controller #69: selects and switches lights automation modes. Value 1 selects automation of the lights on the vorsetzer. This is the light mapped on note 120. Value 3 automates the white LED strip on the front of the jack-bar. Value 2 automates the l.ong white LED strip on the back of the jack-bar. Value 4 uses the green LED-strip on the jack-bar. These lights are also mapped on the notes 122, 123 and 124. By default, this controller is switched to ON with value 2. To disable the light automation, you have to send value 0.
Controller #80: ON/OFF for velocity control. OFF means, the robot disregards velocity bytes send with note-on commands but uses either the constant/smart optimum value determined by the builder at construction time or any fixed value set by the user using controller #81. The default value is always OFF. If this controller is set to ON, the robot will use the velocity values as sent by the user. Controller #81 will always reset controller #80.
Controller #81: set a value for the constant/smart velocity value to be used on reception of note-on commands. If this controller is set to 0, the default values will be applied. With value 1, it will just lift the dampers. Whenever this controller is sent, controller 80 will be reset to OFF and incoming velo bytes will be replaced. Compensation for the difference in required force for black keys versus the white ones is automatic. Scaling in function of the pitch (low strings require slightly higher velocities than high strings) is automated as well. There is some intelligence in the system... If controller 80 is set to any value other than 0, none of these 'smart' features are applied. In that case it's up to the user to send velocities taking into account all these dependencies. The advantage of using individual manual velo settings are in the possibility to take into account note-to-note differences in the instrument itself and thus to minimize any mechanical noises from the key mechanism.
Controllers #82,#84, #85 and #87: experimental for duration control of the motors activating the lute registers. Value 127 sets the duration to 1500ms.
Controller #123: all notes off. Releases all solenoids. Does not reset controllers.
Program Change: not implemented
Aftertouch: not implemented
Pitch Bend: not implemented
Technical specifications:
Design and construction: dr.Godfried-Willem Raes
Collaborators on the construction of this robot:
Music composed for <Sper>:
all music playable on <Spiro> can also be performed on <Sper>.
Pictures taken during the construction in our workshop:
Back to Main Logos page:index.html | To Godfried-Willem Raes personal home page... | To Instrument catalogue |
Bouwdagboek - Construction & Research Diary:
Spinet Sperrhake - afstanden klavier voor vorsetzer | |||||||
ZWART | WIT | Midinoot | Midden toets vanaf kant in cm gemeten | Vanaf midden toets 1 in cm mathematisch | Gemeten | Vanaf midden toets 1 in cm gemeten | Afwijking tussen mathematisch en empirisch |
c2 | 36 | 2,5 | 0 | 2,5 | 0 | 0 | |
c# | 37 | 3,35 | 0,85 | 3,35 | 0,85 | 0 | |
d | 38 | 4,75 | 2,25 | 4,75 | 2,25 | 0 | |
d# | 39 | 6,15 | 3,65 | 6,15 | 3,65 | 0 | |
e | 40 | 7 | 4,5 | 7 | 4,5 | 0 | |
f | 41 | 9,25 | 6,75 | 9,25 | 6,75 | 0 | |
f# | 42 | 10,15 | 7,65 | 10,15 | 7,65 | 0 | |
g | 43 | 11,5 | 9 | 11,5 | 9 | 0 | |
g# | 44 | 12,65 | 10,15 | 12,65 | 10,15 | 0 | |
a | 45 | 13,75 | 11,25 | 13,75 | 11,25 | 0 | |
a# | 46 | 15,15 | 12,65 | 15,15 | 12,65 | 0 | |
b | 47 | 16 | 13,5 | 16 | 13,5 | 0 | |
c3 | 48 | 18,25 | 15,75 | 18,25 | 15,75 | 0 | |
c# | 49 | 19,25 | 16,75 | 19,25 | 16,75 | 0 | |
d | 50 | 20,5 | 18 | 20,5 | 18 | 0 | |
d# | 51 | 21,75 | 19,25 | 21,85 | 19,35 | 0,1 | |
e | 52 | 22,75 | 20,25 | 22,75 | 20,25 | 0 | |
f | 53 | 25 | 22,5 | 25 | 22,5 | 0 | |
f# | 54 | 25,9 | 23,4 | 25,9 | 23,4 | 0 | |
g | 55 | 27,25 | 24,75 | 27,25 | 24,75 | 0 | |
g# | 56 | 28,4 | 25,9 | 28,4 | 25,9 | 0 | |
a | 57 | 29,5 | 27 | 29,5 | 27 | 0 | |
a# | 58 | 30,9 | 28,4 | 30,9 | 28,4 | 0 | |
b | 59 | 31,75 | 29,25 | 31,8 | 29,3 | 0,05 | |
c4 | 60 | 34 | 31,5 | 34,1 | 31,6 | 0,1 | |
c# | 61 | 35 | 32,5 | 35 | 32,5 | 0 | |
d | 62 | 36,25 | 33,75 | 36,35 | 33,85 | 0,1 | |
d# | 63 | 37,5 | 35 | 37,6 | 35,1 | 0,1 | |
e | 64 | 38,5 | 36 | 38,6 | 36,1 | 0,1 | |
f | 65 | 40,75 | 38,25 | 40,85 | 38,35 | 0,1 | |
f# | 66 | 41,65 | 39,15 | 41,7 | 39,2 | 0,05 | |
g | 67 | 43 | 40,5 | 43,1 | 40,6 | 0,1 | |
g# | 68 | 44,15 | 41,65 | 44,15 | 41,65 | 0 | |
a | 69 | 45,25 | 42,75 | 45,3 | 42,8 | 0,05 | |
a# | 70 | 46,65 | 44,15 | 46,7 | 44,2 | 0,05 | |
b | 71 | 47,5 | 45 | 47,55 | 45,05 | 0,05 | |
c5 | 72 | 49,75 | 47,25 | 49,8 | 47,3 | 0,05 | |
c# | 73 | 50,75 | 48,25 | 50,8 | 48,3 | 0,05 | |
d | 74 | 52 | 49,5 | 52,1 | 49,6 | 0,1 | |
d# | 75 | 53,25 | 50,75 | 53,35 | 50,85 | 0,1 | |
e | 76 | 54,25 | 51,75 | 54,35 | 51,85 | 0,1 | |
f | 77 | 56,5 | 54 | 56,55 | 54,05 | 0,05 | |
f# | 78 | 57,4 | 54,9 | 57,45 | 54,95 | 0,05 | |
g | 79 | 58,75 | 56,25 | 58,8 | 56,3 | 0,05 | |
g# | 80 | 59,9 | 57,4 | 59,95 | 57,45 | 0,05 | |
a | 81 | 61 | 58,5 | 61,1 | 58,6 | 0,1 | |
a# | 82 | 62,4 | 59,9 | 62,45 | 59,95 | 0,05 | |
b | 83 | 63,25 | 60,75 | 63,35 | 60,85 | 0,1 | |
c6 | 84 | 65,5 | 63 | 65,55 | 63,05 | 0,05 | |
c# | 85 | 66,5 | 64 | 66,6 | 64,1 | 0,1 | |
d | 86 | 67,75 | 65,25 | 67,8 | 65,3 | 0,05 | |
d# | 87 | 69 | 66,5 | 69,2 | 66,7 | 0,2 | |
e | 88 | 70 | 67,5 | 70,2 | 67,7 | 0,2 | |
f | 89 | 72,25 | 69,75 | 72,5 | 70 | 0,25 |
noot 44 | hold probleem |
noot 47 | moet meer dempen |
noot 49, 51 | bijgeluid bij aanslag. Klik geluid veroorzaakt door uitstekend asje? |
noot 53, 59, 66 | demper probleem |
noot 72 | dokje raakt zachtjes de naastliggende snaar |
noot 76, 80 | plektrum keert niet terug |
noot 83 | hold probleem: check pcb & wiring |
noot 89 | plektrum keert niet terug of speelt marginaal. |
(Terug) naar logos-projekten: | Terug naar Stichting Logos' index-pagina: | Naar Godfried-Willem Raes personal homepage... | Naar katalogus instrumenten | Robotorkest |
Last update: 2025-01-14 by Godfried-Willem Raes
The following information is not intended for the general public nor for composers wanting to make use of our <Sper> robot, but is essential for maintenance and servicing of the robot by our collaborators. It also might be usefull for people that want to undertake similar projects. Feedback is mostly welcomed.
Technical drawings, specs and data sheets:
Power supplies:
Wiring & circuit details midihub board:
Circuit details solenoid driver board:
board specifics:
boards #1, #2, #3: velo mosfets are IRF1310
board #5: Pulse-hold board made and designed in 2006. This board fails the soft-release feature.
Solenoids: ITS-LZ-1642-D-12VDC, Conrad order nr 506148. DC resistance 28 Ohm, cold.
Lute register automation: FIT0803 linear actuators
hub-board:
References:
NEUPERT, Hanns, "Harpsichord Manual", (Translated by F.E.Kirby), ed. Baerenreiter, 1968 (1e editie, Baerenreiter 1960)
RAES, Godfried-Willem, "Expression control in musical automates", 1977/2024,
RAES, Godfried-Willem, "<Spiro>, an automated spinet", 2011
RAES, Godfried-Willem, "<Cemba>, an automated harpsichord" , 2024.
RIPIN, Edwin M (ed.) ., "Keyboard Instruments. Studies in Keyboard organology 1500-1800", ed. Dover Publications Inc., New York, 1977, ISBN 0-486-23363-4
ROSSING, Thomas.D (editor), "The Science of String Instruments" , ed: Springer NY, Stanford CCRMA, 2010 ISBN 978-1-4419-7109-8
Prijsberekening:
1-oktaaf puls-hold-release PCB's: (vier stuks)
24 | Mosfets TO220 |
2.50-
|
60,00-
|
12 | T0220 dubbeldiodes |
2.20-
|
26,50
|
12 | P-channel mosfets |
3.00-
|
36,00-
|
1 | 18F4820 Microchip processor |
23,.00-
|
23,00-
|
1 | X-tal 10 MHz |
3.30-
|
3.30-
|
40 | weerstanden metaalfilm |
0.12-
|
4,80-
|
12 | Schottky diodes |
0.20-
|
2,40-
|
12 | 1N4148 |
0.10-
|
1,20-
|
12 | Zener 10V - 500mW |
0.80-
|
9,60-
|
12 | 47nF |
0.70-
|
8.40-
|
3 | Tantaalcaps |
3.20-
|
9,60-
|
12 | 2-polige Weidmueller connectors |
3.38-
|
40,56-
|
2 | 3-polige Weidmueller connectors |
4.82-
|
9,64-
|
12 | Tubular Solenoid Intertec ITS-LZ-1642-D-12VDC |
27.50-
|
330,00-
|
2 | LED's |
0.30-
|
0,60-
|
1 | programmeerconnector 6p. |
1.25-
|
1,25-
|
1 | PCB, Bungarz eurokaart, fotogevoelig |
6,00-
|
6,00-
|
1 | werkdag assemblage en testen hardware |
400,00-
|
|
972.85-
|
14-note PCB, used for the top half octave and lights::
28 | Mosfets TO220 (IRL640 and IRF540) |
2.50-
|
70,00-
|
14 | T0220 dubbeldiodes |
2.20-
|
30,80
|
14 | P-channel mosfets |
3.00-
|
42,00-
|
1 | 18F4820 Microchip processor |
23,.00-
|
23,00-
|
1 | X-tal 10 MHz |
3.30-
|
3.30-
|
40 | weerstanden metaalfilm |
0.12-
|
4,80-
|
14 | Schottky diodes |
0.20-
|
2,80-
|
14 | Zener 10V - 500mW |
0.80-
|
11,20-
|
5 | Keramische kondensatoren |
.0,40-
|
2,00-
|
1 | Tantaalcaps |
3.20-
|
3,20-
|
2 | 6-polige Weidmueller connectors |
8.20-
|
16,40-
|
1 | 3-polige Weidmueller connector |
4,30-
|
4,30-
|
1 | 7-polige Weidmueller connectors |
8.50-
|
8,50--
|
6 | Tubular Solenoid Intertec ITS-LZ-1642-D-12VDC |
27.50-
|
165,00-
|
1 | LED - 5 mm |
0.30-
|
0,30-
|
1 | programmeerconnector 6p. |
1.25-
|
1,25-
|
1 | PCB, Europrint -JT met masker |
9,60-
|
9,60-
|
1 | werkdag assemblage en testen hardware |
350,00-
|
|
748,45-
|
-> totaal kost voor een 5-oktaafsinstrument: ca.10.000,-