Jetzt muss Ich wohl auch mal, da sich bei mir in der mail box die Nachrichten häufen:
Wie die meisten wissen, habe Ich einen kompletten Synthesizer in FPGA-Technologie gebaut, inklusive Klangerzeugung, DSP für Mehrkanalton und auch MIDI-Vorsatz wie man das von den Drumcomputern kennt. Das System ist 2003 entstanden, immer wieder erweitert worden und Teile davon tuten auch in Form von Klängen auf CDs, in kommerziellen Klangerzeugern von OEMs, einem ASIC und vielen Applikationen - allerdings vorwiegend industriellen Anwendungen / industrial Audio.
Der Grund, warum ich damals auf FPGAs gesetzt habe, war dreierlei:
1) FPGAs wieder auffrischen. Hatte das zu Beginn der 90er im Studium, dann länger nicht mehr
2) Dinge machen, die kein anderer hat. Immer wieder habe Ich an Synths Dinge vermisst, Firmen angeschrieben und Tipps gegeben. Selten wurde was umgesetzt.
3) Dinge bauen, die in DSPs nicht gehen.
Der Punkt 3 ist eigentlich der Wichtigste, dazu muss man aber sagen "die nicht GINGEN", denn die Thematik der hohen Rechenleistung, der IO-Leistung, hat sich in den letzten 10 Jahren ja sehr entspannt. Heute bekommt man kleine kompakte Audio-DSPs inklusive S/PDIF-Schnittstelle, die HDMI-Chips haben das onboard und die Standard-Mikrocontroller machen für unter 10,- alles, was machen braucht, inklusive high-speed Schnittstellen. So ist es möglich, hochschnelle Datenverbindungen zwischen DSPs zu erzielen, die man früher so nicht hinbekommen hat. Damit kann man kaskadieren, Leistung multiplizieren und die s.g. Massiv-Parallelen-Systeme bauen.
Somit gab es früher definitiv viel mehr Gründe, einen FPGA ins Spiel zu bringen, als heute. Denn eines muss klar gesagt werden:
Die effektive interne Bandbreite bei FPGAs ist zwar höher, insbesondere die dadurch bedingte maximale Rechenleistung und Datendurchsatz - eine definierte, vorgegebene Rechenleistung erledigen DSPs im Vergleich aber erheblich billiger.
Daher bin Ich auch recht erstaunt, dass nun immer mehr Synthi-Firmen auf den Trichter kommen, jetzt doch auch vermehrt auf FPGAs zu setzen - insbesondere, wenn Ich sehe, dass die Strukturen der Synths sich nicht wirklich ändern und kaum elementare Funktionen hinzu kommen, die FPGAs erfordern. Auch sehe Ich nichts Greifbares realisiert, was FPGAs ermöglichen und DSPs nicht.
Bis auf wenige Dinge, lassen sich übliche Rechnungen auch mit DSPs machen und dies sogar teilweise einfacher. Ich habe einige derartige Dinge integriert, von denen Ich auch nach wie vor überzeugt, dass sie andere nicht haben (Ich habe regelmäßig in meinem Job mit entsprechenden Leuten zu tun, die ebenfalls high-tech Signalverarbeitung machen, z.B. MRT, Ultraschall, Radar, Lidar und etc.) und kann das einschätzen, was da unterwegs ist. Mit diesen Konzepten kann Ich dann in FPGAs auch Strukturen erzeugen, die sich nicht standardmäßig bauen lassen - das gilt für allem für eine von mir entwickelte pipeline - Technologie in mehreren Zeitebenen sowie die Multi-FPGA-Matrix:
http://96khz.org/htm/scalableaudiodsp.htm
Das Konzept ist in ähnlicher Form in einer Industrie-App verbaut und vom Kunden patentiert.
Wie auch immer, scheint die Musikwelt nach vielen Jahren der Fortentwicklung der DSPs, die eigentlich FPGAs absorbieren, nun die FPGAs entdeckt zu haben. Was Ich bisher gesehen habe (wir haben einiges erworben und auch aufgesägt -
) bestätigt mich aber in der Annahme, dass die FPGAs - zumindest bei manchen Firmen und Produkten - auch ein bisschen der Versuch sind, sich ein Alleinstellungsmerkmal zu schaffen und irgendein Gimmik reinzuwerfen, das nicht wirklich Gehalt hat und haben kann.
FPGAs erfordern - wenn man sie effektiv nutzen will - die Einhaltung ganz bestimmter Randbedingungen und diese führen technologiebedingt, immer zu einem Überangebot an Taktgeschwindigkeit und Mangel an RAM, was dazu führt, dass die Entwickler Daten in externe RAMs auslagern und stark sequenziell arbeiten, um Architektur zu sparen. Dann aber hat man verloren und kann das onthefly das FPGAs beherrschen nicht nutzen.
Wer dazu (Vergleich) mehr wissen will, kann eine "Stellungnahme" von mir dazu hier lesen:
https://www.mikrocontroller.net/topic/327505#4435830
Ich bin aber mal gespannt, was Waldorf da bringt. Was Ich bisher gelesen habe, wird es im Wesentlichen eine hochgenaue Wave-Synthese sein, vermute Ich mal, d.h. hoch abgetastetes Material, das sich sehr fein modulieren lässt. Zu diesem Thema habe Ich vor ca 2 Jahren mal in der Access Virus Gruppe eine Abhandlung geschrieben, welche erklärt, welches die Vorteile sind - auch im Bezug auf FPGAs. Werde den Beitrag mal suchen und linken.
Ein derartiges System habe Ich 2006 als Wellenformgenerator in einer Ultraschall-Applikation realisiert und sie ist in etwas ausgebauter Form (höhere Auflösung und mehr Kanäle) in meinem Morpher drin -> Beatmorph. Der kann Samples in Echtzeit auf 0,001% genau modulieren. Man benötigt solche Dinge beim Radar und beam forming, wenn es jemanden interessiert.
Was Ich damit sagen will ( und was mich beschäftigt):
Das Problem ist nicht, etwas ins FPGA zu bringen. Solche Sachen sind weitläufig bekannt und gemacht und ich erwarte da nichts Neues. Das Problem der Musikelektronik ist, es BILLIG genug zu machen, d.h. für einen Preis, den der Anwender bezahlen will, ein komplettes Gerät hinzustellen. Bei DEN Preisen um 2000,- abwärts, bleibt da nicht viel über, für aufwändige Entwicklung und Technologie, d.h. mehr, als ein 100,- Euro FPGA bekommt man da nicht rein. Für Dasselbe Geld erhalte Ich in DSP-form Silizium, das 3x mal soviel kann.
Auch in meinem System sind inzwischen Dinge angefallen, die Ich in Software mache, zunächst ein NIOS Softcore-System (MIDI) und mittlerweile ein Zynq (USB). Weitere Sachen würde Ich heute mit einem 3,- STM32 lösen, statt VHDL zu schreiben und Silizium zu verschwenden. Der Grund ist einfach, dass die DSPs die FPGAs von unten her "einholen".
Ein FPGA macht nur dort Sinn, wo es absolut nötig ist, wegen der Bandbreite, um z.B. 150 MHz Video zu verarbeiten. Für die Erzeugung von 192kHz Audio brauche Ich aber keine HW. Das kann ein DSP und sie können es zunehmend besser. Damit kommt es also letztlich nur noch darauf an, was insgesamt an algorithmischer Leistung erzeugt werden muss, wieviele Stimmen z.B. erzeugt werden können und die ergeben sich aus der Taktfrequenz / Abtastrate, also in meinem Fall 200 MHz mit 1024 Stimmen zu 192kHz oder eben 4096 zu 48Khz. - als Minimum für ein Modul:
Beispiele hier:
http://96khz.org/htm/fpgamusicsynthesizercyclone4.htm
Dann kommt es noch darauf an, wieviele solcher Einheiten man parallel ins FPGA bekommt und was da noch alles an Verarbeitung rein muss, wie USB, UART oder eben S/PDIF Wandlung, die ich am Anfang komplett händisch gemacht habe. An der Stelle kommt die Komplexität des Systems rein und irgendwann gehen einem die Resourcen aus.
Nun kommt bei Vielen sicher das Argument: "Die FPGAs sind in den vergangenen Jahren leistungsfähiger geworden". Das greift aber nicht, wenn es o.g. Minimalanforderung nicht gibt und diese von FPGAs schon vor 10 Jahren locker übertroffen wurden. Mein erster Synth von 2004 konnte schon 1024 Oszillatoren-Stimmen bei 50MHz.
Es geht also in der Tat um die Euros / Rechenleistung und die war und ist bei DSPs erheblich günstiger. Aus genau dem Grund arbeiten auch wir in vielen Schaltungen immer noch mit DSPs / wieder mit DSPs oder nur noch mit DSPs. Es gibt heute Video-DSPs, die das leisten, was Ich vor 10 Jahren mit Spartan 3 FPGAs gemacht habe.
Ein absolute Anforderung für FPGAs sehe Ich da eigentlich nicht. Warum nun ausgerechnet die kostenkritische Musikindustrie auf FPGAs setzt ... ???
Wir haben ja von der anderen Seite her die PCs, die mit richtig guten 64-Bit CPUs daher kommen und auch die Grafik-Chips, die erheblich mehr können, als ein FPGA. Nehmen wir mal die PCIe-Technologie: Da sind die Intel-Cores den FPGAs 2 Jahre und die Grafikkarten 4 Jahre voraus. Ein mir bekannter Hersteller für 3D-Rendering im Med-Bereich (der nicht aufs Geld schauen muss) nimmt z.B. preisgünstige Grafikkarten zum Rechnen. Die macht ganz normale Gleichungen, die aus MATLAB kommen zu 300,- das Stück. Wollte Ich dasselbe im FPGA machen, bräuchte Ich einen Kintex-FPGA im Bereich 1500,- und das Dreifache an Entwicklungsaufwand.
D.h heute ist es eigentlich um so schwieriger, eine Hardware hinzustellen, weil die CPUs im PC schon soviel können. Das, was ein typischer DSP 56303, der z.B. in der UAD1, in meinem Tascam-Mischpult, in der Soundart Chameleon und anfänglich auch im Access-Virus verbaut war, kann - das kriegt heute ein Kern einer 4GHz-CPU hin - als plugin.
Nun werfen einige gerne ein, dass man FPGAs auch über C programmieren kann, indem man C in FPGA übersetzt und so alten Code nutzen kann und effektiv entwickeln kann. Nun, Ich habe das auch mehrfach durchexerziert: Ja, kann man, ist aber ineffektiv. Beispiel ist z.B. die Vivado HLS und der Versuch von vor 10 Jahren von Mentor mit Catapult C, C++ zu übersetzen. Auch der aus embedded MATLAB erzeugte FPGA-Code ist ineffektiv und eignet sich nur fürs Prototyping. Der Grund ist einfach: Es kommt am Ende immer eine Ablaufstruktur heraus, die eine Art Prozessor darstellt, welche das Programm ausführt. Gerad mal HLS ist in der Lage eine pipe zu generieren, aber eine 1D ist immer ineffektiver, als linearer C-Code, eine 2D nicht durch C spezifizierbar und eine 3D pipe baut ausser mir offenbar niemand :-D Allen gemein ist, dass das Universal-Silizum im FPGA teuer ist im Vergleich zu einer CPU. Einer meiner Kunden hat daher schon um 2011 herum mit meiner Unterstützung eine Radar-Applikation auf eine Industrie-PC-Plattform integriert und 40% des vormaligen VHDLs- inklusive FFT und IFFT in Software gemacht. War schnell genug und stromsparender zum halben HW-Preis.
Wie gesagt, sehe Ich nicht, dass man wesentliche Teile von Klangsynthesen preisgünstig(er als DSPs) in FPGAs verpacken kann. Was dort geht, ist z.B. Surround-Prozessierung, n-D-Faltung, aber dann reden wir auch von HW-Kosten in der Preislage von 500,- allein für die FPGAs. Auch mein System füllt inzwischen FPGAs in dem Umfang, ich mache aber auch Sachen, die keiner braucht
Das, was Ich in meinem Drum-Computer an Logistik und MIDI-Funktion habe, würde man auch in einen PC-plugin auf einem 90er-Jahre Rechner schaffen, mit 10% Rechenzeit. Einzig der Resampler arbeitet mit entsprechender Auflösung von 128x 768kHz , also quasi analog. Der belegt aber auch den halben FPGA
Siehe die Grafik ganz unten:
http://96khz.org/htm/drumcomputerspartan6.htm
Zu dem Thema könnte man noch mehr schreiben, Ich verweise aber auf diesen Beitrag dazu:
https://www.mikrocontroller.net/topic/327505#4450381