Forum: Mikrocontroller und Digitale Elektronik Welche MCU für Drumcomputer


von David (Gast)


Lesenswert?

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

von David (Gast)


Lesenswert?

Ich vergaß zu erwähnen:
16 Kanäle = 8  mono und 8  stereo also defacto 24 * 16bit 44.1kHz

von Dr. Sommer (Gast)


Lesenswert?

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

von David (Gast)


Lesenswert?

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.

von Dr. Sommer (Gast)


Lesenswert?

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.

von david (Gast)


Lesenswert?

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.

von Dr. Sommer (Gast)


Lesenswert?

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. .

von David (Gast)


Lesenswert?

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.

von Dr. Sommer (Gast)


Lesenswert?

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.

von David (Gast)


Lesenswert?

Ich hatte zum Beispiel an den hier Gedacht:
PIC24FJ256GB210-I/PT

Ein PIC24 16bit mit 32MHz

von Dr. Sommer (Gast)


Lesenswert?

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.

von Rolf M. (rmagnus)


Lesenswert?

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
von Michael B. (laberkopp)


Lesenswert?

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.

von David (Gast)


Lesenswert?

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 :-(

von David (Gast)


Lesenswert?

Sorry hatte mich verschrieben: 8 mono und 8 stereo = 24 mono

von Rolf M. (rmagnus)


Lesenswert?

Warum brauchst du denn so viele Ausgänge für einen Drumcomputer?

von David (Gast)


Lesenswert?

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.

von temp (Gast)


Lesenswert?

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.

von Tuffel (Gast)


Lesenswert?


von Rolf M. (rmagnus)


Lesenswert?

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
Noch kein Account? Hier anmelden.