Austausch eines Musikstückes
Programmiert sind die Objekte im AVR Studio 4. Der Quellcode ist in C geschrieben mit meinen eigenen Bibliotheken.
Vorbereiten der Midi-Datei
Die Midi-Datei muss sich im Format0 befinden. Das mache ich mit dem freien Programm
Anvil Studio. Dort die
Mididatei öffnen und unter
Export Midi-Format 0 File ...
neu abspeichern.
Jetzt mit einem selbst geschriebenen Programm umwandeln (Nur Windows).
Zuerst in das Feld
*.h Datei erzeugen
klicken. Dann
muss bei erfolgreicher Umlandung
in das Midi-Format 0 im
Midi Format
die
Null
stehen
und bei
Anzahl Tracks
die
1
. Ansonsten geht es nicht.
Download für Umwandlungsprogramm: HIER
Das Programm muss nicht installiert werden. Einfach die MidiZuH.exe abspeichern und dann
doppelt klicken und damit öffnen (virenfrei).
Das Programm erzeugt eine *.h Datei. Diese in den Projektordner von Studio 4 kopieren.
Studio 4 öffnen.
Wir befinden uns nun im Studio 4. Das Projekt suchen und die Main.aps öffnen.
Dort im Ordner
Header Files
gibt es die
_Projekt.h
Datei.
Doppelklick darauf.
Das Tempo für das jeweilige Stück muss hier im Programm eingestellt werden über die
Konstante
Tempo
.
Wenig (10) = langsam, mehr (66) = schneller.
../
heißt: Ein Pfad zurück.
/
heißt: Pfad.
Beispiel:
Ausdünnen der *.h Datei (optional)
Wenn man will, kann man sich mal die *.h Datei anschauen und ggf. verschiedene Meta und SysEx Daten usw. rauslöschen. ACHTUNG: Aufpassen.
Die Datei wird auch rückwärts gespielt.
Wegen des Speichers und der besseren Verarbeiten ist diese Prozedur sinnvoll.
Aufbau einer Midi-Datei
Im AVR Studio die *.h Datei anzeigen lassen. Dazu auf Header Files rechts klicken
und
Add Existing Header File(s)...
wählen. Dort dann die h Datei suchen und öffnen
Jetzt kann man die Datei sehen und Werte verändern.
Mein Programm sucht am Anfang die SysEx Befehle und sortiert diese raus. Man kann jetzt bis auf einen Befehl alles raus löschen.
Man sucht nach
FF bzw. 255
Das darauffolgende Byte bezeichnen den Befehl, also z.B. Tempo: Die
81
.
Das dritte Byte sagt uns die Anzahl der nun folgenden Werte.
3
also noch drei Bytes
8 82 176
die anschließende Null muss dann auch weg, sie trifft die Aussage über die Dauer bis
zum nächsten Ereignis. Also in Null Sekunden würde es weiter gehen. Da wir aber das ganze Ereignis weglöschen, können / müssen
wir auch die Folgezeit weglöschen. Wir löschen also
255,81,3,8,82,176,0,
Das nächste was wir raus nehmen könnten, wäre die Reihe:
255,88,4,4,2,24,8,0,
Dann
255,89,2,0,0,0,
usw.
Nur ganz am Ende muss die Reihe
255,47,0
stehen bleiben, sie ist das Zeichen für das
Ende des Midi (h) Files. Also das
nicht löschen.
Programmierung
Mann kann von außen programmieren. Programmieranschlüsse gehen zum
ISP Anschluss des Programmierdongels.