Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi SoundLib? (https://www.delphipraxis.net/106783-soundlib.html)

snow 16. Jan 2008 17:10


SoundLib?
 
hallo
Ich hab ne E-Gitarre und kann diese über den verstärker an den PC anschließen.

Das läuft auch gut. Nun würde ich gerne ein bissel am Sound-Rumspielen.

Da professionelle Gitarren-software sehr teuer ist und ich nicht alle funktionen brauche, dachte ich daran mal was selber zu Tippen.

Ich hab noch keine Erfahrung mit Soundmanipulation. Ich weis nur, dass es auf jedenfall schnell sein muss, damit man keinen unterschied merkt.

Die Gitarreneffecte basieren alle auf physikalischen grundladen, lassen sich also einfach einsetzen und ausrechnen.

Mein problem ist nur, dass ich nicht weis, was delphi & Sound überhaupt alles kann, und wie ich die soundkarten-kanäle auswählen kann.

kennt jemand Tutorials oder ähnliches, oder weis jemand ob man für Sound-Manipulationen DirektX oder OpenGL benötigt?

gruß snow

shmia 16. Jan 2008 17:31

Re: SoundLib?
 
Zitat:

Zitat von snow
Ich hab noch keine Erfahrung mit Soundmanipulation. Ich weis nur, dass es auf jedenfall schnell sein muss, damit man keinen unterschied merkt.

Das ist ein sehr komplexes Thema!!
Ich würde mich zuerst mal auf Effekte konzentrieren, die nicht in Echtzeit ablaufen müssen.
Beispiel:
Du spielt eine Tonfolge ein und speicherst diese als WAV-Datei.
Dein Delphiprogramm würde dann die WAV-Datei einlesen und jeden Samplewert mit einem (Flieskomma-) Faktor multiplizeren und als WAV speichern.
Das wäre ein simple Lautstärkeänderung.
Interessanter wäre da schon ein frei konfigurierbarer Verzerrer:
Die 16-Bit Samplewerte bewegen sich zwischen -32768 und +32767.
Nun braucht man eine Kennlinie mit 65536 Werten, um jedem Eingangswert einen neuen Ausgangswert zuzuordnen.

snow 16. Jan 2008 17:57

Re: SoundLib?
 
Ich würd ganz gerne erst mal wissen ob man lieber gleich mit hardwarebeschleunigung anfangen sollte (DirectX , und was es sonst noch so gibt), oder ob das "normale" schnell genug ist.

Ich will nicht jetz erst mal "normal" programmieren und dann später merken, dass es nicht hinhaut und mit DirectX anfangen muss.

Am besten wäre es, wenn ich mit so ner art stimmgerät anfangen könnte.

Das kann ich selber überprüfen, da ein Hardware-Stimmgerät vorhanden ist. Außerdem sind die Herzzahlen doch bestimmt irgendwo notiert(z.b für ein C1).

ist nur die frage, wie misst man frequenzen?

werden die mitübertagen oder muss ich die amplitudenwerte mit der einer Sinus-function vergleichen?

gruß snow

shmia 17. Jan 2008 12:35

Re: SoundLib?
 
Zitat:

Zitat von snow
Ich würd ganz gerne erst mal wissen ob man lieber gleich mit hardwarebeschleunigung anfangen sollte (DirectX , und was es sonst noch so gibt), oder ob das "normale" schnell genug ist.
Ich will nicht jetz erst mal "normal" programmieren und dann später merken, dass es nicht hinhaut und mit DirectX anfangen muss.

Du kannst erst mal "normal" programmieren, denn die internen Algorithmen sind dieselben.
Es gibt immer einen Datenstrom (16 Bit) mit einer bestimmten Abtastrate (meist 44.1 oder 48 kSamples).
Ob die Daten über DirectX von der Soundkarte kommen oder aus eine WAV-Datei ist zunächst mal egal.

Zitat:

Zitat von snow
Am besten wäre es, wenn ich mit so ner art stimmgerät anfangen könnte.
Das kann ich selber überprüfen, da ein Hardware-Stimmgerät vorhanden ist. Außerdem sind die Herzzahlen doch bestimmt irgendwo notiert(z.b für ein C1).

ist nur die frage, wie misst man frequenzen?
werden die mitübertagen oder muss ich die amplitudenwerte mit der einer Sinus-function vergleichen?

Ein digtales Stimmgerät ist natürlich schon wieder etwas schwieriger.
Man könnte sich hier folgende Methode vorstellen:
Das Signal durchläuft einen digitalen Tiefpassfilter (Stichwort FIR-Filter)
damit nur noch der Grundton vorhanden ist.
Dann werden die Abstände der Nulldurchgänge ausgemessen und in eine Frequenz umgerechnet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:53 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