Hallo Leute,
bastel mir gerade ein Midi-Script in C, um mich in die Materie einzufinden. Das gleichzeitige Abspielen zweier Töne klappt auch gut. Leider werden die Töne aber nicht beendet, klingen also immer weiter. Kann mir jemand sagen, wo man die Dauer begrenzen kann? Ich benutze die Bibliothek "libwinmm.a". "Sleep" hat mir nicht geholfen, bzw. damit habe ich es nicht geschafft.
Hier ein Ausschnitt:
int main(int argc, char *argv[])
{
int Lautstaerke=100;
int Ton=70;//C1
int Kanal=1;
int Instrument=1;//Klavier
long StartMidi;
long EndMidi;
long Sound;
int Tonlaenge=1;//(in Sekunden)
int Treibernummer=0;
HMIDIOUT hMidiOut;
midiOutOpen(&hMidiOut, Treibernummer, 0, 0, 0);
StartMidi=(65536 * Lautstaerke) + (256 * Ton) + Kanal+143;
Sound=(256 * Instrument) + Kanal+191;
//Sound=(256 * 100) + 2+191;
EndMidi=(65536 * Lautstaerke) + (256 * Ton) + Kanal+127;
midiOutShortMsg(hMidiOut, Sound);
midiOutShortMsg(hMidiOut, StartMidi);
//Ton2, gleichzeitig
StartMidi=(65536 * Lautstaerke) + (256 * 90) + 2+143;
Sound=(256 *99) +2+191;
EndMidi=(65536 * Lautstaerke) + (256 * Ton) +2+127;
midiOutShortMsg(hMidiOut, Sound);
midiOutShortMsg(hMidiOut, StartMidi);
Danke! Hans