AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi MIDI-Datei auslesen (nicht notwendigerweise abspielen)
Thema durchsuchen
Ansicht
Themen-Optionen

MIDI-Datei auslesen (nicht notwendigerweise abspielen)

Ein Thema von TypusMensch · begonnen am 15. Feb 2008 · letzter Beitrag vom 15. Feb 2008
Antwort Antwort
TypusMensch

Registriert seit: 29. Aug 2003
Ort: Goth-A
182 Beiträge
 
Delphi 7 Enterprise
 
#1

MIDI-Datei auslesen (nicht notwendigerweise abspielen)

  Alt 15. Feb 2008, 12:53
Hallo,

Ich suche eine Bibliothek oder Kompnente die die Events/Messages einer Midi-Datei ausliest inklussive der Abtrennung einzelner Tracks in einer Midi.

Abspielen muss ich die Midi nicht, auch nichts aufnehmen. Es geht mir nur darum herauszufinden, welche Noten in welchem Track zu welcher Zeit laufen. Auch darf das ganze nicht ausschließlich Real-Time funktionieren, da ich das Lied mir nich anhören will, sondern eben nur die Informationen herauslesen will. Hatte bereits auf Torry eine gute Komponente gefunden, leider läuft dann das erstellte Programm nicht unter Vista
  Mit Zitat antworten Zitat
shmia

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

Re: MIDI-Datei auslesen (nicht notwendigerweise abspielen)

  Alt 15. Feb 2008, 13:10
Zitat von TypusMensch:
Hatte bereits auf Torry eine gute Komponente gefunden,
Welche ??
Doku zu MIDI-Files
Andreas
  Mit Zitat antworten Zitat
TypusMensch

Registriert seit: 29. Aug 2003
Ort: Goth-A
182 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: MIDI-Datei auslesen (nicht notwendigerweise abspielen)

  Alt 15. Feb 2008, 13:17
TMidiPlayer, TMidiScope v.1.3
siehe Torry ganz unten

Ja, die Doku ist gut. Die Theorie ist mir aber bekannt. Ich suche halt eine Bib./Kompo/Funktionssammlung, da ich selbst ehrlich gesagt im Moment wenig Zeit habe, selbst etwas zu bauen, welches die .mid ausklabaustern tut ^^.
  Mit Zitat antworten Zitat
shmia

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

Re: MIDI-Datei auslesen (nicht notwendigerweise abspielen)

  Alt 15. Feb 2008, 13:41
Zitat von TypusMensch:
TMidiPlayer, TMidiScope v.1.3
siehe Torry ganz unten
Dann wäre doch die Komponente TMidiFile aus Unit MidiFile fast genau das was du brauchst.
Das Event [TMidiFile.]OnMidiEvent wird timergesteuert abgefeuert und du kannst jedes Midi-Event empfangen.
Für deine Zwecke müsste am Timer aber noch eingreifen, da ein Midi-Song mit 10Min Länge auch so lange zum durchlesen brauchen würde.
Andreas
  Mit Zitat antworten Zitat
TypusMensch

Registriert seit: 29. Aug 2003
Ort: Goth-A
182 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: MIDI-Datei auslesen (nicht notwendigerweise abspielen)

  Alt 15. Feb 2008, 13:55
Wie gesagt die Komponente funktioniert beim Testen unter XP auch einwandfrei. Nur unter Vista kommt beim Programmstart bereits:

Zitat:
Programm.exe has encountered a problem and needs to close. We are sorry for the inconvenience.
Würde ja auch die midifile.pas ändern, sofern ich verstehen könnte, woher der Fehler kommt.
  Mit Zitat antworten Zitat
shmia

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

Re: MIDI-Datei auslesen (nicht notwendigerweise abspielen)

  Alt 15. Feb 2008, 15:38
Zitat von TypusMensch:
Nur unter Vista kommt beim Programmstart bereits: ...
Das liegt wohl daran, dass das Demo-Prog die Komponente TMidiOutut verwendet.
Da hat sich unter Vista etwas geändert, so dass diese nicht mehr funktioniert.

Du müsstest mit einem leeren Formular und nur TMidiFile beginnen.
Andreas
  Mit Zitat antworten Zitat
TypusMensch

Registriert seit: 29. Aug 2003
Ort: Goth-A
182 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: MIDI-Datei auslesen (nicht notwendigerweise abspielen)

  Alt 15. Feb 2008, 16:35
Nein, klappt leider auch nicht. Irgendwo steckt der Wurm in der TMidifile
  Mit Zitat antworten Zitat
shmia

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

Re: MIDI-Datei auslesen (nicht notwendigerweise abspielen)

  Alt 15. Feb 2008, 16:42
Zitat von TypusMensch:
Nein, klappt leider auch nicht. Irgendwo steckt der Wurm in der TMidifile
Einfach mal alle Aufrufe zu SetPriorityClass und GetPriorityClass auskommentieren.
Dein Programm darf unter Vista die Priorität bestimmt nicht selbst ändern.

PS: Ein Breakpoint auf TMidiFile.Create setzen und dann im Einzelschritt (F8) durchgehen. So müsste das Problem doch einzugrenzen sein.
Andreas
  Mit Zitat antworten Zitat
TypusMensch

Registriert seit: 29. Aug 2003
Ort: Goth-A
182 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: MIDI-Datei auslesen (nicht notwendigerweise abspielen)

  Alt 15. Feb 2008, 17:50
Die entsprechenden Teile auskommentiert. Half dennoch nix.

Mit Haltepunkt zu arbeiten kann ich leider auch nicht, da ich selbst unter XP programmieren und teste, wobei alles eindwandfrei klappt. Nur ein Kollege sagt, dass es nich funzt. Liegt aber nicht an seinen Rechnern, sondern wie es scheint allgemein an Vista, weil es dann auch bereits auf anderen Rechner mit Vista getestet wurde und nicht funktioniert.

Werd hier noch verrückt. Ich hasse Vista Aber Danke für deine Hilfe. Vielleicht hättest du noch ein Hinweis...

Edit: Jedoch zeigt mir der Compiler an:
Zitat:
[Warnung] MidiFile.pas(404): Symbol 'AllocateHWnd' ist veraltet
[Warnung] MidiFile.pas(420): Symbol 'DeallocateHWnd' ist veraltet
[Warnung] MidiFile.pas(445): Vorzeichenbehaftete und -lose Typen werden kombiniert - beide Operanden werden erweitert
[Warnung] MidiFile.pas(464): Vorzeichenbehaftete und -lose Typen werden kombiniert - beide Operanden werden erweitert
Ob es daran liegen kann?
  Mit Zitat antworten Zitat
TypusMensch

Registriert seit: 29. Aug 2003
Ort: Goth-A
182 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: MIDI-Datei auslesen (nicht notwendigerweise abspielen)

  Alt 15. Feb 2008, 20:47
Ach verdammt. Es lief genauso wenig unter XP.
Problem war, dass ich eine JvCSVTable von den Jedi benutze, dort einen Filenamen angegeben habe und Active auf False. Dennoch prüfte er scheinbar beim Programmstart nach dieser Datei. Kann er natürlich bei anderen nicht finden. Das war das eigentliche Problem.

Manchmal sieht man dem Wald vor lauter Bäumen nicht. Und wegen sowas hab ich den halben Tag verbracht.

Ich danke dir dennoch aufrichtig für deine Hilfe.
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz