AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte erweiterte Demo für BASSMIDI.DLL

erweiterte Demo für BASSMIDI.DLL

Ein Thema von Delfiano · begonnen am 10. Nov 2020 · letzter Beitrag vom 22. Feb 2021
Antwort Antwort
Seite 3 von 3     123
Delfiano
Registriert seit: 13. Jul 2020
Das Projekt "BassMidiTest" ist eine erweitere Zusammenfassung der beiden Beispielsprogramme, die
un4seen.com zur Verfügung stellt. Damit lassen sich Midi-Dateien unter Verwendung von SoundFonts
abspielen und prüfen, welcher SoundFont wie klingt und was er enthält. Um die ZIP-Datei nicht zu
groß werden zu lassen, habe ich nur wenige Midi-Dateien und wenige SoundFonts beigefügt.

Es gibt Probleme beim Wechsel von Laufwerksbuchstaben und Pfaden. Wahrscheinlich müssen dann
vorher alle laufenden Prozesse abgebrochen werden. Ich habe mir erlaubt, zum compilierten
Beispiel die Verzeichnisse "MID" und "SF2" mit jeweils einigen MIDI-Dateien und Soundfonts
hinzuzupacken.

Das Ende der Trackbar ist unzuverlässig. Das Ende der Datei muss anders berechnet werden.
Leider habe ich keine Ahnung wie. Mir ging es vor allem darum, die Beispiele von un4seen.com
wenigstens halbwegs nützlich abzuändern. Sorry, dass es mir nicht vollständig geglückt ist,
was die Funktionalitäten betrifft, die ich nicht überblicken kann.

Sinnvoll wäre natürlich der weitere Ausbau, z.B. mit Lautstärkereglern etc.

Weil ich nicht so der Funktionalitätenbeschreiber bin, möge sich bitte jeder die Quelltexte
selbst durchsehen. Die Originalunits bass.pas und bassmidi.pas musste ich leicht abändern, um
sie mit Delphi 5 compilieren zu können.

Inhalt der ersten ZIP-Datei ( SOURCE.ZIP )
23.556 BaseUnit.dfm
43.696 BaseUnit.pas
128.181 bass.dll // un4seen.com
52.805 bass.pas // un4seen.com, leicht modifiziert
25.356 bassflac.dll // un4seen.com
58.818 bassmidi.dll // un4seen.com
17.758 bassmidi.pas // un4seen.com, leicht modifiziert
266 BassMidiTest.dpr
876 BassMidiTest.res
32.557 basswv.dll // un4seen.com

Inhalt der zweiten ZIP-Datei ( BIN.ZIP )
455.168 BassMidiTest.exe // compiliertes Programm

Sorry, die ZIP-Datei mit den SoundFonts und Midi-Dateien ist leider zum Hochladen zu gross.

Anpassung:
Die ZIP-Datei "Source_2.ZIP" enthält nur die geänderte Basisunit.

Eine neue EXE-Datei habe ich nicht hochgeladen, weil die grundsätzliche Funktionalität auch schon aus der ersten ersichtlch ist.

Der Quelltext wurde teilweise vereinfacht und es kam eine Option für zufällige Klangerzeugung dazu.

