Töne/Klänge mit FreePascal/Lazarus
Töne/Klänge mit FreePascal/Lazarus
Hallo,
auf der Suche nach der Möglichkeit, mit FreePascal/Lazarus Töne/Klänge auszugeben, bin ich nicht wirklich fündig geworden.
Einen Beep oder einen Ton mit einer bestimmten Frequenz ausgeben, sollte ja kein Problem sein... z.B. Beep oder Sound(440);
Das Vorhaben: mit mehreren Schiebereglern wollte ich mehrere Töne in entsprechenden Frequenzen und individuellen Lautstärken ausgeben lassen. Dies allerdings nicht in eine WAV/MP3 etc. Datei, sondern interaktiv über den Lautsprecher bzw. die Soundkarte.
Wie sieht's mit mehreren Tönen aus, d.h mit Zwei-, Drei-, Vier- Fünf-Klängen?
Ein Sinus wäre schon mal gut, andere Signalformen wären auch nicht schlecht...
http://wiki.freepascal.org/Multimedia_Programming hilft nur bedingt...
Welches von den Bibliotheken meinen Zweck überhaupt bzw. am besten geeignet? Hat da jemand Erfahrungen damit gemacht und kann Empfehlungen geben?
Welche Library bietet sich in Windows (oder idealerweise natürlich plattformübergreifend) dafür an?
Danke für einen Tipp oder Link.
auf der Suche nach der Möglichkeit, mit FreePascal/Lazarus Töne/Klänge auszugeben, bin ich nicht wirklich fündig geworden.
Einen Beep oder einen Ton mit einer bestimmten Frequenz ausgeben, sollte ja kein Problem sein... z.B. Beep oder Sound(440);
Das Vorhaben: mit mehreren Schiebereglern wollte ich mehrere Töne in entsprechenden Frequenzen und individuellen Lautstärken ausgeben lassen. Dies allerdings nicht in eine WAV/MP3 etc. Datei, sondern interaktiv über den Lautsprecher bzw. die Soundkarte.
Wie sieht's mit mehreren Tönen aus, d.h mit Zwei-, Drei-, Vier- Fünf-Klängen?
Ein Sinus wäre schon mal gut, andere Signalformen wären auch nicht schlecht...
http://wiki.freepascal.org/Multimedia_Programming hilft nur bedingt...
Welches von den Bibliotheken meinen Zweck überhaupt bzw. am besten geeignet? Hat da jemand Erfahrungen damit gemacht und kann Empfehlungen geben?
Welche Library bietet sich in Windows (oder idealerweise natürlich plattformübergreifend) dafür an?
Danke für einen Tipp oder Link.
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: Töne/Klänge mit FreePascal/Lazarus
Für MSEgui gibt es Komponenten für die digitale Signalverarbeitung:
Die nicht visuellen Komponenten lassen sich möglicherweise auch für Lazarus verwenden. Die Tonausgabe geschieht über die PulseAudio Bibliothek. Zur Erzeugung von Mehrklängen bietet sich z.B. tsigfft an.-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Töne/Klänge mit FreePascal/Lazarus
Unglaublich, was Du alles hast !!!!
Ich hätte gerne einen virtuellen "FM-Sythesiter (funktional a la Yamaha DX7 (Hardware aus den 80gern) bzw. Native Instruments "FM8" (Software für PC: professionell aber nicht ganz billig).
Wie der FM8 sollte es ein "VST-Plugin" für Windows (also eine dll) sein und entsprechenden der VST-Spezifikationen an den Midi- und den Audio-Bus angekoppelt werden.
Es gibt Freeware Angebote, die aber keine genügend kleine Latenz zum Life-Spielen haben.
Was meinst Du,
-Michael

