Elektor
2/2000
Fast jeder PC verfügt heutzutage über
eine Soundkarte. Doch die meisten
Anwender nutzen sie ausschließlich
zur Wiedergabe von Sounds des
Betriebssystems, Audio-CDs oder
Soundeffekten von Spielen und Prä-
sentationen. Sie gebrauchen also ledig-
lich die Standardfeatures der zur
Soundkarte gehörenden Software,
obwohl es ausgezeichnete Programme
gibt, die es selbst dem Unmusikalisch-
sten erlauben, die vielfältigen Mög-
lichkeiten einer modernen Soundkarte
auszuschöpfen, die sogenannten Soft-
ware-Synthesizer.
Solche Synthesizer sind manchmal
sogar Teil des Softwarepakets, das
zum Lieferumfang (besserer) Sound-
karten gehört. Es gibt aber auch nicht
an eine Soundkarte gekoppelte Soft-
ware-Syntesizer wie Generator von
Native Instruments oder Rebirth von
Propellerhead. Softwarepakete simulie-
ren die Funktion und die Bedienung
eines Synthesizers: Ein Bildschirm
voll mit Schiebereglern und Dreh-
knöpfen, die mit der Maus bedient
werden und eine Art gordischen
Knoten für denjenigen darstellen, der
mehr machen möchte als nur einen
einzelnen Regler zu verstellen.
Die Schaltung, die wir in diesem Arti-
kel präsentieren, vereinfacht die Arbeit
mit einem Software-Synthesizer erheb-
lich. Sie nutzt die Fähigkeit von Soft-
ware-Synthesizern, MIDI-Kodes emp-
fangen und diese dazu verwenden zu
können, bestimmte Controller anzu-
steuern. Die Hardware der MIDI-
Knobbox kann daher sehr einfach
gehalten werden: Ein Mikrocontroller
liest über einen 8-Kanal-A/D-Wandler
reihum die Stellungen acht gewöhnli-
cher Potis. Verändern sich eine oder
mehrere Poti-Stellungen, verschickt der
Mikrocontroller diese Information im
MIDI-Format zum MIDI-Eingang der
Soundkarte. Der Software-Synthesizer
übersetzt die MIDI-Kodes in neue Stel-
lungen für die betroffenen Controller.
L
A Y E R
U N D
S
U P E R
- L
A Y E R
Im Zusammenhang mit MIDI taucht
oft der ein wenig nebulöse Begriff Layer
auf. Dies sind schlicht und einfach
Gruppen von jeweils acht Funktionen
des Synthesizers, die mit den acht Potis
der Knobbox korrespondieren, also
eine Art Mehrfachbelegung der Potis.
Die umständ-
liche Tastatur-
und Mausbe-
dienung der
Unzahl von
Knöpfen und Reglern
auf der Mattscheibe
des PC-Monitors
macht Sound-Tüfte-
leien mit einem Soft-
ware-Synthesizer oft-
mals zur Qual. Mit der
MIDI-Knobbox wird
das anders!
30
Entwurf von Thorsten Klose
Software-Synthesizer einfach bedient
MUSIK
MIDI-Knobbox
Die Knobbox besitzt Drucktasten, um
einen von sechs Layern auszuwählen.
Je nach gewähltem Layer verschickt
dann ein und dasselbe Poti (bezie-
hungsweise der Controller) unter-
schiedliche MIDI-Kodes.
Nun ist die Zuordnung der Layer zu
den spezifischen Funktionen nicht bei
allen Synthesizern gleich, vielmehr las-
sen sich unterschiedliche Syntheziser-
Gruppen ausmachen. Die verschiede-
nen Zuordnungsarten werden Super-
Layer genannt. Die Software der
Knobbox kennt die drei gebräuchlich-
sten Gruppen und paßt die MIDI-
Kodes deren spezifischen Bedürfnissen
an. Tabelle 1 gibt eine Übersicht des
Inhalts der sechs Layer innerhalb der
drei Super-Layer.
H
A R D W A R E
Die wichtigsten schon erwähnten Ele-
mente der Hardware sind in der Schal-
tung in Bild 1 schnell ausgemacht: Die
acht Potis sind an den Kanälen 0...7 des
Analog/Digital-Wandlers IC1 ange-
schlossen. Der MAX186, der schon in
mehreren Elektor-Projekten eingesetzt
wurde, verfügt über ein Interface zum
Mikrocontroller IC2, über das sowohl
die Datenausgabe
(DOUT) und Takt
SCLK) als auch die Ein-
stellung des Multiple-
xers (DIN) erlaubt. Die
Steuerung des Wandlers verläuft über
die Anschlüsse SSTRB und CS, alles im
Takt von SCLK.
Der Mikrocontroller ist ein PIC16F84,
der mit 10 MHz getaktet wird. Neben
den Poti-Stellungen liest er auch die
Einstellungen des Layers (S1...S6),
des MIDI-Kanals (S9...S12) und
außerdem zwei weitere Taster, näm-
lich MEMO und RESET. Über die
Bedeutung aller Taster und Schalter
informiert Tabelle 2.
Über Portleitung RB7 findet die MIDI-
Kommunikation mit der Soundkarte
statt. Eine optische Kontrolle der MIDI-
Signale erlaubt (die blinkende) LED
D2. Nicht ohne Grund sind hier zwei
Anschlußvarianten eingezeichnet. Die
Knobbox sollte nur über ein echtes
MIDI-Interface mit optischer Trennung
an die Soundkarte angeschlossen wer-
den. Ein optisch isoliertes Interface
gehört beispielsweise beim AWE-64-
Paket zum Lieferumfang, kann aber
auch einfach nachgerüstet werden.
Dabei läßt man entwe-
der circa 50 DM im
Computershop oder
kupfert eine der zahl-
reichen Elektor-Schal-
tungen ab (zum Beispiel das MIDI-
Interface im Halbleiterheft 1995, S. 58).
Nicht so schön, aber - wenn keine
anderen MIDI-Geräte angeschlossen
sind - denkbar ist der Anschluß der
Knobbox direkt vom Mikrocontroller
an die 15-polige Joystick-Schnittstelle,
die ebenfalls über einen MIDI-IN-Ein-
gang verfügt. Dabei schützt ein 220-
Ω
Reihenwiderstand in der Datenleitung
vor Kurzschlüssen. Einen Vorteil hat
diese Anschlußart: Die Spannungsver-
sorgung der Knobbox kann über die
Joystick-Verbindung erfolgen, so daß
D3, C17, C18 und IC3 entfallen.
Damit sind wir auch schon bei der
Spannungsversorgung. Bei “echter ”
MIDI-Schnittstelle ist eine externe
Stromversorgung unabdingbar, um die
galvanische Trennung von PC und
MIDI-Geräten sicherzustellen. Für aus-
reichend stabilisierte +5 V werden nur
C17...C19 und Festspannungsregler
IC3 benötigt. Die Energie liefert ein
einfaches +12-V-Steckernetzteil. D3
31
Elektor
2/2000
PIC16F84
OSC2
IC2
OSC1
MCLR
RA4
RA0
RA1
RA2
RA3
RB0
RB1
RB2
RB3
RB4
RB5
RB6
RB7
17
18
13
12
11
10
16
15
14
1
3
9
8
7
6
2
4
5
MAX186
REFADJ
SSTRB
IC1
DGND
AGND
DOUT
SCLK
SHDN
VREF
VSS
CH0
CH1
CH2
CH3
CH4
CH5
CH6
CH7
DIN
20
13
14
17
15
19
16
18
CS
10
11
12
9
1
2
3
4
5
6
7
8
C15
33p
C16
33p
X1
10MHz
R3
10
Ω
C10
100n
C9
10µ
63V
C13
10µ
63V
C17
10µ
63V
C19
10µ
63V
C14
100n
C18
100n
C11
100n
C12
100n
K3
C8
K5
R4
10k
K4
R1
1k5
7805
IC3
D1
R2
1k
470
Ω
P9
R15
10k
R14
10k
R13
10k
R16
10k
R11
10k
R10
10k
R9
10k
R12
10k
D3
1N4001
8x 100n
C7
C6
C5
C4
C3
C2
C1
R6
220
Ω
R8
1k5
D2
R7
10k
T1
BC547B
K1
R5
220
Ω
2
3
1
5
4
K2
K7
10
11
12
13
14
15
1
2
3
4
5
6
7
8
9
K6
P1
P2
P3
P4
P5
P6
P7
P8
K9
K10
S9 ... S12
3
S1
S2
S3
S4
S5
S6
S7
S8
1
2
4
8
5V
5V
5V
5V
INIT
VALUE
MIDI
DATA
MIDI CHANNEL
1
1
2
3
4
5
6
7
8
CV
CV
CV
CV
CV
CV
CV
CV
2
3
4
5
6
LAYER
MEMORY RESET
+5V
P1...P8 = 8x 47k
-10/P
K10
K9
K6
K5
K3
*
*
see text
*
zie tekst
*
siehe Text
*
voir texte
*
990087 - 11
12V
CV
1
2
3
4
K4
1
Bild 1. Der Mikrocon-
troller liest die Status
der Taster/Schalter
sowie sukzessive die
Werte der acht Potis.
verhindert, daß ein Verpolen des Netz-
teils die Elektronik beschädigen kann.
A
U F K L E I N S T E M
R
A U M
Um ihnen den Aufbau der Knobbox so
bequem wie möglich zu machen,
haben wir eine zigarettenschachtel-
große Platine entworfen (Bild 2), die
im Elektor-Produkt-Service mit der
Bezeichnung 990087-1 erhältlich ist.
Die Platine ist in einer guten halben
Stunde bestückt, Probleme sollten sich
dabei nicht ergeben. Achten sie auf die
korrekte Polarität der Elkos, der LEDs
und der ICs und vergessen sie nicht
die Drahtbrücke neben K5.
Anschließend bereitet man die
Bedieneinheit vor. Die Taster, Potis und
Schalter lassen sich in sinnvoller Anord-
nung wie in Bild 3 an der Frontplatte
festkleben und frei mit Flachbandkabel
verdrahten. Oder man befestigt die
Bauteile auf einer Lochrasterplatine
und verdrahtet sie in Fädeltechnik.
32
Elektor
2/2000
Tabelle 1. Zuweisung der Potis zu Layern und Super-Layern.
Layer
P1
P2
P3
P4
P5
P6
P7
P8
super-layer1 (Synthesizer AWE, EMU8000 und EMU10k-1)
layer1
Controller 10..17
layer2
Controller 18..1F
layer3
volume
Pan.
expr.
mod.
LP cutoff
LP reson.
Chorus
Reverb
layer4
LFO1 delay
LFO1 freq.
LFO1 pitch
LFO1 vol.
LFO2 delay
LFO2 freq.
LFO2 pitch
LFO2 vol.
layer5
Env1 delay
Env1 attack
Env1 hold
Env1 decay
Env1 sustain Env1 release
Env1 pitch
Env1 cutoff
layer6
Env2 delay
Env2 attack
Env2 hold
Env2 decay
Env2 sustain Env2 release
-, -
super-layer2 (XG-Synthesizer)
layer1
Controller 10..17
layer2
Controller 18..1F
layer3
volume
Pan
expr.
mod.
portamento
reverb
chorus
variation
layer4
attack
Decay
release
vib. Delay
vib. Rate
vib. Depth
cutoff
resonance
layer5
pitch init
Pitch attack
pitch rel.
p.r. time
vel. lim. L
vel. lim. H
-, -
layer6
ben. Pitch
Ben. Filter
ben. ampl.
ben. LFO
PMOD
ben. FMOD
D
ben. AMOD
super-layer3 (Software-Synthesizer)
layer1
Controller 00..07
layer2
Controller 08..0F
layer3
Controller 10..17
layer4
Controller 18..1F
layer5
Controller 20..27
layer6
Controller 28..2F
Tabelle 2. Funktion der Bedienelemente
Bauteil
Bezeichnung
Bedeutung
LED D2
MIDI Message
Blinkt, wenn eine MIDI-Message über den MIDI-OUT-Port gesendet wird.
Blinkt auch, wenn ein Poti genau zwischen zwei Quantisierungsniveaus steht.
LED D1
Init Value
Blinkt nach dem Einschalten zum Zeichen, daß ein der drei Super-Layer mit
S1...S3 eingestellt werden muß, leuchtet, wenn am zuletzt gedrehten Poti der
Initialisierungswert eingestellt wurde.
Schalter S1...S4
MIDI-Channel
Über diese vier Schalter wird der MIDI-Kanal eingestellt (binär kodiert).
Potis P1...P8
Fader
Potis, an denen die Werte eingestellt werden.
Taster S1...S6
Layer
Selektieren die Layer 1...6, nach dem Einschalten S1...S3 auch den Super-
Layer.
Taster S7
Memo
Zuletzt modifizierte Werte im aktuellen Layer speichern.
Taster S8
Reset
Aktuelle Werte durch vordefinierte Initialisierungswert überschreiben.
Natürlich können sie auch eine “echte”
Platine entwerfen. Die Flachbandkabel
werden schon im Hinblick auf den Ein-
bau in ein Gehäuse konfektioniert.
T
E S T
Um die Knobbox ausgiebig testen zu
können, benötigt man unbedingt
einen MIDI-Monitor mit MIDI-Thru-
Funktion für den PC, damit man die
gesendeten MIDI-Daten auf dem
Monitor beobachten und die Potis rich-
tig abgleichen kann. Mehr über einen
geeigneten MIDI-Monitor finden sie
im Kasten. Nach einem Sichtcheck der
Lötarbeiten steckt man nun die Kom-
ponenten zusammen, koppelt die
Knobbox mit dem PC, schaltet alles ein
und startet den MIDI-Monitor. Da im
jungfäulichen Zustand des PICs alle
Werte auf FF
H
stehen, werden sie
durch einen Druck auf die RESET-Taste
auf laut MIDI-Protokoll gültige Werte
gesetzt. Dann wählt man Super-Layer1
und Layer1 (default), indem man zwei-
mal auf S1 drückt.
Jetzt kommt der Augenblick der
Wahrheit: Beim Drehen an den Potis
sollte LED D2 aufblitzen und der
MIDI-Monitor Steuer-
kodes anzeigen. Die
Werte bewegen sich
zwischen 0 und 127.
Falls dies nicht geschieht, überprüft
man den Schaltungsaufbau, die Verka-
belung und die Einstellungen des
MIDI-Monitors gründlich, und wenn
sich danach noch immer nichts tut,
kann man Windows oder die Sound-
karte verfluchen.
Wenn der MIDI-Monitor jedoch die
ersten MIDI-Events anzeigt, ist alles in
Ordnung. Das Trimmpoti P9 in der
Schaltung bietet übrigens eine
Abgleichmöglichkeit, damit sich die
Werte wirklich zwischen 0 und 127
einstellen lassen. Man
überprüft, ob der
MIDI-Kanal an
S9...S12 (binär) geän-
dert werden kann und ob der Wechsel
des Layers funktioniert. Beim Wechsel
der Layer werden grundsätzlich alle
zuletzt gespeicherten Werte der Potis
über die MIDI-Schnittstelle ausgege-
ben. Dies hat den Vorteil, dass die
Parameter des Synthesizers respektive
der Soundkarte so zurückgesetzt wer-
den, wie sie zuletzt gespeichert wur-
den. Verstellt man beispielsweise in
Layer 3 die Lautstärke, wechselt in
einen anderen Layer und kehrt später
wieder zu Layer 3 zurück, nimmt die
33
Elektor
2/2000
990087-1
(C) ELEKTOR
C1
C2
C3
C4
C5
C6
C7
C8
C9
C10
C11
C12
C13
C14
C15
C16
C17
C18
C19
D1
D2
D3
H1
H2
H3
H4
IC1
IC2
IC3
K1
K2
K3
K4
K5
P9
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13
R14
R15
R16
T1
X1
3
1
990087-1
2
4
+
0
990087-1
(C) ELEKTOR
2
Bild 2. Die MIDI-Knobbox
läßt sich auf dieser klei-
nen Platine realisieren.
Stückliste
Widerstände:
R1,R8 = 1k5
R2 = 1 k
R3 = 10
Ω
R4,R7,R9...R16 = 10 k
R5,R6 = 220
Ω
P1...P8 = 47 k Poti linear
P9 = 470
Ω Trimmpoti
Kondensatoren:
C1...C8,C10...C12,C14,C18 = 100 n
C9,C13,C17,C19 = 10 µ/63 V radial
C15,C16 = 33 p
Halbleiter:
D1,D2 = LED high eff
D3 = 1N4001
T1 = BC547B
IC1 = MAX186BEPP
IC2 = PIC16F84-10/P (EPS996521-1)
IC3 = 7805
Außerdem:
K1 = 4-poliger SIL-Verbinder
K2 = 2 Lötnägel
K3,K6 = 10-poliger SIL-Verbinder
K4,K9 = 5-poliger SIL-Verbinder
K5,K10 = 6-poliger SIL-Verbinder
K7 = 15poliger Sub-D-Verbinder für
Chassismontage, male *
K8 = 5-polige DIN-Chassisbuchse
180° *
K11 = Steckernetzteil-Buchse
S1...S8 = Drucktaster 1
⋅an
S9...S12 = Schalter 1
⋅an
X1 = Quarz 10 MHz
Gehäuse: TEKO 363
(216
⋅130⋅77mm
3
)
Platine EPS 990087-1
Progr. PIC (EPS 996521-1)
(Siehe Service-Seiten in der
Heftmitte)
Lautstärke wieder
ihren ursprünglichen
Wert an. Möchte man
dies verhindern, ist vor
dem Layerwechsel
lediglich die MEMO-
Taste zu drücken.
Dabei werden übrigens
nur die Werte gespeichert, die nach
dem letzten Layerwechsel geändert
wurden.
(990087)rg
34
Elektor
2/2000
M R P C
MIDI REMOTE PARAMETER CONTROL
0
127
3
0
127
5
0
127
7
0
127
1
2
LAYER
MEMORY
1
MIDI
DATA
INIT
VALUE
RESET
2
3
4
5
6
CHANNEL
0
127
4
0
0
0
127
6
127
8
127
990087 - F
+
-
MIDI-Monitore
Es gibt eine Reihe von brauchbaren MIDI-Monitoren für den PC.
Ein hervorragend geeignetes Programm ist MIDI-OX, das als
Beta-Version kostenlos im Internet unter
www.members.xoom.com/_XOOM/MIDIOX/moxbeta.htm erhält-
lich ist. Nach Installation und Programmstart müssen zunächst die
MIDI-Geräte (Menü Options/MIDI Devices oder Klick auf den dun-
kelblauen Knopf mit dem fünfpoligen DIN-Verbinder) selektiert
werden (Bild A). Auf diesem PCl ist der MIDI-Ein- und der MIDI-
Ausgang der SoundBlaster SB16 aktiv.
Das MIDI Port Activity-Fenster in Bild B erscheint durch Druck auf
die hellgrüne DIN-Ikone in der zweiten Knopfgruppe. Jeder MIDI-
Ein- und -Ausgang erhält eine eigene Reihe “LEDs”, damit deut-
lich ist, auf welchem MIDI-Kanal Aktivität ist.
Der Inhalt der gesendeten Daten erscheint im Monitor-Output. Die
erste Spalte gibt den (MIDI-OX-generierten) Zeitpunkt der MIDI-
Mitteilung an, die zweite den MIDI-Port, über den sie eingetroffen
ist (in diesem Fall Port 1 über SB16 MIDI). Das folgende Byte
0BF
H
besteht zur Hälfte aus einem Control Change (wird durch
ein B angegeben) und dem MIDI-Kanal (F entspricht MIDI-Kanal
16). DATA1 zeigt die Nummer des Controllers (hier 0...127),
DATA2 den zugeteilten Wert an. Genau wie bei DATA1 werden
auch hier nur die sieben LSBs gebraucht, so daß der Wertebe-
reich von 0...127 reicht. CHAN zeigt noch einmal den MIDI-Kanal.
Beachten sie, daß MIDI offiziell mit den Kanalnummern 1...16
arbeitet, viele Programme aber 0...15 gebrauchen.
Wenn andere Super-Layer aktiv sind oder der Layer gewechselt
wird, ändern sich auch die Meldungen im Monitor. Wer sich näher
mit den Hintergründen von MIDI beschäftigen möchte, findet im
Internet ausreichend Literatur, zum Beispiel Eddie’s Home - MIDI -
RPN and NRPN (http://members.delosnet.com.tlc/nrpn.htm).
MIDI-OX ist vor allem geeignet, um die Funktion von Geräten zu
kontrollieren. Wer sich tiefer in die Materie einarbeiten will, findet
einfach bedienbare und leistungsfähige Programme wie Generator von Native Instruments oder Rebirth von Propellerhead.
Von beiden Programmen sind kostenlose Demos erhältlich, die zeitlich (stark) beschränkt sind und über keine Speicherfunk-
tion verfügen, sich aber dennoch hervorragend zum “Spielen” mit der Knobbox eignen.
Bild 3. Eine sinnvolle
Anordnung der
Bedienelemente auf
der Frontplatte
(Maßstab 70%).
3