Forum: Mikrocontroller und Digitale Elektronik Midi-Application


von Chriz Baze (Gast)


Lesenswert?

Hallo,
Ich bin auf dem Gebiet totaler Anfänger und habe außer mit dem 68HCxx, 
den ich auch nur noch gerade so aus meiner Schulzeit kenne ;) keine 
Erfahrung.

Und zwar möchte ich einen Sequenzer basteln, um meinen Novation 
Drumstation - Synthesizer im Stile der TR 808/909 anzusteuern. Gibt es 
da eventuell schon fertige Projekte in der Art oder muss ich mir die 
ganze liebe Arbeit selber machen ? g

THX schonmal

Chris

von Andreas S. (andreas) (Admin) Benutzerseite


Angehängte Dateien:

Lesenswert?

Ich habe sowas mal angefangen, aber irgendwann das Interesse daran 
verloren. 16 Tasten mit LEDs (geplant) waren als Matrix an einem AVR 
angeschlossen, das UART diente als Midi-Ausgang. Den "aktuellen" Stand 
hab ich mal angehängt. Wie du siehst ist es noch sehr minimalistisch - 
aber das was da ist funktioniert. Die passende Hardware dazu habe ich 
auch noch irgendwo rumliegen. Könnte ich ja eigentlich wieder mal 
weiterbasteln...

Andreas

von mikki merten (Gast)


Lesenswert?

Deine Projektidee hat noch wenig mit MIDI zu tun. Beide Geräte stammen 
ja noch aus der PRE-Midi Zeit. Da die Novation aber meinen Informationen 
nach nur über einen TR808/809 Sync-Ausgang aber keinen Eingang verfügt 
müssest du hier erst einmal ein entsprechendes Interface nachrüsten.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Also ich hab das so verstanden, dass die Novation nur als Sounderzeuger 
benutzt werden soll.

von mikki merten (Gast)


Lesenswert?

@Andreas
Ich auch. Und die hat keinen serienmässigen Eingang wie die Roland.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Natürlich kann die DrumStation Midi. 1995 ist auch ganz sicher nicht 
mehr "Pre-Midi Zeit".

von mikki merten (Gast)


Lesenswert?

@andreas
1995 war noch "Pre-Midi-Zeit" bei Instrumenten mit anloger 
Klangerzeugung. War den Herstellern damals einfach zu teuer, den 
Standard einzubauen. Kostet heute ja nur noch Pfennige im Vergleich zu 
damals. Wenn aber schon ein DrumStation mit MIDI I/O vorhanden ist, dann 
verstehe ich das Problem nicht ganz. Dann reicht ja ein einfacher AVR 
als MIDI Sequenzer der lediglich die entsprechen Sequenzen seriellen mit 
31250 Baud (eigentlich richtigerweise bps) mit 8 Daten - und einem 
Stopbit ausgibt. Natürlich muss man sich dann mit dem entsprechen 
Programming Manual für die korrekten Controller-Sequenzen befassen. 
Gerade im Bereich der System Exclusiv Messages kocht ja jeder Hersteller 
sein eigenes Süppchen.

von Bernhard T (Gast)


Lesenswert?

Chriz, ich denke du solltest unbedingt noch mal sagen was du dir unter 
dem Sequenzer eigentlich vorstellst. Bei http://www.uCApps.de/uC.html 
gibt es sogenannte MIDI Boxen, mit denen man schon ne Menge machen kann 
(aber eher in Richtung Parameter in Echtzeit verändern ). Leider meist 
mit den teuren PIC16F877 und Quelltext wird auch nicht angegeben. Wenn 
du eher was in Richtung Schlagzeugspielen auf Tasten suchst, ist der 
Ansatz eher bei Andreas zu finden (beides zusammen währe ja vielleicht 
auch nicht schlecht).
Gruß Bernhard

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Also das was ich machen wollte ist ganz einfach ein 808-Klon mit 
Midi-Ausgang, aber ohne eigene Tonerzeugung. Ich denke das ist es was 
Chris meint.

von Chriz Baze (Gast)


Lesenswert?

Hi
Also die Drumstation ist BJ 98 und hat klar einen Midi-Eingang wobei 
jede Note einem bestimmten Drumevent entspricht.
OK - also noch einmal eine Erklärung für die, die nicht ganz verstanden 
haben was ich meine:
16 Tasten dienen zur Programmierung des Sequenzers - dabei steht jede 
Taste für einen Step im 16ntel-Takt. Der Prozessor soll den Zustand der 
tasten (1 oder 0) geloopt abarbeiten und je nachdem eben eine bestimmte 
Midi-Note ausgeben oder auch nicht. Wird z.B. die Note C1 gesendet soll 
in dem Moment die Basedrum abgespielt werden.
Das Genze sollte auch noch für jede Note getrennt funktionieren -  dh zB 
wenn Basedrum und HiHat angesteuert werden sollen dann sieht das erste 
über die Tasten eingegebene Muster so aus (in Noten bzw keine Note 
angegeben):

c1 - - - c1 - - - c1 - - - c1 - - -

dann soll umgeschaltet werden auf die Ausgabe einer anderen Note (z.B. 
Fis1 = Hihat). Noch während die Basedrum weiterläuft kann widerum über 
die 16 Tasten der Takt der Hihat eingegeben werden - zB:

- - Fis1 - - - Fis1 - - - Fis1 - - - Fis1 -

die Ausgabe an den Synthesizer sieht dann insgesamt folgendermaßen aus:

c1 - Fis1 - c1 - Fis1 - c1 - Fis1 - c1 - Fis1 -

Also alles im Stile der echten 808/909 - nur daß der Klagerzeueger 
selber per Midi mit dem Sequenzer verbunden ist.
Hoffe denen, die es erst nicht verstanden hatten, ist klar geworden was 
ich meine

@ Andres: Danke schonmal - werd deine Entwicklung jetzt mal n bisschen 
entschlüsseln (wie gesagt - bin Anfänger g)

Grüße

Chris

von Chriz Baze (Gast)


Lesenswert?

Was ich noch vergessen hatte:
Das ganze soll nicht ganz so funktionieren wie die klassischen 
Vorbilder. Also ich denke wenn man die klassischen Vorbilder genau 
simulieren will schreibt man zB den Zustand der Tasten für jedes 
Instrument einzeln jeweils in einen Speicher und schaltet am Gerät nur 
zwischen den Instrumenten um. Ich will aber einen Direktzugriff auf 6 
Instrumente ohne umschalten zu müssen (also mit 6 x 16 Tasten); dazu 
sollte das ganze eine Syncronisation haben, da das Gerät im Live-Einsatz 
in den Midi-Setup eingebunden werden soll.
Jetzt meine Frage dazu:
Ist ein AVR überhaupt schnell genug um damit klar zu kommen und das 
Protokoll selber zu erzeugen oder ist es eher so wie ich denke - nämlich 
daß man um extra Midichips nicht herumkommt?
Kennt jemand eine ordentliche Dokumentation über das Midi-Protokoll?

THX

Chris

von Bernhard T (Gast)


Lesenswert?

Hallo Chriz,
vielen dank für deine ausführlichen Erläuterung zum Sequenzer. Ich habe 
bisher keine Erfahrung mit Drumcomputern, würde mich aber gerne an `nem 
Midiprojekt beteiligen. Was das Midiprotokoll angeht: 
http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&item=2060986323 ich habe 
genau die gleiche Ausgabe - ist wirklich sehr ausführlich. 
Gegebenenfalls könnte ich dir auch mal ein paar Seiten daraus Kopieren. 
Der Andreas hat ja schon gezeigt, wie man die Midi Daten via UART 
rausschicken kann. Ich denke der AVR sollte schnell genug sein.Ein Midi 
Out Treiber 5 mA (notfalls ein Transistor), ein Optokoppler für Midi In 
und ein paar Wiederstände, Schutzdiode sollte für das Interface reichen.
Gruß Bernhard

von hammer_c (Gast)


Lesenswert?

Hallo Chris!

http://www.hinton.demon.co.uk/ - da gibts ne menge midi-infos... incl. 
Schaltungsaufbau von Midi-Interfaces und das Datenformat etc...

Geschwindigkeitsmäßig ist das wohl kein Thema... ein AVR mit z.B. 8Mhz 
lacht da einmal kurz drüber ein paar Bytes Midi-Daten mit 31.25 Kbaud zu 
verschicken...

wenn du keine große Lust hast, viel zu basteln, hol dir ne 707 (die 
Midi-Noten rausschickt) und bau dir lediglich eine Midi-Box die die 
Noten auf die entsprechenden Sounds deiner Drumstation ummappt... (das 
beeinhaltet dann allerdings nicht die Geschichte mit deiner 6x16Tasten 
Matrix)...

auf jeden Fall hörts sich nach einem interessanten Projekt an... halte 
uns auf dem Laufenden!

im übrigen finde ichs ziemlich gut, daß es hier doch einige Leute zu 
geben scheint, die sich mit Synthis und Midi-Projekten auseinandersetzen 
(so wie ich zur Zeit). was habt ihr denn so feines gebastelt?

ciao christian

von Chriz Baze (Gast)


Lesenswert?

OK - nur damit es hier ja keine Enttäuschungen gibt:
Meine Elektronikerfahrung reicht bis jetzt nicht viel über ein bisschen 
Digitaltechnik, passive Bauelemente, OPS usw hinaus. Deshalb möchte ich 
jetzt nicht allzu große Hoffnungen erwecken, daß das 100%ig was wird. 
Die Zeit macht mir leichte sorgen - naja - ne Menge Geduld werd ich 
schon brauchen denk ich ;)

Aber mal zu meiner Grundidee und die mehr erfahrenen können mir bestimmt 
sagen ob das so klappen könnte oder nicht:

Auch wenn der Sequenzer nur 64 Tasten haben soll, soll eventuell doch 
die möglichkeit bestehen noch mehr als 6 Instrumente oder sogar weiter 
Drumcomputer anzusteuern ... und mit der ein oder anderen Zusatzfunktion 
wie eben Midi-Controller und mehrere Bänke könnte das ganze doch etwas 
rechenintensiver werden.
Deshalb eventuell 2 AVRs ?
Der erste liest den Zustand der Taster, aktiviert je nach Zustand die 
entsprechenden LEDs und schreibt die Midi-Daten in einen externen 
Speicher.
Der zweite liest den Speicher aus und wandelt alles in 
Midi-Informationen um.
So rein in der Theorie stelle ich mir das wesentlich einfacher vor als 
wirklich alles auf einen einzigen Chip zu packen - oder bin ich da im 
Unrecht ?

Grüße

Chris

von hammer_c (Gast)


Lesenswert?

Hallo Chris!

hmm, also 2 AVRs hören sich für mich eher nach Ressourcen-verschwendung 
an. Zumal das Zwischenspeichern der Midi-Daten in einen extra Speicher 
(+wieder auslesen) dem Timing deines Sequencers auch nicht gerade zu 
gute kommt. Sowas sollte man dann auch auf dem Punkt rausschicken, damit 
die Kiste auch tight läuft. Würde ich auf jedem Fall auf einem 
Controller implementieren ("größerer" Bauart wie den 8515, der immer 
noch genug I/O's für alles bietet und mit 8Mhz (s.o.) immer noch fix 
genug ist, alles locker zu machen).

Eine Sache, die hier noch garnicht angesprochen wurde, ist, daß du das 
Gerät ja sicherlich nicht als Standalone-Sequencer benutzen möchtest, 
sondern die Drumstation im vorhandenen Midi-Equipment auch die 
einprogrammierten Pattern mitspielen soll. D.h.: Midi-In basteln, 
Midi-Clock-Daten auswerten (die schön unregelmäßig reinkommen und man 
lustig durchschnittswerte o.Ä. berechnen muß, um ein anständiges Tempo 
zu erhalten) etc. um eine vernünftige Synchronisation zu gewährleisten. 
Ist alles nicht ganz ohne sowas... :)

ciao christian

von Chriz Baze (Gast)


Lesenswert?

ja - das hab ich befürchtet - deshalb hab ich den Gedanken der 
Syncronisation vorerst verdrängt g bis ich den Rest auf die Reihe 
bekommen habe.
Naja - werde später erst mal den Simulator anschmeißen, ein bisschen 
besser die AVRs kennenlernen und irgendwann in nächster Zeit das ganze 
mal mit nur 16 Tasten und nem 4433er testen ... wenn ich das erst ma 
raushätte wär ich ja schon überglücklich - dann kann der Rest auch nicht 
mehr so schwer sein ;)

@Bernhard T
Danke für das Angebot - denke aber falls der Link von hammer_c nichts 
bringen sollte und ich sonst nichts im Netz finde werd ich mir doch 
gleich das komplette Buch holen ;) Was das Angebot wegen Mitarbeit 
angeht find ich echt nett hier gleich so aufgenommen zu werden aber ich 
denke ich hänge dir vom Wissen her noch viel zu sehr hinterher - aber 
wenn sich daraus ein weiteres großes Hobby entwickeln sollte gerne mal 
;)

Grüße

Chris

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Das oben genannte Buch würde ich mir auf keinen Fall kaufen, da wirst du 
wohl kaum was über Midi finden. Schau dir lieber mal 
http://www.harmony-central.com/MIDI/ an. Note on und Note off sollte 
erst mal alles sein was du für die ersten Schritte brauchst. Das 
Midi-Protokoll ist wirklich trivial.

Zu der Midi-Clock: ich habe damit keine Erfahrung, aber es wäre doch 
wahrscheinlich am einfachsten, wenn du die Clock einfach selber erzeugst 
anstatt sie von der Drumstation zu empfangen. Midi-Eingang wäre dann 
auch überflüssig.

Den Midi-Ausgang und die paar Tasten und LEDs schafft ein einzelner AVR 
mit links. 2 Controller zusammen sind viel zu umständlich.

Andreas

von Chriz Baze (Gast)


Lesenswert?

Das wär auch ne Idee ... dann soll sich doch mein Yamaha-Sequenzer 
Gedanken machen wie er syncronisieren soll g... lässt sich so 
einstellen ... stellt also kein Prob dar.

Denke mit den 2 Links die ich jetzt über Midi hab kann ich schon 
ziehmlich viel anfangen.

THX

Chris

von Chriz Baze (Gast)


Lesenswert?

jetzt doch noch mal was dazu ob das ein einziger AVR schaffen kann. Da 
ich jetzt nicht doppelt posten will guckt einfach unter dem Thread 
"Effizienz von Bascom !?" rein. Also nach den Testergebnissen denke ich 
hat man zumindest in C geprogged keine Chance, daß das funktioniert wenn 
eine simple For ... Next - Schleife schon 125 µs benötigt. Oder ??
Sorry - ich kanns nicht lassen immer wieder mit dem Thema anzufangen ... 
was Assemblerprogrammierung angeht nehm ich euch das ja auch ab - aber 
bei C ist das so ne Sache lach

Grüße

Chris

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.