Hallo,
ich arbeite schon seit längerem an einem Projekt namens "Beeptracker"
Nun habe ich mir in den Kopf gesetzt MIDIs da importieren zu können, leider habe ich davon nicht so die Ahnung und schon bei dem kleinsten Versuch bekomme ich nur Fehler raus.
Ich weiss das es schwer zu realisieren ist, aber nachdem die .mid Datei ausgewählt wurde erscheint ein Dialog, indem alle Channel die es gibt angezeigt werden, einzeln probehören kann (per MS-Wavetable) und dann 2 davon auswählen kann die dann Importiert werden. Da jetzt aber auch in einem Channel mehrere Noten gleichzeitig gedrückt werden können würde ich mal sagen nimmt man einfach Random eine daraus (falls es mehrere sind).
Nun aber zum eigentlichen:
Es sollen also innerhalb kürzester Zeit die MIDI Ereignisse in Frequenzen und Längen umgewandelt werden und in ein:
Code:
playArray: array of array of integer;
gepackt werden.
Wir haben im Tracker 2 Kanäle zur verfügung: die Länge pro Note ist gleich also brauchen wir nur 3 dynamische Arrays:
Code:
SetLength(playArray,3);
SetLength(playArray[0],....);
SetLength(playArray[1].....);
SetLength(playArray[2],....);
wer sich das jetzige Programm mal anschauen will:
http://tenac.webhop.net/beeptracker/