mikrocontroller.net

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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: David (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: David (Gast)
Datum:

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

Autor: Dr. Sommer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: David (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Dr. Sommer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: david (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Dr. Sommer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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. .

Autor: David (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Dr. Sommer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: David (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hatte zum Beispiel an den hier Gedacht:
PIC24FJ256GB210-I/PT

Ein PIC24 16bit mit 32MHz

Autor: Dr. Sommer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rolf M. (rmagnus)
Datum:

Bewertung
0 lesenswert
nicht 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
Autor: Michael B. (laberkopp)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: David (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :-(

Autor: David (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry hatte mich verschrieben: 8 mono und 8 stereo = 24 mono

Autor: Rolf M. (rmagnus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum brauchst du denn so viele Ausgänge für einen Drumcomputer?

Autor: David (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: temp (Gast)
Datum:

Bewertung
1 lesenswert
nicht 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.

Autor: Tuffel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Rolf M. (rmagnus)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.