equalizer?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
gorba
User
Beiträge: 100
Registriert: Freitag 28. Juli 2006, 14:58

Hallo, ich will eine art equalizer mit python realisieren. das ding sollte sound:
- compressen
- bestimmte frequenzen pushen
- teilbereiche vorverstärken, wenn sie zu leise sind

Meine frage nun, ist sowas übewrhaupt in python möglich?
Habe mich nun ein wenig mit snack beschäftigt, aber ich habe das gefühl, auch mit snack ist sowas nicht möglich

Was denkt ihr?
Sinn und Unsinn meiner Worte kommt nie von ungefähr. Das nämlich bin ich, nicht mehr.
joost
gelöscht
Beiträge: 134
Registriert: Sonntag 29. April 2007, 13:28

Wenn ich mir das
http://docs.python.org/lib/module-audioop.html
ansehe, und, dass das nur ein kleiner Teil der Sound-Features ist, kann ich nicht glauben, dass das unmöglich ist.

Du wirst Dich dafür aber so weit in Python eingearbeitet haben müssen, dass Du von selbst immer als erstes in die library reference siehst.
[color=green][size=75]Never use idle.pyw, if you need sys.stdin[/size][/color]
Bernhard
User
Beiträge: 136
Registriert: Sonntag 15. Januar 2006, 20:31
Wohnort: Greifswald
Kontaktdaten:

Na ja,

das hilft alles beim Einlesen und Ausgeben von Audiodateien, aber das Verstärken einzelner Frequenzbänder und dergleichen kommt da ja nicht gerade out-of-the box. Dazu müsste man wohl einiges nicht über Python sondern über das Bearbeiten von Sounds wissen.

Gibt es dazu brauchbaren Lesestoff im Netz?

Gruß,
Bernhard
gorba
User
Beiträge: 100
Registriert: Freitag 28. Juli 2006, 14:58

habe mich eingenhend mit dem thema beschäftigt und bin zum schluss gekommen, dass dies mit einem DSP und ANSI C einfacher geht als mit Python.
Sinn und Unsinn meiner Worte kommt nie von ungefähr. Das nämlich bin ich, nicht mehr.
Benutzeravatar
sunmountain
User
Beiträge: 89
Registriert: Montag 13. März 2006, 17:18

gorba hat geschrieben:habe mich eingenhend mit dem thema beschäftigt und bin zum schluss gekommen, dass dies mit einem DSP und ANSI C einfacher geht als mit Python.
Ich würde mal hier schauen:

http://audacity.sourceforge.net/onlineh ... effect.htm

http://audacity.sourceforge.net/help/nyquist

http://audacity.sourceforge.net/help/nyquist3

Bevor Du einen DSP programmierst, bist Du damit bestimmt schneller
fertig.

Hat halt wenig mit Python zu tun ;-)

Das schon eher:
http://www.onlamp.com/pub/a/python/2001 ... tml?page=1

http://www.speech.kth.se/snack/
Zuletzt geändert von sunmountain am Montag 7. Mai 2007, 11:08, insgesamt 1-mal geändert.
joost
gelöscht
Beiträge: 134
Registriert: Sonntag 29. April 2007, 13:28

Ganz ohne C sollte man es - selbst wenn's ging - wohl schon aus Gründen der Performance nicht machen. Bin aber gerade auf folgenden Abschnitt im Tutorial gestoßen:
Suppose you want to design a collection of modules (a ``package'') for the uniform handling of sound files and sound data. There are many different sound file formats (usually recognized by their extension, for example: .wav, .aiff, .au), so you may need to create and maintain a growing collection of modules for the conversion between the various file formats. There are also many different operations you might want to perform on sound data (such as mixing, adding echo, applying an equalizer function, creating an artificial stereo effect), so in addition you will be writing a never-ending stream of modules to perform these operations. Here's a possible structure for your package (expressed in terms of a hierarchical filesystem):

Code: Alles auswählen

Sound/                          Top-level package
      __init__.py               Initialize the sound package
      Formats/                  Subpackage for file format conversions
              __init__.py
              wavread.py
              wavwrite.py
              aiffread.py
              aiffwrite.py
              auread.py
              auwrite.py
              ...
      Effects/                  Subpackage for sound effects
              __init__.py
              echo.py
              surround.py
              reverse.py
              ...
      Filters/                  Subpackage for filters
              __init__.py
              equalizer.py
              vocoder.py
              karaoke.py
...
(http://docs.python.org/tut/node8.html). Da steht 'equalizer.py', was natürlich auch nur eine Kapselung für eine DLL sein kann. Nun ja, GvR verspricht selten zuviel.

Wenn man das in C macht, wäre es natürlich ein schöner Beitrag, gleich noch py-Bindings dazuzuliefern. Die hin- und herzureichenden Objekte sind ja immerhin ziemlich einfacher Natur (ein paar ints und buffers), allzuviel Extra-Code für die py-Bindings hätte man vielleicht gar nicht. Hat das wirklich noch niemand getan, gorba ?
[color=green][size=75]Never use idle.pyw, if you need sys.stdin[/size][/color]
BlackJack

Warum reden hier immer alle von C? Für so etwas nimmt man FORTRAN wenn es schnell sein soll. ;-)
Antworten