Zitat:
Machst Du da nicht ein Fehler?
Zitat:
Die Auflösung die ich stehen habe 1/16tel oder 1/32tel darf nicht mit dem Tempo der Midifiles zu tun haben.
Bytes[CurrentByte] := round(MidiTracker.Tempo / 300 * 127); // Geschwindigkeit
Das Tempo byte
Delphi-Quellcode:
// Anzahl der Delta-Zeit sekunde pro Viertelnote
Bytes[14] := SmallNoteData[SmallNDSelected].Ticks;
Delphi-Quellcode:
// Nenner (2 = 1/4, 3 = 1/8, 4 = 1/16, etc.)
Bytes[35] := SmallNoteData[SmallNDSelected].Nenner;
Bytes[36] := 24; // Ticks per Quarter Note
// 8 = 32 Note in 1/4 Note;
Bytes[37] := SmallNoteData[SmallNDSelected].Value;
Diese ergeben sich aus..
Delphi-Quellcode:
// Kleinste Noten
SmallNoteData[0].Name := '1/4 Note';
SmallNoteData[0].Value := 1;
SmallNoteData[0].Nenner := 2;
SmallNoteData[0].Ticks := 48;
SmallNoteData[1].Name := '1/8 Note';
SmallNoteData[1].Value := 2;
SmallNoteData[1].Nenner := 3;
SmallNoteData[1].Ticks := 24;
SmallNoteData[2].Name := '1/16 Note';
SmallNoteData[2].Value := 4;
SmallNoteData[2].Nenner := 4;
SmallNoteData[2].Ticks := 12;
SmallNoteData[3].Name := '1/32 Note';
SmallNoteData[3].Value := 8;
SmallNoteData[3].Nenner := 5;
SmallNoteData[3].Ticks := 6;
Zitat:
Darf also auch nichts mit dem Export zu tun haben.
Wie soll ich sonst der anderen Anwendung mitteilen welche Noten ich spiele?
Zitat:
4/4Takt bei 120BPM bleibt auch so
Habe nichts anderes behauptet solange du in dem Bereich bleibst.
Es sei denn du veränderst die Geschwindigkeit.
Delphi-Quellcode:
// Bei einem Tempo von 120 BPM ist die Länge einer 1/4 Note 500ms.
// Bei 130 BPM (120/130 BPM =) 0.92 * 500ms = 461ms.
TempoWait := ((120 / MidiTracker.Tempo) * 500) / (BeatProMaes[BeatPMSelected].Value) / SmallNoteData[SmallNDSelected].Value;
Delphi-Quellcode:
// Takt
BeatProMaes[0].Name := '2/2';
BeatProMaes[0].Value := 4;
BeatProMaes[1].Name := '3/2';
BeatProMaes[1].Value := 6;
BeatProMaes[2].Name := '4/2';
BeatProMaes[2].Value := 8;
BeatProMaes[3].Name := '2/4';
BeatProMaes[3].Value := 2;
BeatProMaes[4].Name := '3/4';
BeatProMaes[4].Value := 3;
BeatProMaes[5].Name := '4/4';
BeatProMaes[5].Value := 4;
BeatProMaes[6].Name := '5/4';
BeatProMaes[6].Value := 5;
BeatProMaes[7].Name := '6/4';
BeatProMaes[7].Value := 6;
BeatProMaes[8].Name := '7/4';
BeatProMaes[8].Value := 7;
BeatProMaes[9].Name := '9/4';
BeatProMaes[9].Value := 9;
Das sind die Namen und dazugehörige Values die du oben links
im MidiTracker siehst.
Pulse per 1/4 Note
Info.MIDINotes[Channel_, N-1].Ppqn := Info.MIDINotes[Channel, N-1].Length / Info.Ticks;
Hoffe mal das sind genug Infos.
Wenn hier ein Fehler ist kein problem dann sage es mir.
gruss