[vst, vst3] MidSide Distortion

Laguna
Laguna
Helpful & Friendly User
HFU
Zuletzt hier
26.12.23
Registriert
31.03.05
Beiträge
2.106
Kekse
21.145
Ort
Fürth
Ein "Hallo!" an die Freunde der kräftigen Klangverzerrung!

In letzter Zeit habe ich mich ein wenig mit der Entwicklung von Audio-Plugins auseinandergesetzt. Die digitale Signalverarbeitung ist ein spannendes Thema und ich bin gespannt, was ich in Zukunft noch alles interessantes lernen werde. Nach einigen Versuchen kann ich hier nun ein erstes Plugin der Öffentlichkeit präsentieren:
Mid-Side-Distortion v0.1 (vst und vst3 im zip-Archiv, 910 KB)

Damit ist es möglich, gezielt den Mitten- oder Seiten- Anteil eines Stereo Signals zu verzerren. Implementiert sind aktuell 3 Verzerrungs-Algorithmen (und ein Bypass).

MSDistortion.png


Sicherlich ist das Plugin noch nicht perfekt, weswegen ich mich auf Anregungen und Kritik freue!

So Far...
Laguna
 
Eigenschaft
 
Ah, schick. Hättest du es nicht verlinkt, hätte ich es nicht gefunden. Is es auch Mac kompatibel?
An der Optik musst du noch feilen - aber komm Zeit komm Draht und so. (wenn du ein fancy old-school Mischpult Look drauflegst, kannst du ed für doppelt so viel verkaufen) ;)
 
Heee das ist ja cool. :)

Wie programmierst du denn?
Ich spiel mich in letzter Zeit damit eine Standalone Audio-Software zu programmieren.. einfach weil ich nun weis wies geht.
Aber irgendwie fehlt mir die Idee,.. immerhin will ich ja auch was machen, mit dem man/ich was anfangen kann.
Aber erzähl mal, wie du das gemacht hast, weniger die Signalverarbeitung als vielmehr Software und die Umsetzung als vst. :)

Gibts auch die Option, dass du das als AU erstellst, oder ist das sehr anderes?

LG Jakob
 
Hi,
wusste ich doch, dass hier nicht so viele Vorbeischauen. Und ich dachte schon, niemand interessiert sich dafür. :)

Ja, die Optik ist ein ganz klarer Negativpunkt. Ich habe schon einige Jahre Erfahrug in Softwareentwicklung -- deutlich mehr, als man als Physiker normalerweise mitbekommt --, von Kleinst- und Hobby-Projekten bis zu richtig großen Dingern, mit denen auch gut Kohle gescheffelt wird.
... Wie auch immer, trotz dieser Erfahrung ist GUI-Design und Entwicklung nie wirklich ein Spass und fühlt sich für mich jedesmal an wie eine echt schlimme Krankheit an.
Hinzu kommt, dass ich, was das Zeichnen angeht, zwei ziemlich linke Hände habe. :(

Verkaufen will ich das erstmal nicht, wer es benutzen möchte und Spass damit hat, bitte sehr! :)

Als Lib verwende ich Iplug/wdl-ol. Das ist ein c++ Framework, mit dem man (prinzipiell) für VST2, VST3, AudioUnit RTAS and AAX (Native) entwickeln kann. Achja und Standalone geht natürlich auch noch, wobei das natürlich wenig Sinn macht.
Der Vorteil mit WDL-OL ist, dass man hierbei einfach ein Python-Skript aufruft, dass einem ein neues Projekt erstellt, in dem hat man dann die entsprechende Klasse, die von mehreren Projekten (== Build Targets, also die Schnittstelle) genutzt werden einfach einmal implementiert.
Man muss sich nicht mehr extra darum kümmern, auch ja alle Compiler Optionen einzeln richtig zu setzen und ja auch keine Fehler beim Linker zu machen, sondern nutzt einfach das Projekt. Einzig die SDKs der einzelnen Hersteller muss man bereitstellen.

RTAS ist für demnächst geplant. Problem hierbei: Während das Downloaden des vst SDKs von der Steinberg HP noch halbwegs unbürokratisch funktioniert, gibt Digidesign sein PT90 SDK nicht an jedermann raus. Ich habe letzte Woche einen Account für das Download-Center dort beantragt, jedoch dauert die Freischaltung da offensichtlich.

Entwickelt wird das ganze unter Windows mit Visual Studio 2010, einfach weil das das Format ist, in dem IPlug die Projekte ausspuckt und ich mich mit der Umgebung auskenne.
Nicht so glücklich bin ich mit den Debug-Optionen, da zickt entweder mein Setup noch oder es ist nicht dafür gedacht, so verwendet zu werden.

Es gibt dafür zwar einige Tutorials im Internet, jedoch muss man deutlich länger suchen und auch mal die magische Schranke google Seite 2 überschreiten, um wirklich hilfreiche Tipps zu finden. Der Markt wird offensichtlich von einigen Großen beherrscht (die natürlich kein Interesse daran haben, anderen beizubringen, wie was funktioniert) und sonst gibt es nur einige fachlich hochkompetenze Hobbyisten, die schon ziemlich in der Materie drin stecken.


Idee hinter dem Plugin ist, dass ich ein grpßer Freund von Mid/Side bearbeitung bin. Meistens benötige ich auf einer Stereospur keine getrennte LR Bearbeitung sondern eben MS oder gleich auf beiden Kanälen.

Insgesamt ist das ein erster Gehversuch und damit auch mein Ansatz, Einblick in Signalverarbeitung zu bekommen. Man mag erstmal gar nicht glauben, wie schwer es ist, einen simplen Limiter zu bauen, geschweige denn davon, auch noch die ganze Mathe für einen EQ a) zu verstehen (Studium sei dank) und b) auch noch halbwegs robust und schnell zu implementieren.
Man benutzt es zwar täglich, aber es ist irgendwo dann doch deutlich mehr als "ja einfach mal alle tiefen Frequenzen abschneiden".


@ 13.Melody
Was stellst du dir denn genau vor? Eine eigene DAW oder ein Virtuelles Instrument oder gar einen Sequenzer?
Du kannst mir gerne mal eine PN schreiben, an sowas bin ich durchaus immer interessiert.

So Far...
Laguna
 
Danke für die flotte Antwort! :)

Was stellst du dir denn genau vor?
Weis eben noch nicht. zZ. schwebt mir ein simpler wave-editor vor. Mit dem man sehr schnell und unklompiziert einfache Bearbeitungen durchführen kann. (Erweiterungen wären in weiterer Folge natürlich auch möglich)
Sowas gibts klarerweise schon, aber was tut es das noch nicht. ;)
Wenn ich zB. schnell mal ein wav ansehen/abspielen will und dann etwas rausschneiden möchte, brauch in in Logic dafür 5min.
einfach schon alleine deshalb, weil das aufstarten so lange dauert.

Die Sache ist, dass ich brauchbare Erfahrung mit Matlab (und der Signalverarbeitung) hab und ich jetzt auch beginne mich mit der Gui-erstellung auszukennen.
Von einer Matlabfunktion zu einer exe ist es nicht weit. Daher mal meine Gedankenspielerei.
Ich hab zB. schon eine komplette Nachhallzeitmessung mit div. Feinheiten in Matlab stehen (war ein größeres Uni-Projekt).
Einzig die Gui fehlt noch.. aber ich glaub dafür hat niemand wirklich bedarf, einfach weils das schon gibt.. und vorallem optisch viel ansprechender.

Aber ich sehe schon, du bewegst dich programiertechnisch in anderen Sphären als ich, und hast offensichtlich um einiges mehr Erfahrung. ;)
Vielleicht wird aus meinem Projekt auch nix.. aber gerade würde es mich sehr reizen. Mal sehen.
Gefällt mir auf alle Fälle, dass du dich auch damit beschäftigst. :)

LG Jakob
 
Magst du den Code einmal veröffentlichen?
Mich würde das mal brennend interessieren, wie das da drin so aussieht. Programmiertechnisch ist bei mir von C++ irgendwie nicht so viel hängen geblieben, da es mich nicht interessiert. Ich glaub die Switch-Cases (?) waren das höchte der Gefühle. :redface:
 
Um die Matlab Erfahrung beneide ich dich. Ich komm mit dem Programm garnicht so recht auf einen grünen Zweig. Die Vorteile sind mir offensichtlich und der Lerneffekt ist definitiv unbestritten, man hat einfach eine riesig große Toolbox an der Hand. Allein schon eine FFT in c++ kann Monate in Anspruch nehmen, wenn man es richtig machen will.
Dafür habe ich oftmals (grade mit dem ganzen symbolic Kram) meistens einen syntaktischen Knoten im Kopf und bei größeren Projekten (200+ Zeilen) wünsche ich mir oftmals die vielen OOP Features und so Dinge wie Typsicherheit.
Aber da komme ich einfach aus einer anderen Richtung und bin da sicherlich vorbelastet.

Das Projekt an sich klingt doch interessant. Für meine Verhältnisse steht oder fällt ein solches Tool mit der Usability. Wie du schon sagst, Logic braucht "ewig" zum laden. Wenn dein Tool das schneller kann und dann noch intuitiv zu bedienen ist und nicht komplett grütze ausschaut :)o), hat es denke ich eine echte Berechtigung! Ich bin mal gespannt!



@.s: Kann ich gerne machen. Ich muss mich dann aber nochmal rechtlich informieren, ob ich Probleme mit den SDKs bekomme, wenn ich das ganze Projekt einfach auf einen Server schieb (bzw. read acces für mein SVN einrichte).

Ob das dann so super spannend für Aussenstehende zu lesen ist, wage ich zu bezweifeln. Viel ist halt einfach "platziere Drehknopf X an Stelle Y und verknüpfe ihn mit Parameter Z".
Programmiertechnisch sind das, wie in der Readme beschrieben ein paar verschiedene mathematische Funktionen, die als input das aktuelle sample bekommen und entsprechend bearbeiten.

Einige Dinge, die ich noch gern einbauen möchte, scheitern einfach noch an der signaltechnischen Implementierung, aber ich denke, da bin ich auf einem guten Weg. Die Aha-Momente häufen sich. ;)

So Far...
Laguna
 
Für's Debuggen unter Windows kann ich Dir Audiomulch empfehlen, startet extrem schnell, stört sich nicht dran, wenn es unter einem Debugger läuft und Du kannst Dir ein Projekt zusammenbasteln und Dein Plugin verkabeln, wie Du lustig bist. Dann trägst Du in Visual Studio Audiomuch mit dem Namen des Projekts als Debugging-Kommandozeile ein und kannst mit F5 direkt Audiomulch im Debugger starten. Ich finde das deutlich angenehmer als den Steinberg-Testhost.

http://www.audiomulch.com/

Banjo

P.S. Ich stehe außen und finde es spannend;)
 
Zuletzt bearbeitet:
Danke für den Tipp! Genau das war eben mein Problem: Cubase mag es anscheinend nicht, wenn andere Programme irgendwelche Prozesse einfrieren, was teilweise mit kryptischen Fehlern oder gar Bluescreens geahndet wurde.
Ich hatte mir Audiomulch vor einiger Zeit schonmal angesehen, einfach wegen der komplett anderen herangehensweise. Mal sehen, ob das mit der Trial nochmal klappt ;)

Ich plane für Ende der Woche oder am Wochenende V0.2.
der Code wird dann (für die von mir geschriebenen Files) beigelegt, zum einen, da ich die rechtlichen Aspekte noch nicht durchstiegen hab (und ehrlich gesagt auch noch keine Muse hatte), zum anderen, da das komplette Projekt knapp 200MB sind, die aber so niemand braucht. Und danndürft ihr mich alle in der Luft zerreissen, was ich für einen Stuss fabrizier. :D

Geplant sind bis dann auch Even-Order Harmonics, mehrere Stages und ein Mix-Regler.
Sonst noch Wünsche?

So Far...
Laguna
 
200MB:eek:

Oder ist das inklusive der Debug- und Release-Ordner? Die gehören ja sowieso nicht ins SVN. Bevor ich etwas in SVN importiere, mach ich immer eine Kopie, dann miste ich alles aus. was der Compiler sowieso generiert und dann bleibt ja nimmer soviel übrig. 200MB wären schon ein Haufen Code-Holz...

Re: Audiomulch: die großen DAWs mögen es nicht, wenn Debugger laufen oder wenn sie gar selber unter einem laufen sollen. Meist ist es die Kopierschutzfunktion, die das erkennt und dann die DAW blockiert. Von ProTools gibt es eine eigene Entwickler-Version, die beim Start anhält und sagt, so, jetzt dürft ihr einen Debuggger auf mich ansetzen und dann bitte OK drücken. Mit der Version kann man allerdings nicht viel machen außer Plugin testen, vor allem kann man keine Sessions speichern.

Wie gut das System auf Anhalten der Audioverarbeitung im Debugger reagiert, hängt nach meiner Erfahrung auch vom Treiber ab, RME ist da ziemlich gutmütig.

Ich finde den Audiomulch auch so praktisch, weil man den ganzen Audiobaukasten hat mit Mixern, Pegelstellern etc., alles zum frei verdrahten. Mit dem Inverter kann man zum Beispiel zwei Signale von einander abziehen und die Differenz hören, sehr praktisch zum Testen oder Verifizieren von Plugins. Dazu Signalgeneratoren (Sinus und Rauschen), Fileplayer und Recorder, wie ein kleiner Audio-Labortisch und mittendrin Dein VST.

Banjo
 
  • Gefällt mir
Reaktionen: 1 Benutzer
Ich weis nicht, was IPlug da alles hin und herkopiert. Wichtig sind für mich letztendlich zwei Dateien, die eben Klassendeklaration und -Implementierung enthalten. Irgendwo bin ich auch sehr froh, mich nicht um das ganze Projekt-Aufsetzten gefrickel kümmern zu müssen -- Wer schonmal mit dem VST-SDK herumprobiert hat, hat eine Ahnung, wovon ich spreche. ;)

So Far...
Laguna
 
Hi,

So, mal ein kurzes Statusupdate:
Ich bin aktuell dabei, jetzt auch Even Order Harmonics zu implementieren. Das bedeutet anschaulich gesprochen: Wenn eine Frequenz f in den Eingang geht, werden ganzzahlige, geradzahligen (2,4,6,...) Vielfachen als Obertöne hinzugefügt. Problem hierbei: Auch 0*f kommt als even harmonic dazu. Dies entspriche einem Gleichspannungsoffset, den man natürlich wieder rausziehen möchte.
Dafür ist es nötig, einen (LowCut)Filter zu implementieren.
Ich habe (nach einigen gescheiterten Versuchen) dieses schöne und anschauliche Tutorial gefunden, das ich euch nicht vorenthalten möchte, und aus dem ich die Filter Implementierung geklaut habe:
Making Audio Plugins: Filter

Ganz prinzipiell zur Verzerrung von Signalen:
Das Eingangssignal wird durch eine Transferfunktion geschickt. Das kann jede beliebige (hinreichend gutmütige) Funktion sein, die Werte zwischen -1 und 1 nimmt und im deren Ausgabe im gleichen Bereich liegt. Beispielsweise sin(0.5*pi*x) oder tanh(x).
Für einen Bypass wählt man die Funktion als einfache Ursprungsgerade mit Steigung 1, sodass der Ausgangswert dem Eingangswert entspricht.
Eines meiner "Aha"-Erlebnisse war hierbei, dass (symmetrisch) ungerade Funktionen (also mit Punktsymmetrie am Ursprung), beispielsweise sin(x) oder x^3) auch ungerade harmonische erzeugen (also 1,3,5,...) und symmetrisch gerade Funktionen(achsensymmetrisch zur Ordinate), beispielsweise abs(x) oder x^2, eben gerade harmonische. :eek: :D

Das, kombiniert mit ein bisschen Mid-Side-Kodierung ist im Grunde auch schon der ganze Zauber des Plugins.

So Far...
Laguna
 
  • Gefällt mir
Reaktionen: 2 Benutzer
Klingt spanned.
Vielleicht ist ein verschiebbarer Lowcut noch was für das Plugin für M & S. :nix:
 
Ist es auch. Man lernt immer nochmal dazu.
Genau daran habe ich heute Abend gearbeitet. Es gibt jetzt für Mid und Side voll durchstimmbare Low- und Highpasses. :)

Ein LowCut ist sowieso einer meiner meistgenutzten Effekte. :rock:

So Far...
Laguna
 
Eines meiner "Aha"-Erlebnisse war hierbei, dass (symmetrisch) ungerade Funktionen (also mit Punktsymmetrie am Ursprung), beispielsweise sin(x) oder x^3) auch ungerade harmonische erzeugen (also 1,3,5,...) und symmetrisch gerade Funktionen(achsensymmetrisch zur Ordinate), beispielsweise abs(x) oder x^2, eben gerade harmonische.

Diesen Aha-kenn ich auch. :)
punktsymmetrische Funktionen erzeugen nur ungerade Teiltöne (also f0*1, f0*3 usw.)
Während spiegelsymmetrische nur geradzahlige Teiltöne produzieren (also f0*2 f0*4) usw... Das Problem ist, dass die Grundfrequenz dadruch stirbt. :( ..und der offset. (ist klar, aber war mir vor deinem Posting nicht direkt bewusst..)
Wenn man aber nur eine Seite ändert, also die Eingangs-Ausgangs-Funktion unter null zB. mit 45° belässt,
aber oben dafür 30° oder sowas definiert, müssten eigentlich auch nur gerade Teiltöne zustande kommen oder nicht?
aber die unsprüngliche Schwingung (f0) müsste erhalten bleiben.
Oder hab ich da einen Denkfehler..?

LG Jakob

Großes EDIT:
Es hat mich nicht in Ruhe gelassen:
Im Anhang hab ich die Plots mit 3 verschiedenen Signalen.
Die erste Eingangs-Ausgangsfunktion (nennt man das wirklich Transferefunktion, Laguna?) ist die von mir oben bereits beschriebene (also unter 0: 45° ober 0: 30°).
Die zweite eine x^2 Funktion
und die dritte eine x^3.
Man sieht, dass ich mit meiner Vermutung sogar recht hatte..
 

Anhänge

  • VerzerrteSinuse_1.jpg
    VerzerrteSinuse_1.jpg
    30,2 KB · Aufrufe: 253
  • VerzerrteSinuse_2.jpg
    VerzerrteSinuse_2.jpg
    36,3 KB · Aufrufe: 235
  • VerzerrteSinuse_3.jpg
    VerzerrteSinuse_3.jpg
    31,4 KB · Aufrufe: 242
  • VerzerrteSinuse_4.jpg
    VerzerrteSinuse_4.jpg
    31,4 KB · Aufrufe: 254
Zuletzt bearbeitet:
Probieren wir es aus:
DistortionSpectra.jpg

1) Was gibt es hier zu sehen: Als Grundfrequenz wird f0 = 1000Hz eingestellt.

2) Bei einem sinus (punktsymmetrisch) bekommt man zusätzlich zur Grundfreuenz die dreifache Freuenz (3*f0) zurück. [Der Faktor 0.5*Pi wird gebraucht, damit Ein- und Ausgangswerte zwischen -1 und 1 zu liegen kommen]

3) Bei einer Parabel (x^2) entsteht die Harmonische bei der doppelten Frequenz. Der Offset (0*f0) ist bereits herausgefiltert. Die Grundfrequenz selbst kommt nicht vor, kann aber mit einem "+x" Term einfach wieder hinzugefügt werden.
[Der Faktor 2 und der Offset gewährleisten hier ebenfalls, dass Ein- und Ausgangswerte zwischen -1 und 1 liegen.]

4) Bei der von dir vorgeschlagenen Funktion bleibt sowohl die Grundton erhalten, als dass auch gerade Obertöne entstehen. Es kommt zusätzlich zu niedrigeren Harmonischen.
Ich kann mir daraus noch keinen 100% schlüssigen Reim machen. Da es sich bei dieser Funktion aber weder um eine rein gerade noch ungerade Funktion handelt, kann man hier die oben aufgestellte Faustformel wohl nicht anwenden. Um das Spektrum zu verstehen, müsste man die Funktion wohl als Entwicklung in einer entsprechenden Basis gerader und ungerader Funktionen aufschreiben (was beliebig kompliziert sein kann) und könnte dann so sehen, welche Anteile für welche Harmonische zuständig ist.

So Far...
Laguna
 
Haha, da waren wir ca. gleich schnell :D
Zu niedriegeren Harmonischen kommt es bei mir nicht...
Aber ich checke mal schnell.
-> No, da ist nix unter f0 außer der DC.

Edit:
Ich habs auch sicherheitshalber mit "if(x>0) x = x*0.5" ausprobiert.. Ändert aber daran nix.
30° sind nämlich 1/(3^(1/2)). Aber für die Wirkungsweise ziemlich egal.
 
Zuletzt bearbeitet:
Hi,

Es gibt eine Version 0.2. :)

Klick Mich (rar, 610 KB)

Neu hinzugekommen sind:
* Even order harmonics
* Low- und HighCut Filter
* Mix (Dry/Wet-Regler)
* Presets
* Der Source Code


Der Mix-Regler ermöglicht nun auch den gezielten Einsatz. Die Filter helfen dabei, nur bestimmte Frequenzen anzuzerren.
Mit dem Sourcecode kann ich hoffentlich ein bisschen die Angst vor der ganzen Mathematik nehmen. Da passiert wirklich kein Zauberwerk.

Ich freue mich auf euere Meinungen!

Meine geplanten Verbesserungen für die nächste Runde:
* hübschere GUI
* Filtersteilheit einstellbar (zumindest 6,12,18,... dB/oct)
* Stages (Ein Signal kann mehrmals in die Verzerrung gefahren werden. Das war eigentlich schon für diese Version geplant, hatte jedoch noch nicht den gewünschen Effekt. Kann man mit mehren Instanzen aber ganz einfach selbst implementieren.
* Wenn sich die Jungs von Digidesign mal aufraffen, gibt es auch irgendwann eine RTAS Version.

So Far...
Laguna
 
Zuletzt bearbeitet von einem Moderator:
hab das grade mal ausprobiert. Am besten gefällt mir auf Anhieb die Zerre wenn der Distortion-Regler genau mittig steht, was ist denn das für eine?
Die sehr subtil eingestellt ist kaum hörbar und bringt nur so ne leichte Portion Dreck auf Vocals.

Was sind denn die verschiedenen Zerren? (Sorry, falls das schon irgendwo hier steht, dann reicht mir ein Hinweis darauf und ich les mir das nochmal durch.. hab das oben nur überflogen, da ihr mich irgendwann abgehängt habt - obwohl es interessant ist!)

Verstehe ich das richtig, dass der Gain-Regler oben rechts ein Output-Gain-Regler ist? Ansonsten wäre ein regelbarer Output noch sehr cool.
 
Hi,

Ein Blick ins "readme.txt" hilft. (Keine Sorge, nächstes mal nenn ich es ignoreme.txt, dann überliest es sicher niemand ;) )

Der Gain-Regler ist tatsächlich ein richtiger Output Gain, der nach allen anderen Bearbeitungen (auch nach Dry/Wet) eingreift.


Ich habe noch nicht herausgefunden, wie ich "gerasterte" Drehknöpfe implementieren kann. das würde die Auswahl sicherlich leichter machen.
Die Reihenfolge der Zerren ist wie folgt:
[0:No Distortion] [1: Digital Clip] [2:Sine-Transfer] [3:Tanh-Transfer] [4:Cubic-Transfer] [5: Cos-Transfer] [6: Square-Transfer]

Eine kurze Erklärung:

No Distortion macht, wie der Name schon sagt, nichts weiter und bypasst quasi den Distortion-Part, sodass nur MS, Drive, Filter und Gain wirken.

Digital Clip nimmt das Signal und bügelt alles größer als einen bestimmten Wert einfach ab. So werden --da die Ableitung des Verzerrten Signals nicht mehr stetig ist -- recht hart klingende odd harmonics erzeugt.

Sine-Transfer nutzt als Transferfunktion einen gestauchten Sinus mit x = sin(x* PI/2.0). Der Sinus als gutmütige punktsymmetrische Funktion erzeugt etwas bravere odd harmonics.

Tanh-Transfert ist ähnlich gutmütig und glatt wie sine und liefert somit ähnliche odd harmonics. Der tanh wird aus Berechnungsgründen durch eine approximative Funktion ersetzt.

Cubic-Transfert nutzt als transferfunktion ein Polynom dritten Grades x= x**3. (ebenfalls odd harmonics) Dieses liefert bei kleinen Eingangswerten sehr kleine Ausgangswerte, für Werte nahe 1 steigt die Ausgabe dann ebenfalls sehr schnell auf 1 an.

Cos-Transfer liefert die erste even-harmonics Verzerrung. x = - cos(x*PI); Hier wird die Grundfrequenz nicht mit ausgegeben.

Square-Transfert liefert eine Verzerrung nach x = 2*x**2 - 1.0; und somit ebenfalls even harmonics.


So Far...
Laguna
 

Ähnliche Themen


Unser weiteres Online-Angebot:
Bassic.de · Deejayforum.de · Sequencer.de · Clavio.de · Guitarworld.de · Recording.de

Musiker-Board Logo
Zurück
Oben