Plug in programmierung

Infos und Fragen zu Rechnern, Software & Co.

Moderator: Moderation

Stefanos Ioannou
Vollmitglied
Beiträge: 58
Registriert: 18.06.2014, 11:34
Ort: Nikosia
Ort: Detmold

Plug in programmierung

Beitragvon Stefanos Ioannou » 16.04.2015, 11:35

Ich würde mich gerne ein bisschen mit plug-in Programmierung beschäftigen. Max/Msp sieht für mich ziemlich gut aus. Ich habe allerdings ein paar Fragen dazu:
Kann man damit plug-ins (z. B.) im VST format herstellen? Wenn nein, wie kann man die mit Max/Msp programmierten Programme in die DAW integrieren?
Kann man mit Max/Msp auch sachen wie EQ oder Kompressor benutzen oder herstellen. Im internet liest man immer nur über Synthesizer.
Ich habe mich noch gar nicht mit dem Thema auseinandergesetzt weil mit ein bisschen im Internet rumgucken fühl ich mich ein bisschen überfordert wegen der vielen verschiedenen Programme/Sprachen die es dafür gibt. Max/Msp interessiert mich weil man so wie ich es verstanden habe viele Sachen die es schon gibt benutzen kann und kombinieren kann und nicht in C programieren muss

Benutzeravatar
Tomte
Senior Member
Beiträge: 400
Registriert: 13.11.2007, 18:46

Re: Plug in programmierung

Beitragvon Tomte » 16.04.2015, 14:55

Wie es mit VST aussieht, weiß ich nicht. Soweit ich weiß, gibt es in Max/Msp "nur" MIDI und Audio-Ein- und Ausgänge (sicher auch OSC). Ich bin gerade dabei mich in Ableton live in Max einzuarbeiten. Dort ist es wirklich sehr komfortabel integriert. Wenn es allerdings nur um Max geht, ist der Anschaffungspreis dafür natürlich hoch. Eine ganz freie Variante wäre übrigens Pure Data. Wie eine Einbindung in andere DAWs aussieht, weiß ich nicht genau. Mir wäre das zu umständlich. Kann sein, dass es über Audio-Routing geht (per Jack?? Rewire??) - aber in Ableton habe ich eben gleich die ganze Bedienoberfläche mit drin.

In Max ist prinzipiell alles an Signalverarbeitung möglich, also auch z.B. EQ und Dynamikverarbeitung. Z.T. stehen da auch sehr komfortabel bereits Bibliotheken zur Verfügung. Für Filterimplentierungen habe ich das schon gesehen. Das ist wirklich sehr einfach. Wie komfortabel das für Kompressoren ist, weiß ich nicht. Aber da wird sich sicher auch was programmiertes finden. Möglich ist das in jedem Fall.

Ich bin nach wie vor dabei, mich an diese Oberfläche zu gewöhnen. Ich habe ansonsten viel in Matlab programmiert, und es ist ein anderes Denken nötig, um mit den ganzen Strippen klar zu kommen. Ich habe noch immer das Gefühl, nicht ganz die Kontrolle über alles zu haben, weil ich es eher gewohnt bin "mathematisch genau" zu programmieren. Gerade für Echtzeitverarbeitung bieten sich da aber in Max große Möglichkeiten und ein Komfort, den ich in Matlab (oder C/C++) nicht so einfach habe. Und wenn die Oberfläche verstanden ist, ist - falls gewünscht - genauso wissenschaftliche Signalverarbeitung möglich.

Benutzeravatar
Tomte
Senior Member
Beiträge: 400
Registriert: 13.11.2007, 18:46

Re: Plug in programmierung

Beitragvon Tomte » 16.04.2015, 14:59

Wichtig wäre zu wissen, was Du denn genau programmieren willst, bzw. was Dir denn genau an Funktionalität fehlt. Denn die Beispiele EQ und Kompressor sind ja nun gerade welche, wo es zu Hauf freie VSTs oder in DAW integrierte Lösungen gibt. Da braucht man das Rad ja nun wirklich nicht neu zu erfinden.

Stefanos Ioannou
Vollmitglied
Beiträge: 58
Registriert: 18.06.2014, 11:34
Ort: Nikosia
Ort: Detmold

Re: Plug in programmierung

Beitragvon Stefanos Ioannou » 16.04.2015, 18:58

Ich will nichts bestimmtes programieren. Ich will nur experimentieren und lernen aber z.B. bräuchte ich einen Kompressor um einen de-esser zu programieren

Benutzeravatar
Tomte
Senior Member
Beiträge: 400
Registriert: 13.11.2007, 18:46

Re: Plug in programmierung

Beitragvon Tomte » 17.04.2015, 00:39

Stefanos Ioannou hat geschrieben:Ich will nichts bestimmtes programieren. Ich will nur experimentieren und lernen aber z.B. bräuchte ich einen Kompressor um einen de-esser zu programieren

Nun, wie gesagt: Kompressor, EQ, Deesser - all das gibt es zu Hauf und auch in guter Qualität - das programmiert sich nicht mal so eben.

Zum Herumspielen ist Pure Data oder Max natürlich trotzdem toll.

Benutzeravatar
tonstudio96
Vollmitglied
Beiträge: 80
Registriert: 21.06.2007, 22:16
Ort: Gelnhausen
Ort: Raum Frankfurt
Kontaktdaten:

Re: Plug in programmierung

Beitragvon tonstudio96 » 27.04.2015, 02:15

Was wäre denn eurer Meinung nach der dezeit beste Kompressor als SW-VST im Markt?

Wenn ich mir meine damaligen Aktivitäten in Sachen SW-Programmierung Audio in Erinnerung rufe, bin ich nach wie vor der Ansicht, dass es eigentlich auch mit den heutigen Multi-Core nicht wirklich möglich ist, einen guten hochauslösenden MBC in SW zu machen, sodass er nicht die halbe PC-Bandbreite wegfrisst ...

Mein FPGA-MBC berechnet 33 Bänder mit bis zu 8192 TAPs (coverage 40ms) auf 32 Bit. Allein die Speicherzugriffe auf die BRAMs und Register machen 800GBit! Da bräucht es eine ganze Batterie an DDR3-Rams im PC um das zu leisten und komplett multitasking-fähig zu bleiben.

Benutzeravatar
Tomte
Senior Member
Beiträge: 400
Registriert: 13.11.2007, 18:46

Re: Plug in programmierung

Beitragvon Tomte » 27.04.2015, 15:50

Also das ist nun ein großes Fass. Der beste Mulitbandkompressor wofür?

Ich höre zum ersten Mal, dass jemand in der Tontechnik so viele Bänder einsetzt. Interessant. Ich kenne das sonst nur aus audiologisch/psychoakustisch motivierten Anwendungen, z.B. für digitale Hörgeräte, und selbst da werden selten so viele Bänder eingesetzt.

Für neutral klingende Anwendungen bin ich mit den Kompressoren in Samplitude stets extrem zufrieden - und wenn ich unbedingt mal einen Multibandkompressor brauchte, war ich auch mit dem integrierten 4-Band-Ding gut ausgekommen.

Benutzeravatar
Arno
Senior Member
Beiträge: 774
Registriert: 08.08.2009, 14:55
Ort: Bochum
Ort: Bochum

Re: Plug in programmierung

Beitragvon Arno » 28.04.2015, 15:20

Hallo,

tonstudio96 hat geschrieben:Mein FPGA-MBC berechnet 33 Bänder mit bis zu 8192 TAPs (coverage 40ms) auf 32 Bit. Allein die Speicherzugriffe auf die BRAMs und Register machen 800GBit!


Das würde mich aber mal näher interessieren. Hast du das Projekt irgendwo dokumentiert?

Gruß,
Arno
Moment, Moment! Haben Sie das gehört? Was für ein seltsamer Ton!

Benutzeravatar
tonstudio96
Vollmitglied
Beiträge: 80
Registriert: 21.06.2007, 22:16
Ort: Gelnhausen
Ort: Raum Frankfurt
Kontaktdaten:

Re: Plug in programmierung

Beitragvon tonstudio96 » 29.04.2015, 03:02


Benutzeravatar
Tomte
Senior Member
Beiträge: 400
Registriert: 13.11.2007, 18:46

Re: Plug in programmierung

Beitragvon Tomte » 29.04.2015, 15:18

Auf was für einer Hardware läuft das? Ich dachte, die Zeiten wären vorbei, wo DSP-Hardware tatsächlich noch attraktiv ist im Vergleich zu PCs. Interessant.

Benutzeravatar
tonstudio96
Vollmitglied
Beiträge: 80
Registriert: 21.06.2007, 22:16
Ort: Gelnhausen
Ort: Raum Frankfurt
Kontaktdaten:

Re: Plug in programmierung

Beitragvon tonstudio96 » 29.04.2015, 20:06

Man kann es für meine alte Spartan Platfrom verwenden oder an eine aktuelle Platform anpassen. Momentan arbeite ich auf einem EVAL board von Terassic. Siehe die Topseite. Es braucht dann nur noch S/PDIF Ein-Ausgänge.

Zur Rechenleistung von DSPs:

Der Multibandkompressor arbeitet z.B. auf 192kHz. Will man eine Periode prozessieren, wären das bei angenommenen 24 Hz etwa 41 ms. Für eine kontinuierliche Rechnung muss JEDES Sample schrittweise prozessiert werden, also 8000 Samples - Ich nehme 8192
Für die hoheren Frequenzen geht das auf 24 nach unten, wenn man sich auf eine Periode oder wenige Perioden begrenzt und nur dann ist der Filter ohne Fensterung artefaktfrei! Ich arbeite "oben" aber mit u.U. mehr als einer Perdiode - passend jeweils zur Überlappung zur Nachbarfrequenz.

Im Schnitt braucht aber rund 4200 samples für die 33 Bänder, was mit zwei zusätzlichen für hicut und lowcut rund 150000 Berechnungen entspricht. Ein sauberer, phasenlinearer Filter braucht somit für alle Bänder 300.000 Additionen / Multiplikationen
Will man das für jedes der 192k Samples, also voll kontinuierlich machen, landen wir bei knapp 60 Mia Operationen je Sekunde.

Schon daran sieht man, dass ein PC etwa um den Faktor 100 zu langsam ist und irgendwo sparen muss. Nun geht das sowohl rechentechnisch, also auch signalverarbeitungstechnisch. Nehmen wir an, der Rechner prozessiert nicht jedes Sample, sondern filtert auf 48kHz und beschränkt sich auf eine 1/4 Welle, dann spart er einen Faktor 64 ein und könnte das theoretisch machen - mit akzeptablen Qualitätsverlustet.

Praktisch geht es aber immer noch nicht, weil er irgendwo die Koeffiziten herholen muss: Ohne Programmverwaqltung, Fetch und Sonstigem, sind das bei einem voll über ein RAM laufendes System jeweils 4 RAM-Zugriffe (Cache), um eine CPU Echtzeitfähig zu halten. Ansonsten als Alleinarbeiter ginge alles sequentiell in den Prozessorregistern und 2 RAM-Zugriffen. Die so entstehende RAM-Brandbreite betrüge aber immer noch 2x32 Bit mit 1GHz. Ein moderner Video-DSP schafft das bereits und man könnte die Funktion mit 4en von denen nachbilden, um die gleichzeitigen Zugriffe auf das RAM mit genügender Breite zu leisten. Bei einem PC ist es aber schwer: Da ist billiger DDR3-speicher verbaut, der als Flaschenhals wirkt weil er keine hohe Bandbreite besitzt. Um die bereits abgespeckten 64Gbps abzudecken, bräuchte man 20 Anschlüsse von PC3200 RAM.

Um das zu leisten, was man MCB (in der ersten Version >10 Jahre alt) kann, brauchst Du 320 PCs parallel!
Und das ist nur die EQ-Einheit. Hiinzu kämen Rechenzeitbedraf für die AGC und Limiting.

Nun muss man sagen, dass man einen so präzisen EQ nicht wirklich braucht. Irgendwann mal wird man keine Auflösungsunterschiede bei weiterer Steigerung der Raten mehr hören. Praktisch könnte man auch mit einem System auf 96kHz arbeiten, was einen Faktor 4 spart. Aber in einem FPGA lässt sich ein Speicherzyklus eben in einem Register erledigen und wenn man es hat, wird es auch genutzt. Allerding käme ein solcher MBC dann auch schon rechnereisch auf rund 300 Euro EK und nur dafür zahlt das keiner.

Mit FPGAs geht es im Übrigen noch weiter:

Meine VA-Synth-Unit besitzt im Maximalausbau über 200 Steuerregister und Zustandsspeicher, die bidirektional dual port beschrieben werden. Jedes der im FPGA verfügbaren Blockrams hat 4 Anschlüsse, die mit bis zu 200MHz laufen, also 16x4x200 = 12,8 Gbit. Alle BRAMs zusammen liefern bei einem S6 FPGA wie im DrumComputer > 2000 Gbps an Bandbreite und ich könnte noch mehr, wenn der FPGA mehr BRAMs hätte. Leider muss ich da schon Komplexität wegsparen und kann nur 128 voll ausgebaute Stimmen mit 1024 Steuervariablen verwenden. Daher kann der mit der typischen Taktfrequenz auch weit über 1000x abtasten. Praktisch läuft er auf 768kHz Abtastfrequenz. Die Filtergüten sind entsprechend. Kein Synthesizer weltweit kann auch nur annähernd ähnlich Genaues produzieren und schon gar kein DSP oder gar PC. Im Grunde genommen ist das "analog".

Bei allen diesen Apps sind die BRAMs der leistungsbegrenzende Faktor. Wenn ich die VA-Synth-Unit voll flexibel schaltbar machen will, muss ich sie auf 2 FPGAs verteilen, um genug Parameter-RAM zu haben und dann gibt es noch das Problem, die alle zu beschreiben. Man hat ja nur 10 Finger, um an irgendwelchen Controllern zu drehen und die DAWs auf PC-Basis kriegen nicht genug Daten raus.

Die Geschwindkeit der FPGAs selbst ist kein Problem: Auch mit einem 50 MHz-Teil bekommt man bei 48kHz schon 1024 Kanäle.
Baue das mal sequenziell mit einem DSP. Da ist schnell Ende der Fahnenstange.

Benutzeravatar
hafi69
Senior Member
Beiträge: 1150
Registriert: 19.06.2007, 23:44
Ort: Duisburg

Re: Plug in programmierung

Beitragvon hafi69 » 29.04.2015, 20:42

Nun muss man sagen, dass man einen so präzisen EQ nicht wirklich braucht.

Da bin ich grundsätzlich überzeugt von, allerdings sehe ich zudem nicht, inwiefern
hier wirklich mehr Präzision stattfindet.

Ein guter dynamischer EQ der auf jedem Rechner stabil läuft und wenig kostet:
http://www.voxengo.com/product/soniformer/

Benutzeravatar
Tomte
Senior Member
Beiträge: 400
Registriert: 13.11.2007, 18:46

Re: Plug in programmierung

Beitragvon Tomte » 29.04.2015, 23:13

Technisch interessant, was da auf einem FPGA so alles geht.

Das Problem bzw. die Notwendigkeit habe ich noch immer nicht verstanden. In einer modernen DAW braucht es nicht mal den neusten Rechner, um in 30 Spuren einen sauberen Bandpass plus hervorragenden Kompressor rechnen zu lassen. Die Berechnung läuft natürlich blockweise, und heutzutage bekommt man ein stabiles System bei 44.1kHz mit 48 samples sehr gut hin, wenn man will. Dann könnten wir auch noch lange diskutieren, ob nicht ein gewisser lookahead im Kompressor schön wäre, und schon erübrigt es sich, über 5 oder 10ms Verarbeitungszeit zu diskutieren. Für welche Anwendung (außer in Hörgeräten) brauche ich so kurze delays?

Benutzeravatar
tonstudio96
Vollmitglied
Beiträge: 80
Registriert: 21.06.2007, 22:16
Ort: Gelnhausen
Ort: Raum Frankfurt
Kontaktdaten:

Re: Plug in programmierung

Beitragvon tonstudio96 » 01.05.2015, 00:02

Das Delay ist in der Tat kein Problem, aber wenn er in Echtzeit laufen soll, muss er ja die Daten die reinkommen, bearbeiten. Mit der Bandbreitenbetrachtung oben habe ich ja gezeigt, dass es praktisch unmöglich ist, einen langen FIR-Filter laufen zu lassen. Funktionieren kann mit vielen Kanälen nur ein IIR-Filter mit seinen Nachteilen. Analogfans werden nun aufschauen und anmerken, dass man genau damit elektronische Filter nachbilden kann, wie sie in der Analoghardware stecken, aber die Möglichkeiten sind eben nicht vergleichbar. Da müsste man jetzt tiefer in die Signalverarbeitung einsteigen, aber ich wollte den Thread nicht sprengen.

Stefanos Ioannou
Vollmitglied
Beiträge: 58
Registriert: 18.06.2014, 11:34
Ort: Nikosia
Ort: Detmold

Re: Plug in programmierung

Beitragvon Stefanos Ioannou » 05.05.2015, 08:32

Nach einigem suchen habe ich mir Flowstone von DSP Robotics gekauft. Vom Konzept her scheint es mir sehr ähnlich zu Max. Hauptsächlich geht es darum verschiedene Module mit einander zu verbinden. Man kann aber auch mit der Programmiersprache Ruby programmieren (die allerdings eine ganz andere andere Art zu programmieren ist als sprachen wie z.B. C).
Dee einzige nachteil ist dass Flowstone nur auf Windows läuft


Zurück zu „Hilfe! Computer!“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste