Delphi-PRAXiS
Seite 10 von 11   « Erste     8910 11      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   TMIDIPlayerComp (https://www.delphipraxis.net/160875-tmidiplayercomp.html)

EWeiss 8. Jun 2015 07:57

AW: TMIDIPlayer2
 
Zitat:

Zitat von mm1256 (Beitrag 1304462)
Hallo,

erst gestern habe ich mir die aktuelle Version nochmals runtergeladen. Selbst da ist der von dir zitierte Codeausschnitt nicht enthalten.

Ich werde es heute bei Gelegenheit ändern und dann testen.

Danke... ;)
Hatte aber darum gebeten...
Zitat:

Ersetzt mal bitte die procedure TMidiDriver.DoOnMidiTimer in der MidiPlayer2.pas
Siehe!
http://www.delphipraxis.net/1303745-post83.html

gruss

EWeiss 20. Nov 2015 17:39

AW: TMIDIPlayerComp
 
Neue Version online unter GNU General Public License.

Bitte die alte Komponente wegen Versions Konflikt vorher deinstallieren.
TMIDIFile2, TMIDIPlayer2 und TSheetMusic.

Silhwan hat die "Midi Sheet Music" class, written in c# by
Madhav Vaidyanathan, nach der Delphi Komponente "TSheetMusic" portiert.
Mein Dank geht also an ihm.

gruss

EWeiss 25. Nov 2015 21:10

AW: TMIDIPlayerComp
 
Neue Version..
Änderungen siehe v0.9.1

gruss

EWeiss 29. Nov 2015 05:51

AW: TMIDIPlayerComp
 
Neue Version..
Änderungen siehe v0.9.1.1

gruss

klaus schaaff 4. Feb 2016 00:18

AW: TMIDIPlayerComp
 
Hallo Midifreunde und Delphianer,

ich habe an MidiCompPackage etwas weitergeschrieben und ein paar wichtige Features dem Ganzen spendiert. Im Übrigen, danke an EWeiss für die Arbeitsgrundlage.

Änderungen:
- PosDisplay
- Taktwechsel
- Bindenoten über Taktende mit Bezierkurven
- Noten Font
- Transport Steuerung
- Noten-Eventanzeige

Fertig ist das noch lange nicht und es können durchaus noch Fehler d'rin sein.

Weiter entwickelt habe ich in Delphi 5, so dass ich viele Elemente (Hash Dictionaries) ersetzen musste. Am Ende habe ich noch mal alles in D2009 kompiliert und bei mir läuft das unter Win7-64, hoffe bei Euch auch. Umgeschrieben habe ich auch auf dynamische Erzeugung der Komponenten, so dass man nichts erst installieren muss und vieles andere mehr.

Nun zu meinem Problem:
Es gibt zwei SplitChannels Funktionen in MidiFile2.pas und MidiFile.pas. Diese erzeugen unterschiedliche Anzahlen von Tracks, siehe beigelegte Midi-Files von mir. Die Funktion SetupMenus bezieht die Tracks von
MidiFile.pas und MenuMuteTrackClick von MidiFile2.pas. Das Muten eines Tracks wird dann falsch zugeordnet. Hier komme ich nicht weiter. Es wäre nett, wenn EWeiss mir sagen könnte, wie das gedacht war, danke.

PS.: Bitte die Portierung nach D5 nicht ernst nehmen. Wie gesagt, am Ende habe ich in D2009 kompiliert.


Freundliche Grüße
Klaus Schaaff

EWeiss 4. Feb 2016 14:58

AW: TMIDIPlayerComp
 
MidiFile.pas gehört zur Komponente Sheetmusic (Sheetmusic ist eine Komponente in der Komponente MIDIPlayerComp)
Diese soll eigentlich nur in Verbindung mit Sheetmusic verwendet werden.

MididFile2 ist teil der Hauptkomponente MIDIPlayerComp.

Kann aber nochmal bei Silhwan nachfragen.

Denke aber das es mit der Portierung zu tun hat und er den Player nicht mit Sheetmusic kombinieren wollte.

Zitat:

Im Übrigen, danke an EWeiss für die Arbeitsgrundlage.
Danke! Im übrigen habe ich daran mit Entwickelt nicht nur den Quelltext zur Verfügung gestellt.
Aber egal..

PS:
Ansonsten super Arbeit Klaus ;) Dein Demo gefällt mir sehr gut.

gruss

klaus schaaff 4. Feb 2016 19:39

AW: TMIDIPlayerComp
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo EWeiss,

danke für die schnelle Antwort und Deine Hinweise.

Bei mir existiert ein älteres Projekt "MidiPlayer" aus Delphi 5 siehe Anhang, deshalb die Portierung nach D5. Mir ist noch unklar welche Intension besteht hinsichtlich Deines Projekts. Will man ein einfaches Werkzeug entwickeln das im Wesentlichen die Grundfunktionen für Karaokebearbeitung enthält, oder eine Expertensoftware für Musiker, ein echtes Sequenzerprogram.

Speziell hier habe ich festgestellt, dass die Grundstruktur von MidiComPackage Hindernisse enthält, um weitere Features einzuarbeiten. Beispiel:

Vielleicht hast Du mal eine Note angeklickt in meiner Version. Dann werden die Werte in den kleinen Editoren unterhalb der Transportsteuerung mit den Werten der Note belegt. Mein Ziel wäre, ändert man den Anfang der Note, sollte MusicSheet darauf reagieren und die Note an neuem Platz darstellen. Die Grundstruktur von MusikSheet berechnet aber immer nur einen kompletten Score. Für seqmentierte Berechnungen hat die Unit keine Grundlagenstruktur. Genauso ändere ich Velocity einer Note, sollte bei Play das hörbar werden. All das, rückwärtige Zugriffe, Schnittstellen auf die Midi-Daten, sind in der bisherigen Struktur nur schwer zu realisieren. Dennoch ist der Score an sich eine hervorragende Leistung. Grund genug, um daran weiter zu arbeiten. Hier fehlen noch Features, die das Notenbild einem echten Notenbild und der Arbeitsweise eines Musikers entsprechen und annähern.

Das sind:
- Quantisierung des Notenbilds
- Korrekte Darstellung von Triolen und n-Tolen
- Kanalbasierte Mehrstimmigkeit eines Notensystems.
Channel 1 = Oberstimme,
Channel 2 = Mittelstimme
Channel 3 = Bassstimme
diese beliebig zuweisbar
- Akkoladen
- Textdarstellung der Systeme
System 1 = Viola
System 2 = Continuo
- Weitere Notenschlüssel Violin hoch 8 Violin unter 8, Sopran, Tenor etc.
- Legatobögen
- Korrekte Notengruppierungen, 8tel, 16tel Balken.

Das sind Ansprüche, wo man mir zur Antwort geben kann: Kauf dir doch Cubase. Ich hab Cubase und acht andere. Keins genügt mir für alles. Manchmal schreibe ich mir eigene Midi-Funktionen in meinen MidiPlayer damit ich bestimmte Dinge realisieren kann. Da ist es auch, warum diese Arbeit von Dir so viel wert ist.

Den PianoRoll schaue ich mir mal an, das kann aber dauern. Momentan hadere ich an der Grundstruktur, um überhaupt weitere Features einzubauen zu können. Ich hänge mal meinen MidiPlayer an, wo nicht alles funktioniert, wo man aber sehen kann, wo ich hin will und wo bei mir schon fertige Komponenten existieren.

Meine bisherige Erweiterung von Editoren: Laufanzeige, Locatoren, Taktanzeige, Tempo usw. ist noch unfertig. Die Unit CbEdit.pas sollte nicht als Komponente in Delphi installiert werden, da der Designmodus vollkommen fehlt. Hier war meine Intension den Traffic von Messages in der VCL so weit zu minimieren, das nie Störungen der Midi-Wiedergabe entstehen. Bisher ist das nicht vollständig von mir. Sequenzerprogramme sind neben CAD-CAM Systemen das Aufwendigste was Programmierer machen können. Dagegen sind Datenbankanwendungen steuerungstechnisch nur ein kleiner Kühlschrank und Sequenzersoftware ein Atomkraftwerk.

Mal so weit
Klaus Schaaff

EWeiss 4. Feb 2016 19:45

AW: TMIDIPlayerComp
 
Ok..
Der Unterschied ist folgender.

TMidiFile2 enthält einen NICHT Notentrack
Track 0 enthält keine Noten NUR Steuerereignisse.
Ein nicht Noten Track ist notwendig um Midi Dateien abspielen zu können.

TMidiFile:
schließt den Track ohne Noten aus weil ein NICHT Noten Track für die Anzeige auf dem Midi\Notenblatt nutzlos ist.

Hoffe das hilft weiter.

PS:
Ich sehe aber bei deinen Antworten das du über große Kenntnisse hinsichtlich Midi(Sequenzer) verfügst.
Verbesserungen sind immer willkommen.
In dem Sinne :)

Zitat:

Mir ist noch unklar welche Intension besteht hinsichtlich Deines Projekts. Will man ein einfaches Werkzeug entwickeln das im Wesentlichen die Grundfunktionen für Karaokebearbeitung enthält, oder eine Expertensoftware für Musiker, ein echtes Sequenzerprogram.
Es bestand keine besondere Intension.
Es hat sich mit der Zeit so Entwickelt wie es ist.
Aber wie gesagt Verbesserungen oder Erweiterungen steht nichts im Wege.

Zitat:

Den PianoRoll schaue ich mir mal an, das kann aber dauern.
Ist nicht so wichtig deshalb habe ich es aus dem vorherigen Beitrag auch wieder entfernt ;)
Ich müsste dazu Midi Standards verwenden also explicit für den Miditracker
Würde bedeuten das ich mein eigenes Format entfernen muss da bin ich noch am hadern.

gruss

klaus schaaff 4. Feb 2016 22:19

AW: TMIDIPlayerComp
 
Hallo EWeiss,

danke für die Info.

Meine Absicht war nur zu der hervorragenden Arbeit etwas beizusteuern, von der ich sehr profitiert habe. Ich hoffe Ihr könnt es verwenden.

Grüße
Klaus Schaaff

EWeiss 4. Feb 2016 22:25

AW: TMIDIPlayerComp
 
Zitat:

Zitat von klaus schaaff (Beitrag 1329460)
Hallo EWeiss,

danke für die Info.

Meine Absicht war nur zu der hervorragenden Arbeit etwas beizusteuern, von der ich sehr profitiert habe. Ich hoffe Ihr könnt es verwenden.

Grüße
Klaus Schaaff

Finde ich auch OK.. Danke
Davon ausgenommen Siehe! §1
http://www.gnu.de/documents/gpl-2.0.de.html
PN.. Habe ich bzgl. des Vermerks an dich gesendet.

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:56 Uhr.
Seite 10 von 11   « Erste     8910 11      

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-2025 by Thomas Breitkreuz