MCV876 Controller Update

Aus Synthesizer Wiki
Version vom 21. Juni 2011, 20:52 Uhr von Fetz (Diskussion | Beiträge) (Created page with '= ATMEGA88 CPU für MCV876 Midi Interface = WARNUNG: Dieser Artikel ist in Arbeit und kann sich jederzeit deutlich ändern. Das Projekt ist zwar schon recht weit fortgeschritt…')
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

ATMEGA88 CPU für MCV876 Midi Interface

WARNUNG: Dieser Artikel ist in Arbeit und kann sich jederzeit deutlich ändern.

Das Projekt ist zwar schon recht weit fortgeschritten (sprich: die Software tut, was sie soll), die Dokumentation ist aber derzeit Baustelle und unvollständig.


Worum geht’s?

Das Midi-Interface MCV876 von Marc Bareille hat im Original einen PIC-Controller. Der muss aus Rechenleistungs- und Speichergründen in Assembler programmiert werden, was Wartung und Pflege erschwert.

Hier wird ein alternativer Controller für die gleiche Hardware beschrieben. Mit dem Atmel ATMEGA 88 steht ein halbwegs Pinkompatibler Controller zur Verfügung, der komfortabel in C programmiert werden kann. Um diesen Controller auf der für den PIC gedachten Platine verwenden zu können, ist ein Adapter-Sockel nötig. Die Software für den ATMEGA ist einiger Hinsicht kompatibel zum Original-Controller. Allerdings ist es kein 100% Clone, einige Funktionen der PIC-Software sind mir auch verborgen geblieben.

Deshalb kann es sehr gut sein, dass die Funktionen abweichen. Diese Beschreibung bezieht sich ausschließlich auf die Software für den ATMEL Controller. Der Controller wurde mit Blick auf dem Einsatz im Semtex XL (und vergleichbare Mono-Synths) entwickelt, für andere Einsatzfälle mögen Systementscheidungen daher nicht optimal sein. Die Software ist unter der GPL veröffentlicht. Als Entwicklungsumgebung kommt das (kostenlos verfügbare) ATMEL AVR Studio 4 zum Einsatz. Ist der Controller einmal mit einem Bootlader versehen worden, ist ein Software-Update über Midi im Gerät möglich. Damit kann man mit komplett kostenlos verfügbarer ToolChain und ohne (Programmier-) Hardware eigene Codeänderungen einpflegen.

Ausstattungsmerkmale

Die Beschreibung ist für das komplette Interface, d.h. MCV876 Platine (bzw. der entsprechende Teil auf der SEMTEX-XL Platine) mit dem ATMEGA88 Controller.

Hardware

4 Spannungsausgänge (CV) von 0-10V

6 Gate Ausgänge 0 auf 5V schaltend.

1 LED „Universalanzeige“

1 Taster.

Midi-Eingang

Midi-Thru Ausgang

(Es gibt keinen Midi-Ausgang, das Interface kann also nicht ausgelesen werden. )

Funktionsübersicht – Standardbelegung

Das Interface kann zwar (über Midi und Sys-Ex Befehle) durchaus unterschiedlich konfiguriert werden. Zunächst aber die Standardbelegung. Die ist einkanalig und monophon.


CV 1 Tonhöhe (Noten) Gate 1 Note-ON
CV 2 Velocity Gate 2 CC 18
CV 3 Mod Wheel Gate 3 CC 19
CV 4 Pitch Bend Gate 4 CC 20
Gate 5 Midi Start/Stop
Gate 6 Midi Clock /6 (entsprechend 16-tel)


CV 1 und Gate 1 sind die Standardausgänge für den Tonhöhen. und Gate-Eingang des Synths. Die CV ist für 1V/Oktave ausgelegt. CV2 ist die Anschlagstärke und geht von 0-5V. CV3 ist der Pitchbender, in Mittelstellung liegen hier 5V an, es geht von 0...10V. CV4 ist das Modulationsrad, von 0 (Ruhestellung) bis 5V.

Bedienung

Im „Normalbetrieb“ gibt es gar nichts zu Bedienen, das Interface setzt eben Midi auf CV & Gate um.

Midi-Kanalwahl

Um den Midi Kanal neu Einzustellen die Taste vom Interface drücken, bis die LED leuchtet. Dann eine Note mit dem gewünschten Kanal am Keyboard spielen. Das Interface stellt sich auf diesen Kanal ein. Die LED blinkt drei mal, um das permanente Abspeichern des Kanals anzuzeigen.

Grund-Note einstellen

Die „tiefste Note“, also die Note, bei der das Interface 0 V ausgibt, wird ganz ähnlich wie der Kanal eingestellt. Taste drücken, bis die LED angeht, dann gewünschte tiefste Note spielen. Die LED blinkt drei mal, um das permanente Abspeichern der Note anzuzeigen. Controller für CV3 einstellen Taste drücken, bis die LED angeht, dann einen Controller bewegen. Dieser Controller wird dem dritten Steuerspannungsausgang zugewiesen. Die LED blinkt drei mal, um das permanente Abspeichern des Controllers anzuzeigen. (Wo das jetzt hier zum dritten mal leicht unterschiedlich steht: die finstere Wahrheit ist, das jedes mal die komplette Konfiguration gespeichert wird. )

Alle Noten aus

Taste kurz drücken. Dann werden alle Noten auf „aus“ gesetzt und die Controller auf 0 zurückgestellt. Da Midi immer nur Datenänderungen überträgt, kann es schon mal zu hängenden Noten und schief stehenden Controllern kommen. Dann hilft ein kurzer Druck auf die Taste. Das Interface selber sollte das bei korrektem Midi-Datenstrom allerdings niemals alleine fertigbringen. Nur ist nicht jeder Midi-Datenstrom immer korrekt.

Active Sense

Das Interface wertet Active-Sense Nachrichten aus. Erzeugt der Controller (bzw. das sendende Midi-Interface) Active-Sense und zieht man dann das Midi-Kabel ab, werden (nach 330ms) alle Noten ausgeschaltet. Roland und Edirol senden das eher mal, die andern eher nicht.

Erweiterte Einstellungen

Der Controller ist Sys-Ex-Kompatibel zum PIC-Controller des MCV876, er lässt sich daher mit dem gleichen PC-Programm einstellen.

Bei der Programmierung wird der Midi-Kanal ignoriert, man kann also nur ein Interface diesen Typs zur Zeit (oder mehrere genau gleich) konfigurieren. Damit die Konfiguration permanent bleibt, muss sie gespeichert werden (Chip-Symbol drücken, LED am Interface blinkt 3 mal. )

Es werden 3 grundsätzliche Betriebsarten (Mode) unterschieden: Mono (default). 1 Kanal Monophon.

Multi 2. 2 Kanal Monophon

Multi 4. 4 Kanal Monophon

Die weiteren Kanäle werden über den nächsten oder die drei nächsten Midi-Kanäle angesteuert. (Sollte man dabei Kanäle „über 16“ bekommen, kann man diese nicht ansteuern. )

Im DAC-Feld kann für jede CV (=jeden Steuerspannungs-Ausgang) gewählt werden, wie er gesteuert wird.

Ist das CC-Feld aus (nicht grün), dann wird eine Tonhöhenspannung erzeugt. Im „Mono“ Mode ist das ggfls. 4 mal die gleiche, in Multi2 gehören DAC 1 und 2 zum ersten und DAC 3 und 4 zum 2. Midi-Kanal. In Multi 4 gehört jeder DAC zu einem Midi-Kanal.

Ist das PB-Feld aktiv, wird der Pitch-Bend Wert auf die Ausgangsspannung addiert.

Ist das VL-Feld aktiv, wird die Anschlagstärke (Velocity) auf die Ausgangsspannung addiert.

Ist das CC-Feld aktiv, wird der eingestellte Controller als Grundwert genommen, und nicht die Tonhöhe.

Das 5V-Feld schaltet im Tonhöhen-Modus die Ausgabe so um, das ein auf 5V Full-Scale skalierter Wandler 1V/Oktave macht. Das sind dann nur 5 Oktaven, aber doppelt so viele Bits, d.h. die Töne treffen besser.

Im CC-Modus werden die Ccs auf 5V skaliert, nicht auf 10V. Da sie nur 7bittig sind ist das ausreichend, oft sinnvoller skaliert, und dadurch das es einige „Additionen“ gibt generell eher sinnvoll.

Die Gates 1-4 sind den Tonhöhenkanälen fest zugeordnet, gibt ein DAC eine Tonhöhe aus, ist das zugehörige Gate auch Note an/aus.

Ist der DAC auf CC gestellt, kann der Gate-Ausgang einem Controller zugewiesen werden, das Gate ist an, wenn der Controller über den Wert gestellt wird, der bei Tresh.(hold) eingestellt ist.

Duration und Gate 5 im „Triggers“-Feld haben keine Funktion. (Wenn mir dazu was sinnvolles einfällt, dann ändert sich das noch..)

Unter Midi-Clock wird eingestellt, was Gate 6 erzeugt. Midi-Clock sind 24 Ticks pro Viertel-Note. (6=16tel, 12=8tel, 24=1/4) Gate 5 ist immer Midi-Start/Stop.