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!
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.
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.
:
Bearbeitet durch User
> Kaskadiere genügend davon, um auf Deine benötigt Zeit zu kommen.
Das soll ein Scherz sein, oder?
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.
Das ist nicht zufällig sowas hier: Beitrag "AVR Orgel Eigenbau" c-hater schrieb: > d 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. Link?
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.
Linux mit Jackrack oder http://rakarrack.sourceforge.net/. Brauchst halt ne vernünftige Soundkarte und nen einigermaßen flotten Rechner. Oder du musst eben doch alles selbst entwickeln und mit DSPs und/oder FPGAs auf das Problem werfen.
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.
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.
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)
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€.
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.
Das LPC4357-EVB hätte alles drauf: externes 32 MiB SDRAM, 32 MiB Flash, UDA1380 Audio-Codec, SD-Karten-Anschluss, vorbereitet (Steckverbinder etc.) für TFT mit Touch de.farnell.com/Lpc4357Evb oder z.B. eine deutlich leistungfähigere und teurere Variante von XMOS: http://www.xmos.com/products/reference-designs/dj
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.
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...
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.
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.