Thema: Virtual Piano

Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#231

AW: Virtual Piano

  Alt 18. Mai 2011, 19:34
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

Geändert von EWeiss (18. Mai 2011 um 20:01 Uhr)
  Mit Zitat antworten Zitat