Hallo zusammen, ich brauche eine MCU für einen 16-Kanal Drumcomputer. Die Klangerzeugung ist sample-basiert in hoher Qualität (16bit, 44.1khz) Gleichzeitig brauche ich noch Reserven für etwas digitales processing (tune +/- 6 semitones und decay) und einen Sequencer. Welchen Chip könnte man da nehmen? Ich befürchte mit einem PIC 32 komme ich nicht weit. Vielen Dank und Grüße David
Ich vergaß zu erwähnen: 16 Kanäle = 8 mono und 8 stereo also defacto 24 * 16bit 44.1kHz
Das STM32F7-Discovery Board hat 16+1 MByte Flash, 8 MByte SDRAM, einen microSD-Slot und somit eine Menge Speicher für Samples. Der integrierte WM8994-Audio-Codec (mit Klinken-Buchse) hat einen "Hi-fi 24-bit 4-channel DAC" mit 96 kHz Sample Rate. Der Controller läuft mit bis zu 216 MHz und hat DSP-Extensions. Über das Touch-LCD könntest du eine Benutzeroberfläche bauen. http://www.st.com/en/evaluation-tools/32f746gdiscovery.html
Das ist schonmal nich uninteressant, aber für den weiteren Analogen Signalweg benötige ich eben diese 24 mono kanäle DAC vor/nach dem DAC. Nach dem DACs gehts voll analog durch LP/HP Filter und dann in einen Mixer bzw. in Einzelausgänge.
Ach so war das gemeint. Warum mixt du nicht direkt auf dem Drumcomputer/Mikrocontroller? Was willst du mit 24 Einzelausgängen, alles auf einzelne Lautsprecher geben? Kannst ja mal nach Codecs mit 24 Ausgängen suchen, die du dann per I²S, AC97 o.ä. mit dem Controller verbindest. Einen MCU mit so vielen Ausgängen wirst du wohl nicht finden. Du müsstest mal genau im Datenblatt nachlesen ob der SAI-Block so viele Kanäle kann.
Die Einzelausgänge finde ich immer praktisch, wenn man in ein Mischpult geht um die Kanäle separat zu bearbeiten (EQ, Comp., FX etc.) Bis zur Stereosumme digital zu bleiben macht die Angelegenheit allerdings deutlich einfacher. Hm... Ich könnte zum beispiel mehrere TI PCM1774 die jeweils 2 kanäle können nehmen. Bleibt die Frage ob die MCU fürs berechnen von 24* 16bit genügend power hat.
david schrieb: > Ich könnte zum beispiel mehrere TI PCM1774 die jeweils 2 kanäle können > nehmen Da gibt's aber einige die mehr können. david schrieb: > Bleibt die Frage ob die MCU fürs berechnen von 24* 16bit genügend power > hat. Definiere "Berechnen". Programmier das einfach erstmal in C auf dem PC, ermittle die benötigte Rechenleistung, und suche danach die passende MCU aus. Der F7 hat jedenfalls ne Menge Rechenleistung. Für mehr bleiben fast nur noch DSP's übrig, und die sind schwieriger & teurer zu programmieren. .
Mit "berechnen" meine ich nicht nur die Möglichkeiten die Tonhöhe zu manipulieren (+/- 6 Halbtöne) und den Decay der Samples. Ist ja eigentlich nicht besonders rechenintensiv, sondern allein den Datendurchsatz. Ich will halt in CD-Qualität (16bit, 44.1kHz) gleichzeitig 24 mono Spuren (eigentlich 8 Mono und 16 Stereo) abfeuern können. Dann wären das 24 (mono Kanäle) 16bit 44.1kHz = 16934,4kBit/s oder 16MBit/s Plus Reserven für OS und die Paar FX.
David schrieb: > Dann wären das 24 (mono Kanäle) 16bit 44.1kHz = 16934,4kBit/s oder > 16MBit/s Das ist für so einen Controller an sich kein Problem dank DMA. Wenn der dann aber pro Sample noch 200 Takte Berechnung machen soll wird's eng. Daher muss der Algorithmus abgeschätzt werden.
David schrieb: > PIC24FJ256GB210-I/PT Ich sehe da keine I2S Schnittstelle und kein DMA. Wie willst du die Audio Daten da heraus bekommen? Wo willst du die Samples speichern, auf einem SPI Flash? Ist das schnell genug? Warum für eine Rechen aufwändige Aufgabe auf einen 16bit 32Mhz Controller mit 16MIPS beschränken wenn es viel schnellere gibt? Der F7 hätte 32bit, 216 MHz, 462 MIPS, eine FPU, 2x I2S, QSPI und SDMMC für das Laden der Samples.
Es gibt auch ein STM32H7 Nucleo-Board. Da läuft der µC dann schon mit 400 Mhz und hat viermal I²S (wenn man das SAI dafür nutzt) und zweimal SDIO.
:
Bearbeitet durch User
David schrieb: > Welchen Chip könnte man da nehmen? Den, für den du die Software schon hast. Du willst doch nicht ernsthaft alles selber schreiben, das wird noch nie fertig. David schrieb: > Ich will halt in CD-Qualität (16bit, 44.1kHz) gleichzeitig 24 mono > Spuren (eigentlich 8 Mono und 16 Stereo) abfeuern können. > Dann wären das 24 (mono Kanäle) 16bit 44.1kHz = 16934,4kBit/s oder > 16MBit/s 8 Mono + 16 Stereo sind 40 Kanäle oder 3.5 MByte/Sekunde. Eigentlich wäre das eine interessante Aufgabe für ein FPGA.
Der PIC hat beides I2S und SPI und hat 40MIPS bei 32MHz kostet nur 3EUR. DMA bietet dann der PIC24H aber auch gleich mit. Ich kenne mich per se nicht so gut aus, aber mit den F7 kenne ich mich mal gar nicht aus :-(
Haben ist besser als brauchen :-) Nein, man ist flexibler, wenn man z. B. mal eine Snare oder Kick separat durch nen Kompressor jagen möchte, Snare dann noch etwas Hall und so weiter... Die Stereospuren werden auch nur als Stereopaar einzeln rausgeschliffen. Macht in Summe 8 Mono-Out und 2 Stereo-Out (dort werden die 8 Stereospuren zu je 2 Sub-Gruppen á 4 zusammengelegt). Und damit ich mir keine Gedanken über ein komplexes Routing machen muss, gibt es ne Stereosumme und Einzelausgänge. Das geht wunderbar analog.
Bei der Aufgabe würde ich eventuell über ein modulares Design nachdenken. Bau eine einfache Baugruppe die nur einen Stereokanal bedient und die Rohdaten direkt von einer SD-Karte lädt. Ein separater Controller steuert dann das Zusammenspiel. Wenn du Leiterplatten machen lässt gibt's die beim Freundlichen aus Fernost sowieso wenigstens im 10er Pack. Controller zur Bewältigung eines Stereo Kanals gibt es wie Sand am Meer, von Hand gut lötbar und preiswert. Den analogen Kram musst du sowieso mehrfach auslegen. Das hat auch den Vorteil, dass du nur relativ kleine Platinen brauchst, die in der Summe preiswerter sind. Mit anderen Worten Bau einfach so viele "Drumcomputer" wie du analoge Einzelausgänge brauchst.
David schrieb: > Haben ist besser als brauchen :-) > > Nein, man ist flexibler, wenn man z. B. mal eine Snare oder Kick separat > durch nen Kompressor jagen möchte, Snare dann noch etwas Hall und so > weiter... Ja, dass Einzelausgänge sinnvoll sind, ist mir schon klar. > Die Stereospuren werden auch nur als Stereopaar einzeln rausgeschliffen. > Macht in Summe 8 Mono-Out und 2 Stereo-Out (dort werden die 8 > Stereospuren zu je 2 Sub-Gruppen á 4 zusammengelegt). Ach so, ich war jetzt davon ausgegangen, dass du die insgesamt 24 Kanäle alle einzeln rausführen willt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.