BassMidi, hat das schon jemand zum Laufen bekommen ?
- corpsman
- Lazarusforum e. V.
- Beiträge: 1617
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
BassMidi, hat das schon jemand zum Laufen bekommen ?
Hallo Zusammen,
ich portiere ja gerade DOOM nach FPC und bin da mittlerweile auch schon an einem Recht pasablen Stand angekommen.
Neben diversen Themen ist eins davon aber leider das mit dem Sound. DOOM selbst nutzt sfx (was im Prinzip Wave ist) und was ich bereits mittels bass.pas abspielen kann.
Für die Musik werden "pseudo" midi files verwendet. Um überhaupt erst mal ein bisschen ins Thema rein zu kommen versuche ich nun das Beispiel von bassmidi zum laufen zu bekommen.
Hierzu habe ich
1. bassmidi.pas geladen
2. das miditest programm in Lazarus FPX nachgecoded (siehe Anlage)
3. eine test.mid Datei geladen (die sich mit dem Windows Media Player auch abspielen lässt)
4. auf den "Play" button gedrückt.
Man Sieht dass, nach ca 20sec auch "Liedtext" angezeigt wird, bzw die Länge des gesamtstücks auch ausgegeben wird. Nur leider wird kein Ton ausgegeben.
Daher die Frage, hat hier jemand Erfahrungen mit midi, bzw eine Idee was ich falsch mache ?
Das Beispiel im Anhang sollte unter Windows direkt laufen, für Linux muss erst noch ein bischen was getan werden ..
ich portiere ja gerade DOOM nach FPC und bin da mittlerweile auch schon an einem Recht pasablen Stand angekommen.
Neben diversen Themen ist eins davon aber leider das mit dem Sound. DOOM selbst nutzt sfx (was im Prinzip Wave ist) und was ich bereits mittels bass.pas abspielen kann.
Für die Musik werden "pseudo" midi files verwendet. Um überhaupt erst mal ein bisschen ins Thema rein zu kommen versuche ich nun das Beispiel von bassmidi zum laufen zu bekommen.
Hierzu habe ich
1. bassmidi.pas geladen
2. das miditest programm in Lazarus FPX nachgecoded (siehe Anlage)
3. eine test.mid Datei geladen (die sich mit dem Windows Media Player auch abspielen lässt)
4. auf den "Play" button gedrückt.
Man Sieht dass, nach ca 20sec auch "Liedtext" angezeigt wird, bzw die Länge des gesamtstücks auch ausgegeben wird. Nur leider wird kein Ton ausgegeben.
Daher die Frage, hat hier jemand Erfahrungen mit midi, bzw eine Idee was ich falsch mache ?
Das Beispiel im Anhang sollte unter Windows direkt laufen, für Linux muss erst noch ein bischen was getan werden ..
- Dateianhänge
-
BASS_MIDI.zip
- (257.2 KiB) 37-mal heruntergeladen
--
Just try it
Just try it
- Zvoni
- Beiträge: 363
- Registriert: Fr 5. Jul 2024, 08:26
- OS, Lazarus, FPC: Windoof 10 Pro (Laz 2.2.2 FPC 3.2.2)
- CPU-Target: 32Bit
- Wohnort: BW
Re: BassMidi, hat das schon jemand zum Laufen bekommen ?
Du hast keinen SoundFont (Ich hoffe du weisst was ein SoundFont in dem Zusammenhang ist)
https://sites.google.com/site/soundfonts4u/
in deiner unit1.pas scheitert diese If-Anweisung
https://sites.google.com/site/soundfonts4u/
in deiner unit1.pas scheitert diese If-Anweisung
Code: Alles auswählen
If BASS_MIDI_FontGetInfo(fSoundfont, FontInfo) Then
lbSoundfont.Caption := 'name: ' + FontInfo.name + LineEnding +
'loaded: ' + Format('%d / %d', [FontInfo.samload, FontInfo.samsize])
Else
lbSoundfont.Caption := 'no soundfont';
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
- corpsman
- Lazarusforum e. V.
- Beiträge: 1617
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
Re: BassMidi, hat das schon jemand zum Laufen bekommen ?
Wenn ich ehrlich bin hab ich nicht verstanden was diese SoundFont sein soll, da muss ich dann wohl erst mal lernen was das ist und woher man die bekommt..
--
Just try it
Just try it
- Niesi
- Lazarusforum e. V.
- Beiträge: 580
- Registriert: So 26. Jun 2016, 19:44
- OS, Lazarus, FPC: Linux Mint Cinnamon, Laz 3.9 Fpc 3.2.3 und allerlei mit FpcUpDeLuxe
- Kontaktdaten:
Re: BassMidi, hat das schon jemand zum Laufen bekommen ?
Vielleicht hilft Dir das hier weiter (ab Minute 16):corpsman hat geschrieben: Mo 17. Feb 2025, 13:43 Wenn ich ehrlich bin hab ich nicht verstanden was diese SoundFont sein soll, da muss ich dann wohl erst mal lernen was das ist und woher man die bekommt..
https://www.youtube.com/watch?v=64XaJXY ... z&index=14
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...
- Zvoni
- Beiträge: 363
- Registriert: Fr 5. Jul 2024, 08:26
- OS, Lazarus, FPC: Windoof 10 Pro (Laz 2.2.2 FPC 3.2.2)
- CPU-Target: 32Bit
- Wohnort: BW
Re: BassMidi, hat das schon jemand zum Laufen bekommen ?
ein MIDI-File ist im Prinzip eine "digitale" Form eines Musik-Notenblatts
--> "Spiele im dritten Takt auf dem Klavier eine 3/4-Note A" (sehr vereinfacht ausgedrückt)
Gleichzeitig, teilt sich das auf in verschiedene "Kanäle" (welche mehr oder weniger gleichzeitig abgefragt werden)
Beispiel:
Kanal 1 = Piano
Kanal 2 = Violine
Kanal 3 = Trommel
usw.
Ein Soundfont (wie der Name impliziert, eine "Klang-Schriftart"), "übersetzt" die Informationen dann auch tatsächlich in "Klang"
"Font" kann man hier sogar tatsächlich wörtlich nehmen.
Eine Tastatur schickt den digitalen Code für "S" an den Rechner über das OS, dann an die Anwendung.
Abhängig von dem Font, den du nutzt, sieht das Ergebnis unterschiedlich aus.
Das ist jetzt natürlich sehr vereinfacht!!
Klingt lustig, die Kanäle für Gitarre mit Saxophon zu ersetzen.
Kann man viel Unfug mit treiben
Hier noch ein paar Links:
https://www.reddit.com/r/FL_Studio/comm ... ?rdt=46858
https://www.polyphone.io/en/soundfonts
--> "Spiele im dritten Takt auf dem Klavier eine 3/4-Note A" (sehr vereinfacht ausgedrückt)
Gleichzeitig, teilt sich das auf in verschiedene "Kanäle" (welche mehr oder weniger gleichzeitig abgefragt werden)
Beispiel:
Kanal 1 = Piano
Kanal 2 = Violine
Kanal 3 = Trommel
usw.
Ein Soundfont (wie der Name impliziert, eine "Klang-Schriftart"), "übersetzt" die Informationen dann auch tatsächlich in "Klang"
"Font" kann man hier sogar tatsächlich wörtlich nehmen.
Eine Tastatur schickt den digitalen Code für "S" an den Rechner über das OS, dann an die Anwendung.
Abhängig von dem Font, den du nutzt, sieht das Ergebnis unterschiedlich aus.
Das ist jetzt natürlich sehr vereinfacht!!
Klingt lustig, die Kanäle für Gitarre mit Saxophon zu ersetzen.
Kann man viel Unfug mit treiben
Err.....meinen Link oben gesehen?Wenn ich ehrlich bin hab ich nicht verstanden was diese SoundFont sein soll, da muss ich dann wohl erst mal lernen was das ist und woher man die bekommt..
Hier noch ein paar Links:
https://www.reddit.com/r/FL_Studio/comm ... ?rdt=46858
https://www.polyphone.io/en/soundfonts
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
- corpsman
- Lazarusforum e. V.
- Beiträge: 1617
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
Re: BassMidi, hat das schon jemand zum Laufen bekommen ?
*g*,
den link hatte ich schon gesehen aber noch nicht geprüft. Ich meinte eher, dass in DOOM ja alles dabei ist, also muss ich in der .wad nach dieser Soundfont suchen
Gefunden habe ich bisher dass hier:
https://www.doomworld.com/idgames/docs/editing/mus_form
Da schreiben sie was von einer Notentabelle => Frequenzen und Dauern. Da ich aber so gar keine Ahnung von Musik habe, hatte ich darauf gehofft die beiden Formate einfach in einander um zu rechnen und gut. Aber so wie ihr das beschreibt, scheint das dann doch komplizierter zu sein :/
den link hatte ich schon gesehen aber noch nicht geprüft. Ich meinte eher, dass in DOOM ja alles dabei ist, also muss ich in der .wad nach dieser Soundfont suchen
Gefunden habe ich bisher dass hier:
https://www.doomworld.com/idgames/docs/editing/mus_form
Da schreiben sie was von einer Notentabelle => Frequenzen und Dauern. Da ich aber so gar keine Ahnung von Musik habe, hatte ich darauf gehofft die beiden Formate einfach in einander um zu rechnen und gut. Aber so wie ihr das beschreibt, scheint das dann doch komplizierter zu sein :/
--
Just try it
Just try it
- Zvoni
- Beiträge: 363
- Registriert: Fr 5. Jul 2024, 08:26
- OS, Lazarus, FPC: Windoof 10 Pro (Laz 2.2.2 FPC 3.2.2)
- CPU-Target: 32Bit
- Wohnort: BW
Re: BassMidi, hat das schon jemand zum Laufen bekommen ?
Vielleicht hier?
https://www.doomworld.com/forum/topic/1 ... oundfonts/
P.S.: Wenn ich mich recht erinner, können/werden solche Soundfonts in der Regel als Ressource eingebunden (werden), es sei denn du willst dem User die Möglichkeit bieten, das selbst einzustellen
https://www.doomworld.com/forum/topic/1 ... oundfonts/
P.S.: Wenn ich mich recht erinner, können/werden solche Soundfonts in der Regel als Ressource eingebunden (werden), es sei denn du willst dem User die Möglichkeit bieten, das selbst einzustellen
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
- corpsman
- Lazarusforum e. V.
- Beiträge: 1617
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
Re: BassMidi, hat das schon jemand zum Laufen bekommen ?
*g*, das hab ich auch gefunden, da schreibt der erste Poster, ja dass im .wad eine 3mb soundfont drin sei und die 10mb Version hinter dem kaputten github link besser wäre. Also gillt es die 3MB version zu finden ...
--
Just try it
Just try it
- corpsman
- Lazarusforum e. V.
- Beiträge: 1617
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
Re: BassMidi, hat das schon jemand zum Laufen bekommen ?
hmm, also ich hab nu irgend eine von diesen Soundfonds geladen und ins Program geschaufelt:
Angeblich nutz die App das auch nun, aber ich höre leider immer noch nichts :/
Kann es sein, dass solche font files nicht kompatibel sind zu midi files ?
Hab auch mal das Aktualisierte Projekt mit angehängt, falls ihr damit spielen wollt, der Code läuft nu auch unter Linux, wenn man die .so nach /user/lib kopiert..
Angeblich nutz die App das auch nun, aber ich höre leider immer noch nichts :/
Kann es sein, dass solche font files nicht kompatibel sind zu midi files ?
Hab auch mal das Aktualisierte Projekt mit angehängt, falls ihr damit spielen wollt, der Code läuft nu auch unter Linux, wenn man die .so nach /user/lib kopiert..
- Dateianhänge
-
midi.zip
- (3.94 KiB) 35-mal heruntergeladen
--
Just try it
Just try it
-
- Beiträge: 6899
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: BassMidi, hat das schon jemand zum Laufen bekommen ?
Ich würde es mit sdl_mixer machen, diese Unit ist bei fpc dabei und ist sehr einfach in der Handhabung.
Ist zwar von alten SDL1.2, aber dies sollte reichen.
gstreamer ist auch noch eine Variante, ist aber ein wenig komplexer.
Hier ein Programm von mir, da sollte es auf Anhieb laufen.
https://github.com/sechshelme/Lazarus-S ... ing_Sounds
Ist zwar von alten SDL1.2, aber dies sollte reichen.
gstreamer ist auch noch eine Variante, ist aber ein wenig komplexer.
Hier ein Programm von mir, da sollte es auf Anhieb laufen.
https://github.com/sechshelme/Lazarus-S ... ing_Sounds
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
- Bullykiffer
- Beiträge: 17
- Registriert: Fr 9. Aug 2024, 19:44
- OS, Lazarus, FPC: Windows 10 (L 3.4.0 FPC 3.2.2)
- CPU-Target: Windows 64-Bit
- Wohnort: Nordvorpommern
Re: BassMidi, hat das schon jemand zum Laufen bekommen ?
Moin...
BassDLL steht mir in Zukunft auch noch bevor,muß noch ein altes Delphi 6 Programm auf Lazarus portieren.
Deinem Bild entnehme ich,das er von deinem Soundfont nichts in den Speicher geladen hat.
MIDI Instrummente im "Digitalen Notenblatt" sind auf Instrummente im Soundfont bezogen,
wenn ich das noch richtig in erinnerung habe,
Intern wird da sicherlich mit ID's gearbeitet. Wenn jetzt die Bezüge zu den Instrumenten fehlen,weil keine ID der Instrumente im Midi mit
dem Soundfont ID's übereinstimmt,dann lädt er auch dementsprechend keine Instrumente in den Speicher, Ergo kein Ton
Die Instrumente aus der Midi Datei müssten also angepasst werden auf das Soundfont was du nutzt.
LMMS wäre zum Beispiel so ein Tool,womit du das machen könntest (Kann viel mehr,kannst auch deine Eigenen Stücke mit schreiben).
Da scheint schon seit längerem nicht mehr altiv was gemacht zu werden,aber läuft unter WIN und Linux und Freeware.
Cya de Helge
Edit wegen Rechtschreibung.
BassDLL steht mir in Zukunft auch noch bevor,muß noch ein altes Delphi 6 Programm auf Lazarus portieren.
Deinem Bild entnehme ich,das er von deinem Soundfont nichts in den Speicher geladen hat.
MIDI Instrummente im "Digitalen Notenblatt" sind auf Instrummente im Soundfont bezogen,
wenn ich das noch richtig in erinnerung habe,
Intern wird da sicherlich mit ID's gearbeitet. Wenn jetzt die Bezüge zu den Instrumenten fehlen,weil keine ID der Instrumente im Midi mit
dem Soundfont ID's übereinstimmt,dann lädt er auch dementsprechend keine Instrumente in den Speicher, Ergo kein Ton

Die Instrumente aus der Midi Datei müssten also angepasst werden auf das Soundfont was du nutzt.
LMMS wäre zum Beispiel so ein Tool,womit du das machen könntest (Kann viel mehr,kannst auch deine Eigenen Stücke mit schreiben).
Da scheint schon seit längerem nicht mehr altiv was gemacht zu werden,aber läuft unter WIN und Linux und Freeware.
Cya de Helge
Edit wegen Rechtschreibung.
- Zvoni
- Beiträge: 363
- Registriert: Fr 5. Jul 2024, 08:26
- OS, Lazarus, FPC: Windoof 10 Pro (Laz 2.2.2 FPC 3.2.2)
- CPU-Target: 32Bit
- Wohnort: BW
Re: BassMidi, hat das schon jemand zum Laufen bekommen ?
Nochmals zum Verständnis:
MIDI ist eine Technologie, um diverse "Abläufe" direkt auf einem digitalen Instrument (=Synthesizer) zu automatisieren.
Beispiel: "Alleinunterhalter" (unsäglich bekannt von Hochzeiten!)
Dieser hat in seinem Yamaha-Synthesizer drölfzig verschiedene Sounds (Streicher, Gitarren, Schlagzeug und haste nicht gesehen bzw. gehört)
Da dieser Alleinunterhalter ja nicht alle "Instrumente" gleichzeitig bedienen kann, lädt er ein MIDI-File in seinen Synthesizer, welcher ihm alles abnimmt, ausser seinem eigenen Part
(Also quasi sein eigenes "Playback").
Und dieses MIDI-File steuert eben direkt die jeweils benannten Instrumente zum benannten Zeitpunkt an (Siehe oben Analogie eines Notenblatts --> Denk mal an eine Symphonie: 80 Mann, alle mit dem "gleichen" Notenblatt, und jeder weiss wann er welche Note zu spielen hat).
Ein MIDI-File ist im Prinzip wie eine Partitur, ein SoundFont das Orchester
Diese Synthesizer haben diese Soundmodule schon integriert. Es gibt auch "externe" Soundmodule (muss also nicht mal ne Klaviatur haben).
Diese Dinger haben aber zu der damaligen Zeit aber richtig Geld gekostet.
Zumal die damals (ich rede von Anfang der 90er) aufstrebende Gaming-Industrie diesselbe "Qualität" an Sound haben wollte.
Daraus sind dann eben die "SoundFonts" entstanden: Eine Software-basierte "Nachbildung" der "Hardware" aus diesen Synthis.
P.S.: Und am Ende muss natürlich noch ein Output-Device definiert werden.
Ist dein Lautsprecher überhaupt an?
MIDI ist eine Technologie, um diverse "Abläufe" direkt auf einem digitalen Instrument (=Synthesizer) zu automatisieren.
Beispiel: "Alleinunterhalter" (unsäglich bekannt von Hochzeiten!)
Dieser hat in seinem Yamaha-Synthesizer drölfzig verschiedene Sounds (Streicher, Gitarren, Schlagzeug und haste nicht gesehen bzw. gehört)
Da dieser Alleinunterhalter ja nicht alle "Instrumente" gleichzeitig bedienen kann, lädt er ein MIDI-File in seinen Synthesizer, welcher ihm alles abnimmt, ausser seinem eigenen Part
(Also quasi sein eigenes "Playback").
Und dieses MIDI-File steuert eben direkt die jeweils benannten Instrumente zum benannten Zeitpunkt an (Siehe oben Analogie eines Notenblatts --> Denk mal an eine Symphonie: 80 Mann, alle mit dem "gleichen" Notenblatt, und jeder weiss wann er welche Note zu spielen hat).
Ein MIDI-File ist im Prinzip wie eine Partitur, ein SoundFont das Orchester
Diese Synthesizer haben diese Soundmodule schon integriert. Es gibt auch "externe" Soundmodule (muss also nicht mal ne Klaviatur haben).
Diese Dinger haben aber zu der damaligen Zeit aber richtig Geld gekostet.
Zumal die damals (ich rede von Anfang der 90er) aufstrebende Gaming-Industrie diesselbe "Qualität" an Sound haben wollte.
Daraus sind dann eben die "SoundFonts" entstanden: Eine Software-basierte "Nachbildung" der "Hardware" aus diesen Synthis.
P.S.: Und am Ende muss natürlich noch ein Output-Device definiert werden.
Ist dein Lautsprecher überhaupt an?

Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
-
- Beiträge: 6899
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: BassMidi, hat das schon jemand zum Laufen bekommen ?
Da mag ich mich noch erinnern, ich hatte mal eine recht gute Soundkarte, mit der man Instrumente hochladen konnte. Doom tönte dann wie in einem Orchester.Und dieses MIDI-File steuert eben direkt die jeweils benannten Instrumente zum benannten Zeitpunkt an (Siehe oben Analogie eines Notenblatts --> Denk mal an eine Symphonie: 80 Mann, alle mit dem "gleichen" Notenblatt, und jeder weiss wann er welche Note zu spielen hat).
Aber das war nicht der Grund, das früher viele Games midi hatten, der Hauptgrund war der Speicherplatz. Doom hatte auf ein paar Disketten Platz. Hätte man da den Hintegrundmusik als WAV gespeichert, hätte die ein CD gefüllt. MP3 gab es noch nicht.
Wie schon gesagt. Unter dem Moto hautsache es tönt, reicht SDL_Mixer locker.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot