Audioaufnahme, Verarbeitung und Ausgabe mit Mikrocontroller

Gast #3647359
Lesenswert?

Hallo liebes Forum,
seit neustem habe ich eine Projekt-Idee die sich damit beschäftigt eine 
Audiosequenz aufzunehmen, abzuspeichern und wiederholt auszugeben. Das 
Grundprinzip eines Loop-Effekts einer Gitarre.

Die Aufnahmedauer sollte mindestens 20 Sekunden lang sein und auch ein 
gewisses Maß an Qualität aufweisen (44/22kHz Abtastrate, 32bit Tiefe).
Meine Grundidee war dabei: ADC -> Mikrocontroller -> DAC
Daraufhin konnte ich schnell feststellen, dass das allein aufgrund der 
Speicherkapazitäten schwierig ist.

Habt ihr einige Erfahrungen, Ansätze oder Ideen wie ich ein solches 
Projekt am besten umsetzen kann?

Vielen Dank!
Gast #3647366
Lesenswert?

Mein Ansatz dazu ist, einen Computer zu benutzen, der ohne großartige 
Hürden geeignet ist.

Du hast schon korrekt erkannt, das die Probleme schon beim Speicher 
anfangen. Dicht gefolgt von der Performance. Einfach nur aufnehmen und 
wiedergeben ist ja langweilig. Für die Berechnung von Effekten fehlt 
jedoch Rechenleistung.

Für sowas eignen sich ARM Controller schon eher - vorzugsweise mitsamt 
Multu-Threading fähigem Betriebsystem, Audio Treiber und Hardware.

Wie wär's mit einem Raspberry Pi + USB Soundkarte?

Unter Linux Programmieren ist bei derartigen Projekten ohnehin viel 
einfacher, als ohne OS.
(Firma: TravelRec.) Persönliche Seite #3647588
Lesenswert?

Raphael H. schrieb:
> Die Aufnahmedauer sollte mindestens 20 Sekunden lang sein und auch ein
> gewisses Maß an Qualität aufweisen (44/22kHz Abtastrate, 32bit Tiefe).
> Meine Grundidee war dabei: ADC -> Mikrocontroller -> DAC
> Daraufhin konnte ich schnell feststellen, dass das allein aufgrund der
> Speicherkapazitäten schwierig ist.

Verabschiede Dich von den 32Bit Samplingtiefe. 16Bit sind völlig 
ausreichend und damit ist Dein Vorhaben überhaupt kein Problem. 
Mittlerweile gibt es serielles SRAM (8-Pinner mit SPI) mit 1Mbit 
Speichertiefe. Da passen 0.7s Sound rein. Kaskadiere genügend davon, um 
auf Deine benötigt Zeit zu kommen.
Gast #3648153
Lesenswert?

Raphael H. schrieb:

> seit neustem habe ich eine Projekt-Idee die sich damit beschäftigt eine
> Audiosequenz aufzunehmen, abzuspeichern und wiederholt auszugeben.

Was ist das denn für eine "Idee"? Mit Sicherheit eine, die schon seit 
vielen Jahrzehnten immer wieder andere Leute hatten und mit den Mitteln 
ihrer jeweiligen Zeit realisiert haben. Jedes Jahrzehnt auf's neue...

Also entschuldige mal: Das ist keine "Idee". Der Audio-Recorder mit µC 
existiert seit fast zwei Jahrzehnten und kann inzwischen in Stückzahlen 
als fertiges, voll funktionsfähiges Modul mit Flash-Speicher für etliche 
Minuten für unter 1 Euro gekauft werden.

Das kann man selbst ganz sicher nicht billiger und wohl auch kaum besser 
bauen.

Scheiß-Idee. Null-Idee.
Gast #3648185
Lesenswert?

Danke schon mal für eure Antworten. Ich habe mir schon gedacht, dass der 
Raspberry eine gute Möglichkeit darstellt, hatte lediglich gehofft eine 
günstigere Variante zu finden.

@c-hater
Mir ist bewusst, dass das keine neue Idee ist. Es soll schließlich ein 
Effektgerät für eine Gitarre werden, nur eben DIY. Übrigens sind die von 
dir erwähnten Mikrocontroller qualitativ für Musik der letzte Mist, also 
entschuldige mal.
Gast #3648878
Lesenswert?

Das hat man früher mit DSP gemacht, der 56k Symphony von Motorola war 
beliebt und es gibt viele fertige Programme für ihn.
Heute will man nicht unbedingt mehr eine ganze Platine, der ADAU1701 ist 
beliebt, der AK7757 .
Leider reichen die Eval Boards Symphony SoundBite bzw. 
EVAL-ADAU1701MINIZ dir vom Speicherausbau her nicht, auch AKD7757-A 
reicht mit seinem internen RAM nicht an deine Anforderung, also musst du 
vielleicht doch was selber bauen.
Ein Overkill in die andrer Richtung wären FPGA basierte DSP wie 
http://www.devboards.de/startseite/boards/produkte-details/article/dbm-soc1/ 
, da bekommt man gleich Gigabyte an RAM und mehrere DSP mit fast 1 GHz 
Takt, das ist dann wohl doch eher für die NSA.
#3648950
Lesenswert?

Und nen STMF4 Discovery nehmen, mit ner SD-Karte zum Puffern der Daten? 
Einen DSP hat das Board doch schon mit drauf, nur halt etwas wenig 
Speicher. Aber eine SD-Karte, die sich einfach anschliessen lässt, 
sollte doch schnell genug sein, um gleichzeitig einen Audio-Stream zu 
speichern und wieder zu lesen.
Gast #3648966
Lesenswert?

Hi,
ST STM32F429I DIscovery hat Display, Cortex M4 mit DSP-Befehlen
und schon on Board 64MBit SDRAM. Kostet um die 30 EUR.
Das sollte doch eine ganz nette Entwicklungsplatform ergeben.

Für richtig gute Gitarreneffekte werden heute sogar TigerSHARC DSPs 
genommen, google mal nach AxeFX ... damit wäre dann sogar Steve Vai 
zufrieden.

LG Karl (selber Gitarrist)
#3649011
Lesenswert?

Was einen Versuch wert sein könnte: Teensy 3.1 und das dazugehörige 
Audio-Board. Der Teensy 3.1 hat einen Cortex M4 mit bis zu 96MHz, das 
Audio-Board hat ADC/DAC 16bit/44.1kHz, Line-In/Out und SD-Slot. Gute 
SD-Karten sollen angeblich genug Bandbreite für 2 WAV-Dateien liefern, 
aber da steht nur was von lesen, keine Ahnung ob das für Lesen+Schreiben 
reicht. Andererseits brauchst Du für Gitarreneffekt nur Mono, dann 
sollte das kein Problem sein.

Kannst Dich ja mal auf http://www.pjrc.com/ umsehen, ob das was wäre; es 
gibt eine Library für das Audio-Board, hat auch schon ein paar Effekte. 
Der Preis für Teensy 3.1 + Audio-Board zusammen bei Watterott momentan 
31,13€.
Gast #3649019
Lesenswert?

karlchen-m schrieb:
> ST STM32F429I DIscovery hat Display, Cortex M4 mit DSP-Befehlen
> und schon on Board 64MBit SDRAM. Kostet um die 30 EUR.

Dazu ein UDA1380 Board als Codec (von EBay, so um 9€). Dann muss man 
erstmal fast nichts mehr löten und kann sich auf die Software 
konzentrieren.
Gast #3649062
Lesenswert?

Arc Net schrieb:
> Das LPC4357-EVB hätte alles drauf:

Das Board ist sicher auch nicht schlecht. Allerdings könnte man bei dem 
Preis (ca 76,- € netto) über ein CubieBoard2 (DualCore A7) nachdenken. 
Für das gibt es low-latency-patches -> 
http://linux.autostatic.com/2013/09/17/exit-beaglebone-black-hello-cubieboard2

Die Frage ist halt, ob du lieber eine fertige Lösung mit Linux möchtest 
(CubieBoard) oder alles low-level selbst machen willst. Linux und 
Multitasking frist sicher einiges an Perfomance, für einen reinen Looper 
ist sowas sicher Overkill.
#3649183
Lesenswert?

klausro schrieb:
> Arc Net schrieb:
>> Das LPC4357-EVB hätte alles drauf:
>
> Das Board ist sicher auch nicht schlecht. Allerdings könnte man bei dem
> Preis (ca 76,- € netto) über ein CubieBoard2 (DualCore A7) nachdenken.
> Für das gibt es low-latency-patches ->
> http://linux.autostatic.com/2013/09/17/exit-beaglebone-black-hello-cubieboard2
>
> Die Frage ist halt, ob du lieber eine fertige Lösung mit Linux möchtest
> (CubieBoard) oder alles low-level selbst machen willst. Linux und
> Multitasking frist sicher einiges an Perfomance, für einen reinen Looper
> ist sowas sicher Overkill.

Mir würde Low-Level bei solchen Sachen mehr Spaß machen, aber jeder wie 
sie/er mag...

Anforderungen waren: 44.1 kHz mit 16-Bit bis 24-Bit, also maximal wenn 
es Stereo sein soll 264600 Bytes/s insg. 5292000 Bytes.
Wenn kein SDRAM-Layout gemacht werden soll, dürfte es auch mit einem 
"alten" NAND-Flash gehen z.B. NAND02G maximale Schreibdauer 700 us pro 
Page (2048 + 64), Löschdauer max 2 ms pro Block (128 kiB + 4 kiB).
2 ms / 128 kiB ~ 15 ns pro Byte, 0.7 ms / 2048 Bytes ~ 342 ns pro Byte
1/264600 Bytes/s ~ alle 3.78 us kommt ein Byte an.
Bis jeder Block 100000 Mal gelöscht und geschrieben wurde dürfte der 
Rest des Gerät schon in den ewigen Jagdgründen sein...
Gast #3650358
Lesenswert?

Arc Net schrieb:
> Mir würde Low-Level bei solchen Sachen mehr Spaß machen, aber jeder wie
> sie/er mag...

Low-Level auf einem uC hat noch den Vorteil, dass man das Timing 
wesentlich besser im Griff haben kann. Das berüchtigte "Stottern" wegen 
Buffer Underruns kann man komplett vermeiden, da das ganze System 
wesentlich deterministischer sein kann als ein Multitasking (Linux) 
System. Allerdings hat man auch mehr Verantwortung bei dem 
System-Design.

Der Vorteil eines Linux Systems ist halt, dass man das ganze innerhalb 
weniger Stunden mit einer Vielzahl an Möglichen Effekten am Laufen haben 
kann.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren