AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte erweiterte Demo für BASSMIDI.DLL
Thema durchsuchen
Ansicht
Themen-Optionen

erweiterte Demo für BASSMIDI.DLL

Ein Thema von Delfiano · begonnen am 9. Nov 2020 · letzter Beitrag vom 22. Feb 2021
Antwort Antwort
Delfiano

Registriert seit: 13. Jul 2020
61 Beiträge
 
#1

erweiterte Demo für BASSMIDI.DLL

  Alt 9. Nov 2020, 23:32
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, 35x aufgerufen)
Dateityp: zip BIN.ZIP (209,6 KB, 23x aufgerufen)
Dateityp: zip Source_2.ZIP (13,0 KB, 20x aufgerufen)
Dateityp: zip Source_3.ZIP (14,7 KB, 21x aufgerufen)
Dateityp: zip Source_04.ZIP (15,4 KB, 20x aufgerufen)
Dateityp: zip Bass-midiTest_06.ZIP (667,1 KB, 23x aufgerufen)
Dateityp: zip 0.8b.zip (312,0 KB, 16x aufgerufen)

Geändert von Delfiano (22. Nov 2020 um 09:25 Uhr) Grund: Erweiterungen/Änderungen/Erläuterungen
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.433 Beiträge
 
Delphi 7 Professional
 
#2

AW: erweiterte Demo für BASSMIDI.DLL

  Alt 10. Nov 2020, 11:07
Midi-Dateien gibt es u. a. hier:

Doug McKenzie - Jazz Piano
Free MIDI Backing Tracks Downloads
Free Midis - http://www.midis101.com/
FreeMidi.org
Listen to your favorite MIDI files on BitMidi
MIDIMI.ORG
MIDIWORLD.COM
MidiSpace.com - Free MIDI Music
PSR Performer Songs (Midi)
TeleWerkstatt Leutschach

Die Auswahl sollte für jeden Geschmack etwas enthalten

SoundFounts gibt es u. a. hier:

Musical Artifacts (ca. 1200 SoundFonts)
Soundfonts 4U

Verweise auf weitere SoundFont-Quellen: Ultimate List of FREE Soundfonts
  Mit Zitat antworten Zitat
Delfiano

Registriert seit: 13. Jul 2020
61 Beiträge
 
#3

AW: erweiterte Demo für BASSMIDI.DLL

  Alt 10. Nov 2020, 16:39
Danke, Delphi.Narium, dass Du mir das abgenommen hast.

Im Nachhineien bekam ich nämlich ein schlechtes Gewissesn, wenn ich dafür nichts hochladen konnte, hätte ich wenigstens Quellen nennen können.
  Mit Zitat antworten Zitat
Delfiano

Registriert seit: 13. Jul 2020
61 Beiträge
 
#4

AW: erweiterte Demo für BASSMIDI.DLL

  Alt 13. Nov 2020, 08:57
Die ZIP-Datei "Source_3.ZIP" (im Startbeitrag) enthält nur die nochmal geänderte Basisunit.

Ausser Fehlerkorrekturen kam der Ansatz hinzu, vorhandene Lyrics nicht mehr als Label auszugeben, sondern als Memo und von dort aus dann in einem weiteren Memo zu sammeln, und als Textdatei zu speichern.

Dabei wird aber jeweils die letze Zeile eines Absatzes verschluckt. Das hat damit zu tun, dass die Zeilen immer erst zusammengesetzt werden und ich keine unfertigen Zeilen übernehmen will, weil sich dann nur deren Teilfragmente in jeweils neuen Zeilen sammeln.

Ursächlich liesse sich das sicher durch Änderungen der Vorgabeprozeduren "EndSync", "LyricSync" und "TextSync" sowie der Funktion "ProcessMarkText" abfangen. Aber dafür reicht mein abstraktes Denkvermögen leider nicht aus.

Vielleicht weiss jemand anderes mehr und kann an dieser Stelle weiter helfen.
  Mit Zitat antworten Zitat
Delfiano

