Die o.g. Seite ist von mir. Zu dem Thema FPGA und Musik habe Ich im Microcontroller-Net recht ausfühlich Stellung genommen.
Tenor: Es gibt einige spezielle Dinge, die man im FPGA BESSER machen kann und insbesondere im Bereich der Echt-Zeit-Parameter-Änderung beim Hall und der Klangerzeung NUR im FPGA machen kann, weil man die Kanäle und Signale alle parallel "sieht". Das erfordert aber spezielle HW-orientierte "Programmiertechniken" = Schaltungen / Schaltungsbeschreibungen, die stark von dem abweichen, was man in SW macht - bzw WIE man es in SW macht. Ich meine damit nicht VHDL als solches, sondern eine HW, die macht was sie soll, dies aber unter Berücksichtigung der Technologie tut. Dazu gehören auch einige Dinge wie 3D-pipelines, FSM-pipeline, die Ich entwickelt habe und die nirgends in den Büchern stehen. Ferner sind einige Themen aus dem Umfeld Audioaufnahme, Tonaufnahme eingearbeitet, die sich nur in dem mehrdimensionelen Raum anwenden lassen.
Die z.B. 4096 Kanäle ergeben sich - wie einige andere Dinge auch - aus dem Verhältnis der Taktfrequenz zur Sameplefrequenz und ist kausal. Ohne da jetzt zu weit einzusteigen, erfordert das dann auch RAM ohne Ende, um diese Kanäle zu fahren und auch zu parametrieren und modulieren. Diese RAMs sind Limiter! Weitere Themen sind die Verschachtelungen der Filterketten im Bezug auf Kanal, Sample und Zeitpunkte. Daraus ergeben sich je nach Struktur Sub-Systeme mit der Granularität 4,16 und 64 Takten, wobei das Trimming da das Problem ist, damit alles richtig ineinandergreift. Wenn man alles voll parallel macht, bekommt man nicht viele Stimmen und bei voller sequenzieller Arbeitstechnik (SW) wird es langsam und letztlich ineffektiv.
Man muss genrell mit bestimmten Randbedingungen im FPGA leben und kann da nicht alles so bauen, wie man das in SW kann - speziell bei Filtern. Diese sind mitunter aufwändiger und nicht immer effektiv zu implementieren. Berücksichtigt man das, wird der FPGA aber sehr effizient. Effizienter, als alles andere, auch z.B. GPU! Konkret lässt sich das an der Speicherbandbreite messen:
Im aktuell designten Minimalsystem mit Synth und DSP arbeiten fast alle BRAMs parallel mit 2,3 oder 4 Zugriffen. Das sind etwa 200 MHz x 3 x 8 Bit x 320 RAMs. Hinzu kommen Zwischenspeicher in FFs. Das entspricht etwa dem von 50 PCs, wollte man das mit SW und DDR3-Controllern bieten, um allein die Daten zu schieben - ohne was zu rechnen. Bei der Rechenleistung ist es etwa Faktor 10-20, d.h. man bekommt mit EINEM FPGA, das perfekt getrimmt ist, eine Rechenleistung von rund 15 PCs.
Die Problematik ist, ob und wie man die musikalisch einsetzen kann. Es macht nicht umbedingt Sinn, so viele Stimmen voll parallel zu fahren. Auch für das Klavier fahre Ich derzeit "nur" 88 Töne x3 Saiten x8 Oberwellen. Zudem sind qualitativ viele Dinge bei Synths schon da und lassen sich in DSPs viel einfacher und billiger realisieren. Einen Synth, wie er in DSPs vorliegt, im FPGA ohne "Meine" Funktionen nachzubauen, ist nicht sonderlich schlau, weil in VHDL anspruchsvoller und daher nicht wirklich besser. Ihn sogar auf der Basis von Softcore-DSPs oder in Verbindung mit hardcore ARM nachzubauen, ist IMO kontraproduktiv. Das wird an Hochschulen allenthalben gemacht, führt aber zu extremem Overhead mit wenig output.
Siehe auch meine Ausführungen dazu im ucNET:
https://www.mikrocontroller.net/topic/327505#4450381
Ein FPGA kann aber ganz bestimmte Dinge, die man als Ergänzung zu DSP-Synths nutzen kann. Ich plane derzeit die Bereitstellung eines abgespeckten Systems als Modul für Bastler :
http://www.pyratone.de
Das sind auch solche Spielchen wie PDM-Ausgabe für 8 Kanal, 4 Kanal bass Array möglich.