Ich hätte gerne einen virtuellen "FM-Sythesiter (funktional a la Yamaha DX7 (Hardware aus den 80gern) bzw. Native Instruments "FM8" (Software für PC: professionell aber nicht ganz billig).
Wie der FM8 sollte es ein "VST-Plugin" für Windows (also eine dll) sein und entsprechenden der VST-Spezifikationen an den Midi- und den Audio-Bus angekoppelt werden.
Es gibt Freeware Angebote, die aber keine genügend kleine Latenz zum Life-Spielen haben.
Was meinst Du,
-Michael
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: Töne/Klänge mit FreePascal/Lazarus
Für FM- respektive PM-Synthese kann das Ausgangssignal der Generatoren auf die "frequfact" respektive "phase" Eingänge rückgekoppelt werden.
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Töne/Klänge mit FreePascal/Lazarus
Irre !!mse hat geschrieben:Für FM- respektive PM-Synthese kann das Ausgangssignal der Generatoren auf die "frequfact" respektive "phase" Eingänge rückgekoppelt werden.
Das muss ich mal ausprobieren.
Hast Du ein Beispiel, wie man ein VST-Plugin macht ? Ich weiß, dass es diverse VST-Plugins gibt, die mit Delphi programmiert wurden. Vermutlich ist FPC da kein Hindernis.
Für DX7-kompatible Funktionalität braucht man:
- sechs Sinus-Oszilatoren, die einen FM-Eingang haben. Wichtig: der Algorithmus muss so ausgelegt sein, dass sie bei entsprechend starker Modulation auch störungsfrei stehenbleiben und rückwärts laufen können (negative Frequenz).
- bis zu 42 Multiplikatoren für die Ausgangs-Signale, die zu verschiedenen Zielen führen.
- sechs Hüllkurven-Generatoren (einigermaßen komplex, die hautsächlich an die Multiplikatoren gehen) (42 wären besser)
- diverse Addierer
Das besagte freeware Produkt krankt dem Entwickler zufolge daran, dass der verwendet VST-Synthesizer Baukasten eine sehr wenig performante Funktionalität für die Hüllkurven-Ggeneratoren aufweist (ich verstehe gar nicht wo da das Problem liegen soll).
Gruß,
-Michael
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: Töne/Klänge mit FreePascal/Lazarus
Nein.mschnell hat geschrieben: Hast Du ein Beispiel, wie man ein VST-Plugin macht ?
Das geht, die Frequenz wird als Phasenschritt pro sampling Intervall interpretiert, negative Phasenschritte sind vorgesehen.- sechs Sinus-Oszilatoren, die einen FM-Eingang haben. Wichtig: der Algorithmus muss so ausgelegt sein, dass sie bei entsprechend starker Modulation auch störungsfrei stehenbleiben und rückwärts laufen können (negative Frequenz).
Ausgänge lassen sich auf beliebige und beliebig viele Eingänge verteilen. Alle Eingänge haben "gain", "offset", "min" und "max" Eigenschaften.- bis zu 42 Multiplikatoren für die Ausgangs-Signale, die zu verschiedenen Zielen führen.
Dafür gibt es tsigenvelope mit attack, decay und release Sektionen, welche jeweils eine beliebige Anzahl von Stützpunkten aufweisen können. In der decay Phase kann eine loop gesetzt werden. Zum graphischen Setzen der Stützpunkte gibt es tenvelopeedit.- sechs Hüllkurven-Generatoren (einigermaßen komplex, die hautsächlich an die Multiplikatoren gehen) (42 wären besser)
"tsigadd".- diverse Addierer
Ich schon.Das besagte freeware Produkt krankt dem Entwickler zufolge daran, dass der verwendet VST-Synthesizer Baukasten eine sehr wenig performante Funktionalität für die Hüllkurven-Ggeneratoren aufweist (ich verstehe gar nicht wo da das Problem liegen soll).

Störungsarme Hüllkurvengenerierung braucht happig Rechenleistung.
Martin
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Töne/Klänge mit FreePascal/Lazarus
AHA.mse hat geschrieben: Ich schon.
Störungsarme Hüllkurvengenerierung braucht happig Rechenleistung.
Würde ich gerne Probieren.
Ich bräuchte aber (um es life mit einem Keyboard spielen zu können) eine Version als VST Plugin.
Any pointers ?
-Michael
Zuletzt geändert von mschnell am Mo 16. Sep 2013, 22:47, insgesamt 2-mal geändert.
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: Töne/Klänge mit FreePascal/Lazarus
Eine Midi Schnittstelle gibt es. Bitte öffne ein neues Thema hier:
http://www.lazarusforum.de/viewforum.php?f=53
http://www.lazarusforum.de/viewforum.php?f=53