Registriert seit: 13. Jul 2020
61 Beiträge
 
#5

AW: erweiterte Demo für BASSMIDI.DLL

  Alt 15. Nov 2020, 04:27
Version 0.6 ( Version 0.5 habe ich weg gelassen, weil Version 0.6 erheblich weiter entwickelt ist )

Während Version 0.4 "SF2_WORK.exe" noch extern auruft, wird die (geänderte) Unit nun direkt eingebunden. Dazu war u.a. nötig, den Namen des Forms zu ändern und eine Kontrolle einzubauen, ob die Unit als eigenständiges Programm gestartet wurde oder in ein anderen integriert wurde. Um Verwechslungen mit der alten Unitversion zu vermeiden, habe ich die Unit von "U_SF2" zu "U_SF2a" umbenannt.

Ausserdem wurde die Funktionalität dahingehend erweitert, dass der Aufruf des externen Programms "SF2Comp.exe" nun als LOG-Datei gespeichert werden kann.

noch immer vorhandene (bekannte) Fehler:
Wenn Verzeichnisse gewechselt werden, gelten manchmal plötzlich auch gültige Soundfiles als defekt.
Vorhandene Lyrics werden noch immer nicht korrekt ausgewertet, sondern unvollkommen gespeichert.
Die (nicht von mir stammende) Notenberechnungsbasis "60 - drums * 24"

Die integrierten Optionen zum Stimmen von Gitarre bzw. Bass sind unfertig. Für Bass fehlen Berechnungen je nach Saitenzahl und Stimmung. Wenn SoundFonts weniger als 128 Instrumente enthalten oder nicht standardmässig belegt sind, kann keine wirkliche Prüfung auf Korrektheit der Instrumente erfolgen. Ausserdem fehlt die automatische Wiederholung des gewünschten Tons, wie es zum Stimmen von Saitenistrumenten nötig ist. Momentan habe ich keinen Schimmer, wie das per Timer gelöst werden kann.

Bass-midiTest_06.ZIP( 683.063 Bytes ) enthält alle Dateien des Projektes. Die ZIP-Datei befindet sich im Startbeitrag.
34.869 BaseUnit.dfm
62.375 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
369 BassMidiTest.dpr
617.984 BassMidiTest.exe
876 BassMidiTest.res
32.557 basswv.dll // un4seen.com
34.073 help.txt
38.912 SF2Comp.exe //
141.824 SFEDT32.DLL //
11.315 U_SF2a.dfm
22.423 U_SF2a.PAS

Weil ich aktuell mit meinen Weisheiten bzgl. bass.dll, bassmidi.dll usw. am Ende bin, wird es vorerst meinerseits keine neuen Versionen geben, es sei denn, andere helfen mir mit Tipps auf die Sprünge.
  Mit Zitat antworten Zitat
Delfiano

Registriert seit: 13. Jul 2020
61 Beiträge
 
#6

AW: erweiterte Demo für BASSMIDI.DLL

  Alt 21. Nov 2020, 01:51
Mittlerweile habe ich zwar eine brauchbare Version 0.8a erzeugt, weiss aber nicht, ob sich überhaupt noch wer dafür interessiert. Trotz mancher Ergänzungen habe ich nämlich einige für mich bedeutende Fehler noch immer nicht beseitigen können. Das sind

- die falsche Startbasis der Tonlage, wobei ich mich am ursprünglichen Beispiel orientieren musste.
- der missglückte Versuch, Lyrics sauber (also komplett) aus Midis zu extrahieren, falls vorhanden
- das Halten von Tönen (autorepeat durch timer) bei der Option zum Instrumenten-Stimmen

Ausserdem habe ich festgestellt, dass sich bei der Midi-Wiedergabe das Instrument eines Kanals ändert, wenn man eins für die Tests auswählt. Anfangs dachte ich, das wäre unabhängig voneinander. Leider fand ich auch in den sehr komplexen Beschreibungen bass.chm und bassmidi.chm nichts dazu, wie man auf einzelne Midi-Kanäle zugreifen kann.
  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:35 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