AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hardcode MidiHeader

Ein Thema von EWeiss · begonnen am 13. Apr 2011 · letzter Beitrag vom 13. Apr 2011
 
EWeiss
(Gast)

n/a Beiträge
 
#1

Hardcode MidiHeader

  Alt 13. Apr 2011, 10:21
Habe mich mal im Internet auf diversen Seiten schlau gemacht über die zusammensetzung der Midi Header

Das ist dabei herausgekommen.
Wenn sich jemand auskennt ..
Sind die Daten so korrekt?

Delphi-Quellcode:
procedure ExpMidiFile;
var
  Bytes: array[0..10000] of byte;

begin
  // MIDI File Header Chunk (14 bytes)
  // MTHD
  Bytes[1] := ord('M');
  Bytes[2] := ord('T');
  Bytes[3] := ord('h');
  Bytes[4] := ord('d');

  // Headerlänge 6 bytes
  Bytes[5] := 0;
  Bytes[6] := 0;
  Bytes[7] := 0;
  Bytes[8] := 6;

  // 6 byte Header
  // 0 - Einzelne Spur
  // 1 - Mehrere Spuren, Syncron
  // 2 - Mehrere Spuren, ASyncron
  Bytes[9] := 0;
  Bytes[10] := 1;

  Bytes[11] := 0;
  Bytes[12] := 9; // Spur Nummer

  Bytes[13] := 0;
  Bytes[14] := 48; // Anzahl der Delta-Zeit sekunde pro Viertelnote

  // Spur 1
  // MTRK
  Bytes[15] := ord('M');
  Bytes[16] := ord('T');
  Bytes[17] := ord('r');
  Bytes[18] := ord('k');

  // Anzahl der Bytes in der Spur
  Bytes[19] := 0;
  Bytes[20] := 0;
  Bytes[21] := 0;
  Bytes[22] := 19;

  // Geschwindigkeit
  Bytes[23] := 0; // delta Zeit
  Bytes[24] := 255; // FF (Meta Befehl)
  Bytes[25] := 81; // Tempo Befehl
  Bytes[26] := 3; // 3 bytes für Tempo Beschreibung

  // Zeit Signatur
  Bytes[30] := 0; // delta Zeit
  Bytes[31] := 255; // FF (Meta Befehl)
  Bytes[32] := 88; // Zeit Signatur Befehl
  Bytes[33] := 4; // 4 bytes
  Bytes[34] := 4; // Zähler
  Bytes[35] := 2; // Nenner (2 = 1/4, 3 = 1/8, 4 = 1/16, etc.)
  Bytes[36] := 24; // ?
  Bytes[37] := 8; // 32 Note in einer 4 Note;

  // Spur Ende
  Bytes[38] := 0; // delta Zeit
  Bytes[39] := 255; // Spurende Befehl
  Bytes[40] := 47;
  Bytes[41] := 0;
Bin erst am Anfang und ist nicht so leicht umzusetzen.
Für alle bytes habe ich keine Infos gefunden.
Bringt mir ja nichts wenn mein Header falsch ist und die MIDI nachher nicht als Midi erkannt wird.

gruss

Geändert von EWeiss (13. Apr 2011 um 10:39 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz