Anzeige:

Effektprozessor programmieren

Hier finden sie die archivierten Beiträge des alten PHPBB Forums von www.loetstelle.net

Effektprozessor programmieren

Von Elektron am 30.08.2010 21:57

Es ist Montag und ich sitze gerade an einem eigenen Effektprogramm für Linux, dass ich selbst einsetzen will. Ein Server zum 19" Rackeinbau ist bestellt und schon auf dem Weg, mit dem IOWarrior will ich dann per USB eine Fußtastermatrix an diesen anschließen und so meine Effekte steuern. Davor kommt noch ein Preamp zum Rackeinbau und dahinter eine 2x120 Watt RMS Endstufe. Ich weiß, kein Mensch braucht so viel, aber je dicker das Ding ausgelegt ist, desto kühler kann ich es fahren.

Natürlich fängt man nicht immer bei Null an, aber die Programme die ich bis jetzt gesehen habe waren schrecklich zusammengewürfelt - einfach nur ein Graus. Nix mit Softwaredesign, ihr wisst schon, Code-Salat. Außerdem abhängig von gefühlt 1000 Libs, wo echt kein Mensch weiß wofür man das wirklich braucht.

Also, Geany angeworfen, libjack-dev installiert (für das Jack Audio Connection Kit) und kiss_fft heruntergeladen - damit will ich auskommen. Jetzt bin ich soweit, dass ich Effekt lustig hintereinanderschleifen kann und will meinen ersten Effekt schreiben: Distortion. Signal liegt gesampled vor, jeweils 512 Samples am Stück die gleichzeitig durch die Mühle gehen.

Und ich hab absolut keine Ahnung. Wo finde ich brauchbares Hirnfutter zu dem Thema?

Von derguteweka am 02.09.2010 19:21

Moin,

Fuer Distortion halt' ich eine Fouriertransf. fuer ungeeignet. Eine FT ist ja eher was lineares; also z.b fuer irgendwelche Filter (obwohl die auch eher selten ueber FT realisiert werden); die Distortion ist gerade nichtlinear.

Du musst dir halt was schreiben, was deine Samples durch eine nichtlineare Funktion schleust.

z.b. sowas:

y=32767*sgn(x);

wenn x ein vz-behaftetes 16bit Sample ist und sgn die signum-funktion; (also 1 fuer x>0 und -1 fuer x<0 und 0 fuer x=0)

oder

y=(x*abs(x))>>15;


Gruss
WK

Anzeige: