Ton mit variabler Frequenz abspielen
Ton mit variabler Frequenz abspielen
Hallo
Ich möchte in einer Lazurus-Anwendung einen Ton abspielen, z.B. 10 sec lang. Während dem Abspielen möchte ich die Frequenz mit einem Scrollbar verändern können. Gibt es eine Funktion, die das kann?
Gruss
Uli
Ich möchte in einer Lazurus-Anwendung einen Ton abspielen, z.B. 10 sec lang. Während dem Abspielen möchte ich die Frequenz mit einem Scrollbar verändern können. Gibt es eine Funktion, die das kann?
Gruss
Uli
- af0815
- Lazarusforum e. V.
- Beiträge: 6790
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Ton mit variabler Frequenz abspielen
Nein,fertig ist mir nichts bekannt. Nur so lange man auch nicht weis was dein Betriebssystem ist, ist alles nur geraten. Bei den Demos von Bass.dll könnte was dabei sein (ohne Gewähr).
Zuletzt geändert von af0815 am Mo 3. Jan 2022, 17:50, insgesamt 1-mal geändert.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Re: Ton mit variabler Frequenz abspielen
Hallo
Mein Betriebssystem ist Windows 10. Mein Lazarus Version 2.0.10.
Gruss und danke für deine schnelle Reaktion
Uli
Mein Betriebssystem ist Windows 10. Mein Lazarus Version 2.0.10.
Gruss und danke für deine schnelle Reaktion
Uli
- af0815
- Lazarusforum e. V.
- Beiträge: 6790
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Ton mit variabler Frequenz abspielen
Ich habe sowas schon mal mit Karten von NI gemacht, das nutzt dir nichts, denn da geht es um Karten und SDK um mehrere tausend Euros.
Ev. was für dich http://breakoutbox.de/pascal/pascal.html#PortAudio dort das Demo
Ev. was für dich http://breakoutbox.de/pascal/pascal.html#PortAudio dort das Demo
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: Ton mit variabler Frequenz abspielen
Hi!
Linux only:
Fred vS hat eine Lazarus Interface für alsa gebaut, das auch stufenlos arbeiten kann. Ich hab seinem Projekt eine Ami-Polizei-Sirene beigesteuert.
https://forum.lazarus.freepascal.org/in ... 502.0.html
Windows/Linux:
Die Unit Bass hat in ihren Demos auch ein kleines Beispiel für synthetisierte Klänge. BASS ist für den privaten Gebrauch kostenlos. Download und ein aktives Forum hier:
https://www.un4seen.com/
Winni
Linux only:
Fred vS hat eine Lazarus Interface für alsa gebaut, das auch stufenlos arbeiten kann. Ich hab seinem Projekt eine Ami-Polizei-Sirene beigesteuert.
https://forum.lazarus.freepascal.org/in ... 502.0.html
Windows/Linux:
Die Unit Bass hat in ihren Demos auch ein kleines Beispiel für synthetisierte Klänge. BASS ist für den privaten Gebrauch kostenlos. Download und ein aktives Forum hier:
https://www.un4seen.com/
Winni
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1647
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Ton mit variabler Frequenz abspielen
In der Unit windows gibt es die Funktion beep. Diese bekommt als ersten Parameter die Frequenz und als zweiten die Dauer in ms.
Die kann man in einer Schleife laufen lassen.
Edit: sysutils hat ebenfalls eine Beep Funktion. Du musst also entweder explizit windows.beep aufrufen oder die unit windows nach sysutils einbinden.
Die kann man in einer Schleife laufen lassen.
Edit: sysutils hat ebenfalls eine Beep Funktion. Du musst also entweder explizit windows.beep aufrufen oder die unit windows nach sysutils einbinden.
Re: Ton mit variabler Frequenz abspielen
Hallo mitenand
Ich habe Windows.beep ausprobiert. Das mach wohl Töne einer bestimmten Frequenz, welche man aber leider nicht während der vorgegebenen Zeit verändern kann. Macht man kurze Zeiten in einem Loop, so ist das aber kein dauernder Ton mehr.
Trotzdem Dank für euere Hinweise
Gruss
Uli
Ich habe Windows.beep ausprobiert. Das mach wohl Töne einer bestimmten Frequenz, welche man aber leider nicht während der vorgegebenen Zeit verändern kann. Macht man kurze Zeiten in einem Loop, so ist das aber kein dauernder Ton mehr.
Trotzdem Dank für euere Hinweise
Gruss
Uli
- kupferstecher
- Beiträge: 434
- Registriert: Do 17. Nov 2016, 11:52
Re: Ton mit variabler Frequenz abspielen
Ich kann PortAudio empfehlen, läuft auf jeden Fall unter Windows und Linux. Man hat die Ton-Ausgabe komplett selber im Griff, dafür muss man sich auch selber darum kümmern. Vom Grundprinzip läuft das so ab, dass man die Bibliothek startet und dabei eine Callback-Funktion angibt, die von der Bibliothek dann regelmäßig aufgerufen wird, wenn neue Daten benötigt werden. In der Callback-Funktion schreibt man dann die Tondaten in ein Array und übergibt es der Bibliothek. In deinem Beispiel, wenn es nur um einen Sinuston geht, müsstest du also für jeden Zeitpunkt den Sinuswert berechnen und der Reihe nach in das Array schreiben. Ist etwas Aufwand, aber dafür hast du eben volle Kontrolle, könntest bspw. bei Frequenzsprüngen einen kurzen Übergang implementieren oder auf den nächsten Nulldurchgang warten, oder, oder...
Re: Ton mit variabler Frequenz abspielen
Hallo Kupferstecher
Ich habe PortMediaTest heruntergeladen. Dort gibts einen Ordner portaudio mit Unterordner UOS version of portaudio.pas. Darin eine Datei portaudio_uos.pas. Was mach ich mit dieser Datei?
Irgendwo hats eine Datei TestPMportmidiLCL.EXE, diese macht aber einen Fehler 0xc000007b beimStart. Weite bin ich nicht gekommen
Gruss
Uli
Ich habe PortMediaTest heruntergeladen. Dort gibts einen Ordner portaudio mit Unterordner UOS version of portaudio.pas. Darin eine Datei portaudio_uos.pas. Was mach ich mit dieser Datei?
Irgendwo hats eine Datei TestPMportmidiLCL.EXE, diese macht aber einen Fehler 0xc000007b beimStart. Weite bin ich nicht gekommen
Gruss
Uli
- kupferstecher
- Beiträge: 434
- Registriert: Do 17. Nov 2016, 11:52
Re: Ton mit variabler Frequenz abspielen
Hallo Uli,
du hast Glück, mir ist eingefallen, dass ich mal eine Unit gebastelt habe, die genau das tut, einen Ton abspielen bis man ihn stoppt oder mit einer anderen Frequenz startet. Beispielprojekt ist angehängt. Für Portaudio geistern glaube ich mehrere Versionen vom Pascal-Wrapper im Netz rum, ich kann dir jetzt auch gar nicht sagen, wo meine Version her ist. Eine Portaudio-DLL ist auch im Anhang, sollte also direkt kompilieren und lauffähig sein. Allerdings handelt es sich bei der DLL um eine 32bit-Version. Dein Lazarus muss also nach 32bit kompilieren können.
du hast Glück, mir ist eingefallen, dass ich mal eine Unit gebastelt habe, die genau das tut, einen Ton abspielen bis man ihn stoppt oder mit einer anderen Frequenz startet. Beispielprojekt ist angehängt. Für Portaudio geistern glaube ich mehrere Versionen vom Pascal-Wrapper im Netz rum, ich kann dir jetzt auch gar nicht sagen, wo meine Version her ist. Eine Portaudio-DLL ist auch im Anhang, sollte also direkt kompilieren und lauffähig sein. Allerdings handelt es sich bei der DLL um eine 32bit-Version. Dein Lazarus muss also nach 32bit kompilieren können.
- Dateianhänge
-
LPortAudioBeep.zip
- (142.76 KiB) 84-mal heruntergeladen
-
- Beiträge: 6923
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Ton mit variabler Frequenz abspielen
Evtl. hilft dir auch die Unit Crt weiter.USchoch hat geschrieben: Mo 3. Jan 2022, 17:29 Hallo
Ich möchte in einer Lazurus-Anwendung einen Ton abspielen, z.B. 10 sec lang. Während dem Abspielen möchte ich die Frequenz mit einem Scrollbar verändern können. Gibt es eine Funktion, die das kann?
Gruss
Uli
Da gibt es Sound(Hz);
Hier noch ein Beschrieb: https://wiki.freepascal.org/Crt/de
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: Ton mit variabler Frequenz abspielen
Salü Mathias
Das mit dem CRT.Sound gibt wohl ein Ton, aber wenn ich die Frequenz ändere, wir der Ton kurz unterbrochen. Es sollte so tönen, wie wenn man bei einem Tongenerator mit einem Drehknopf die Tönhöhen einstellen würde.
Aber Danke fr den Tipp
Gruss
Uli
Das mit dem CRT.Sound gibt wohl ein Ton, aber wenn ich die Frequenz ändere, wir der Ton kurz unterbrochen. Es sollte so tönen, wie wenn man bei einem Tongenerator mit einem Drehknopf die Tönhöhen einstellen würde.
Aber Danke fr den Tipp
Gruss
Uli
-
- Beiträge: 6923
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Ton mit variabler Frequenz abspielen
So wie ich mich erinnere, war das bei TP nicht der Fall,
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: Ton mit variabler Frequenz abspielen
Hi!
CRT Sound ist nur in Windows implementiert. Unter Linux passiert da nix.
Zweitens: Sound bemüht den Speaker zur Generierung von Klängen. Diverse PC-Hersteller aber sind so geizig, dass sie den PC-Speaker wegrationalisiert haben. Nach dem Motto: Da ist ne Soundkarte drin. So haben sie wieder 50 Cent gespart. Ein entscheidender Vorteil gegenüber der Konkurrenz ...,
Auf diesen PCs - wie auf dem meinigen - passiert mit Sound garnix.
Winni
PS.: Mal den Übeltäter nennen:
Motherboard Gigabyte A320M
CRT Sound ist nur in Windows implementiert. Unter Linux passiert da nix.
Zweitens: Sound bemüht den Speaker zur Generierung von Klängen. Diverse PC-Hersteller aber sind so geizig, dass sie den PC-Speaker wegrationalisiert haben. Nach dem Motto: Da ist ne Soundkarte drin. So haben sie wieder 50 Cent gespart. Ein entscheidender Vorteil gegenüber der Konkurrenz ...,
Auf diesen PCs - wie auf dem meinigen - passiert mit Sound garnix.
Winni
PS.: Mal den Übeltäter nennen:
Motherboard Gigabyte A320M
Zuletzt geändert von Winni am Di 4. Jan 2022, 18:37, insgesamt 1-mal geändert.
-
- Beiträge: 6923
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Ton mit variabler Frequenz abspielen
Hätte ja sein können, das dies unterdessen auch in Linux implementiert wurde.
Stimmt, es gib PCs, bei der Sound aus dem PC-Speaker kommt. HP macht dies gerne.
Mein PC hat noch so ein winziger Piepser.
Stimmt, es gib PCs, bei der Sound aus dem PC-Speaker kommt. HP macht dies gerne.
Mein PC hat noch so ein winziger Piepser.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot