Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#8

AW: Kein Ton bei MIDI

  Alt 8. Mär 2011, 13:58
Drei zeilen bzw.. nur eine um einen MIDI Ton ausgeben zulassen ist nicht gerade schwer oder?
Es scheint aber nicht zu funktionieren.

Ich versuche Dir nur zu erklären wie man es richtig macht.
1.) sämtlicher Code für die Ansteuerung für MIDI gehört in eine eigene Unit.
2.) In dieser Unit gibt es eine Klasse mit diversen Methoden wie z.B. NoteOn(), NoteOff(),...
Es kann nur eine Klasse sein, denn die API-Funktion MidiOutOpen() liefert ein Handle zurück, dass man für alle weiteren API-Aufrufe aufbewahren muss.
Dafür braucht man eine Klasse; eine globale Variable wäre unprofesionell, da es mehr als ein MIDI-Device geben kann.
3.) diese Unit muss getestet und schrittweise verbessert werden.
Das ist keine Zeitverschwendung sondern absolut notwendig.
4.) zum Testen könnte man eine VCL, NonVCL oder Konsolenanwendung verwenden.
Sinnvoller Weise verwendet man eine VCL-Anwendung.
5.) die Testanwendung wird nicht weggeworfen, sondern zusammen mit der NonVCL-Anwendung für spätere Tests aufbewahrt.
6.) Die MIDI-Out-Klasse stellt eine Abstraktionsschicht um die Windows-API dar.
In der Anwendung finden sich daher keine Konstanten wie z.B. $90(=Note-On).

Schau Dir mal die Unit JclMidi aus der Jedi Code Library an. So muss das aussehen!
Wobei du für deine Zwecke die MIDI-Klasse etwas einfacher halten kannst.
Andreas
  Mit Zitat antworten Zitat