Ausserdem kann "SF2_WORK" (https://www.delphipraxis.net/205992-...m-sf2comp.html) direkt aufgerufen werden, wenn die Dateien "SF2_WORK.exe", "SF2Comp.exe" und "SFEDT32.DLL" im selben Verzeichnis sind. Um keine Fehlermeldung zu erhalten, muss dafür ausserdem ein Verzeichnis "SF2" im Programmpfad vorhanden sein.

zweite Änderung der Basisunit
Der Inhalt der Datei "Source_3.ZIP" ersetzt alle früheren Versionen von "BaseUnit".

Version 0.4 ( Source_04.ZIP enthält wieder nur die Basisunit. )

Bei Auswahl eines Soundfonts werden die Menge enthaltener Drumsets und Instrumente in der Statuszeile angezeigt.

Auf defekte Soundfonts wird nicht mehr mit ShowMessage hingewiesen, sondern in der Statuszeile.

Im Statuspanel werden Datum und Uhrzeit angezeigt, ansatzweise auch wenige Hints.

Beim Start wird ActiveControl auf Midi_FileListBox gesetzt.

Version 0.5 lasse ich aus, weil sich Version 0.6 bereits in Vorbereitung befindet und als wesentlichste Änderung die Integration der in "SF2_WORK.exe" enthaltenen Unit bringt, die zu diesem Zweck geändert und verbessert wurde. Die neue Version von "SF2_WORK.exe" befindet sich bereits unter https://www.delphipraxis.net/205992-...m-sf2comp.html

Version 0.6 ist die vorerst letzte Version
Bass-midiTest_06.ZIP erfordert keine der vorherigen ZIP-Dateien.
Wer allerdings die Hilfedateien für BASS.DLL und BASSMIDI.DLL etc. möchte, findet alles dazu vollständig auf https://www.un4seen.com/ ...

SF2Comp ist komplett auf http://www.hammersound.net/mirrors/last_night/sf.htm zu finden.
Angehängte Dateien
Dateityp: zip SOURCE.ZIP (261,1 KB, 34x aufgerufen)
Dateityp: zip BIN.ZIP (209,6 KB, 22x aufgerufen)
Dateityp: zip Source_2.ZIP (13,0 KB, 19x aufgerufen)
Dateityp: zip Source_3.ZIP (14,7 KB, 20x aufgerufen)
Dateityp: zip Source_04.ZIP (15,4 KB, 19x aufgerufen)
Dateityp: zip Bass-midiTest_06.ZIP (667,1 KB, 22x aufgerufen)
Dateityp: zip 0.8b.zip (312,0 KB, 15x aufgerufen)

Geändert von Delfiano (22. Nov 2020 um 10:25 Uhr) Grund: Erweiterungen/Änderungen/Erläuterungen
 
Delfiano
 
#21
  Alt 24. Nov 2020, 20:26
Ich habe keine Lust mehr. Hiermit präsentiere ich die letzte noch immer unfertige Version meines Mülls.

Falls jemand was mit dem einen oder anderen durch mich integrierten Feature anfangen kann, das ich abweichend oder ergänzend zu den Beispielen von un4seen.com (auf denen ich aufgebaut habe) anfangen kann, dann nutzt es, denn allein zu dem einen Zweck habe ich dieses Projekt hier vorgestellt: Damit andere sehen, was man mit Delphi und Soundfonts bzgl. Midi machen kann.

Ich habe diesmal mit Delphi 5 compiliert. Enthalten sind alle benötigten Dateien inkl. fertiger EXE.

Was fehlt sind Midi-Dateien und Soundfonts.

Wenn jemand was mit dem Kram anfangen kann, würde es mich freuen.

08b2: (nicht veröffentlicht)

Ab Version 08b2 habe ich geschafft, fürs Tuning von Bass und Gitarre jetzt endlich den Timer einzusetzen. Dafür gibt es Buttons und es ist möglich, beides gleichzeitig zu aktivieren. Bei aktivierter Option ist die Schrift der Buttons fett, ansonsten normal.

Neu ist ausserdem die Option, MIDI-Autoplay (über die INI-Datei) zu setzen bzw. zu verhindern. Voreinstellung ist ansonsten nach wie vor das automatische Abspielen bei Programmstart.

Zur besseren Erkennbarkeit habe ich die Hintergründe nicht direkt erkennbarer Felder auf eine andere Farbe gesetzt, die aber nur im im Delphi-Editor zu sehen ist, nicht mehr im laufenden Programm.

Ausserdem habe ich die Zuweisungen für die Lycrics von TLabel auf TMemo geändert, obwohl das bedeutungslos war, weil beides TEXT ist.

08c: (hier im Anhang)

Ab Version 0.8c habe ich die Zuweisungen von bisher "MidiStream" auf "MidiStreams[1]" geändert, nachdem ich "MidiStream" auf ein Array "MidiStreams : ARRAY[1..4] OF HSTREAM;" geändert habe. Davon erhoffe ich mir, später auf mehrere unterschiedliche Soundfonts gleichzeitig zugreifen zu können, um so ggf. z.B. den Midiplayer, den Testbereich zum Aufruf einzelner Töne und die Option zum Stimmen von Instrumenten mit unterschiedlichen Soundfonts ansprechen zu können. Ob das was wird und wie es sich umsetzen lässt, ist dabei noch ohne Bedeutung.

Die Option "play 3 tones" wurde geändert zu "play chords" und um einen vierten Ton erweitert und gilt nun nicht mehr nur für "randomtest", sondern auch für das Einzelklicken eines Tons mit der Maus in "ListBox_Drums" und für playone / playall sowie für das Drücken einer Tastaturtaste, aber nicht für das Drücken mit Maus oder Tastatur im Bereich "Keyboard input" ...

Beim Drücken einer Tastaturtaste habe ich die "sleep"-Zeit verkürzt, damit es flüssiger läuft. Für den Bereich "Keyboard input" hätte es allenfalls für das Anklicken mit der Maus Bedeutung, weil sich per Tastatur mehrere Tasten gleichzeitig drücken lassen.

Sinnvoll wäre vielleicht noch die Wahlmöglichkeit zwischen Dur-, Moll- und Septim- Akkorden. Ich habe es erstmal bei Dur belassen.
Angehängte Dateien
Dateityp: zip Source+Prog_0.8c.zip (644,5 KB, 9x aufgerufen)
  Mit Zitat antworten Zitat
venice2
 
#22
  Alt 25. Nov 2020, 07:58
Zitat:
Es ist nicht gerade freundlich, auf meine rein sachliche Kritik mit gegen mich persönlich gerichteten Frust-Angriffen zu reagieren.
Video gesehen?
Mehr gibt es nicht zu sagen was nicht schon gesagt wurde.

Aber danke. Habe noch 2 kleine Fehler gefunden die ich dadurch beheben konnte.
Ein paar Bedienelemente Re-positionieren, List-Box korrekt in den Hintergrund zu setzen.

Geändert von venice2 (25. Nov 2020 um 08:45 Uhr)
  Mit Zitat antworten Zitat
Delphi.Narium

 
Delphi 7 Professional
 
#23
  Alt 25. Nov 2020, 11:22
Ich habe keine Lust mehr. Hiermit präsentiere ich die letzte noch immer unfertige Version meines Mülls.
Für mich ist das absolut kein Müll, Du hast halt 'nen anderen Ansatz als Emil (venice2). Ja und?

Hab' halt aus dem Beispiel von un4seen meine eigene Variante eines Midiplayers gebaut. Ist auch was absolut anderes geworden, als die hier vorgestellten. Ja und?

In Deinem Quelltext kann ích mich auf Anhieb problemlos zurechtfinden. Das findet man nicht so unbedingt bei allen Programmierern.

Von Müll kann ich da nix erkennen.

Geändert von Delphi.Narium (26. Nov 2020 um 17:38 Uhr) Grund: Schreibfehler
  Mit Zitat antworten Zitat
TiGü

 
Delphi 10.4 Sydney
 
#24
  Alt 25. Nov 2020, 11:57
Auch wenn ich Eulen nach Athen trage, aber hast du/habt ihr bei spezifischen Detailproblemen auch das Forum von un4seen konsultiert bzw. eure Fragen da gestellt?

http://www.un4seen.com/forum/
  Mit Zitat antworten Zitat
juerg5524
 
#25
  Alt 26. Nov 2020, 11:12
Hallo Delphiano

Ist es möglich, dass das Programm "SF2Comp.exe" nicht mehr benötigt wird? Wenn ich es Umbenenne, "Button_SF2_WORK.visible:=FALSE;" in der "BaseUnit.pas" auskommentiere und
bei "IF NOT (FileExists(DLL)) OR NOT (FileExists(EXE))" in "U_SF2.pas" vor "OR" auskommentiere, dann startet dein Programm ganz normal. Ich kann keinen Unterschied erkennen. Kannst du mir helfen, übersehe ich da was?

Danke und Gruss
Jürg
Jürg Müller
  Mit Zitat antworten Zitat
Delfiano
 
#26
  Alt 26. Nov 2020, 15:48
SF2Comp.exe etc.
Hallo juerg5524.

Sorry, wenn darauf ich nur kurz antworte, weil es mir gesundheitlich sehr schlecht geht.

SF2Comp.exe, SFEDT32.DLL und U_SF2a dienen dazu, SoundFonts zu extrahieren etc.

U_SF2a ist lediglich ein Wrapper (also eine Benutzeroberfläche) für SF2Comp.exe und SFEDT32.DLL.

Wer das nicht braucht, kann natürlich alle entsprechenden Teile entfernen. Ich bin selbst nicht mehr davon überzeugt, dass es sinnvoll war, mein Beispielprog damit zu überfrachten. In einem anderen Thema hatte ich den Wrapper als separates Projekt vorgestellt, bevor ich auf den Gedanken kam, man könne ihn auch integrieren.

Forum von un4seen.com
Hallo TiGü.

Natürlich habe ich mir das Forum angesehen. Aber die Leute dort sind "C" orientiert und der Midibereich ist bei denen anscheinened eher ein Randthema. Die paar diesbzgl. Sachen für Delphi funktionieren nicht, sonst hätte ich längst einen Equalizer integriert. Auch wüsste ich jetzt nicht, was ich da fragen sollte. Zum "mitsingen" reicht doch deren Integration der Lyrics. Auch ist mein englisch nicht gut genug für Spezialbegriffe.

Warum Müll ?
Hallo Delphi.Narium.
Ich bin Perfektionist und darum völlig unzufrieden. Falls ich mich nochmal damit beschäftigen sollte, fremde Sachen irgendwo zu integrieren, werde ich vorher ü erlegen, was man draus machen könnte und erst ein Konzept dafür entwickeln, statt auf Bestehendem aufzubauen und das so stümperhaft zu erweitern, wie ich es gemacht habe.

Stell doch bitte auch mal Dein Programm vor.

Video gesehen?
Hallo, venice2.

Warum sollte ich mir irgendein Video ansehen, das mit Deinem Projekt zu tun hat, obwohl Du völlig andere Vorstellungen und Ziele hast? Stelle doch bitte Dein Projekt an anderer Stelle vor, statt dadurch Verwirrung zu stiften, irgendeinen Zusammenhang zum Thema Soundfonts herstellen zu wollen, den es nicht gibt.
  Mit Zitat antworten Zitat
venice2
 
#27
  Alt 26. Nov 2020, 16:11
Zitat:
Video gesehen?
Hallo, venice2.

Warum sollte ich mir irgendein Video ansehen, das mit Deinem Projekt zu tun hat, obwohl Du völlig andere Vorstellungen und Ziele hast? Stelle doch bitte Dein Projekt an anderer Stelle vor, statt dadurch Verwirrung zu stiften, irgendeinen Zusammenhang zum Thema Soundfonts herstellen zu wollen, den es nicht gibt.
Tut mir leid das es dir so schlecht geht desto trotz lese doch einfach mal warum ich mein Projekt hochgeladen habe und um was es in diesen Beitrag ging die Verwirrung kommt also von deiner Seite.
Um Lyrics! Genau und nicht um Soundfonts. Mein Video widerspricht einfach all deinen Behauptungen.
Du hattest aufgegeben und ich wollte dich mit den Lyrics Kram unterstützen.

Egal bin eh aus dem Thema hier raus. Viel Spaß noch damit.

Geändert von venice2 ( 1. Dez 2020 um 16:05 Uhr)
  Mit Zitat antworten Zitat
Delfiano
 
#28
  Alt 22. Feb 2021, 03:39
Am 24. Nov 2020, 20:26 hatte ich Version 0.8c hochgeladen.

Mittlerweile habe ich mich noch an einigen weiteren Sub-Versionen versucht und dabei einen wohl ziemlich gravierenden Fehler entdeckt, den ich nicht verschweigen will, weil es dadurch immer mal wieder passieren kann, dass das Programm schon kurz nach dem Start hängen bleibt.

Anscheinend wird die Variable "BufLen" nicht oder nicht richtig initialisiert. Falls beim Start des Programms nicht zufällig ein brauchbarer Wert erzeugt wird, kommt es zu genanntem Problem.

Die Positionierung in "BufferTrack" ist insofern auch fehlerhaft.

Das Problem ist allerdings bereits im durch mich integrierten Beispielprogramm "Synth" des Anbieters von BASS.DLL und BASSMIDI.DLL enthalten.

Ich bitte um Verständnis, hier lediglich auf den Fehler hingewiesen zu haben, weil die aktuellen Weiterentwicklungen teils erheblich umstrukturiert wurden. Wann ich mal dazu komme diese (nur bei allgemeinem Interesse) zu veröffentlichen, steht noch in den Sternen.

Geändert von Delfiano (22. Feb 2021 um 12:54 Uhr) Grund: Ergänzender Hinweis: Fehler bereits im integrierten Beispiel.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 01:55 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