Forum: Digitale Signalverarbeitung / DSP / Machine Learning Gibt es so etwas wie einen Hifi Arduino?


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.
von Robert S. (rsont)


Lesenswert?

Hallo, ich frage mich, ob es mit einem günstigen Chip (oder Board mit 
mehreren Chips) möglich wäre, Audio-Effekte und ähnliches in Hifi-Stereo 
CD-Qualität zu bauen, also mit mindestens 2 guten 16-Bit 
Digital-Analogwandlern, mindestens einem (besser 2) schnellen 16-Bit 
Analog-Digitalwandlern, sowie vielen Kilobyte RAM, schneller 
Taktfrequenz u.s.w. Gerne aber auch mit noch mehr analogen Ein- und 
Ausgängen. Ich habe bisher nur Erfahrungen mit dem Atmega328, der 
hierfür natürlich nichts taugt.

Kennt jemand eine passende günstige Lösung? (Bevor jetzt blöde Sprüche 
kommen: Google doch einfach! Ja, hab ich gemacht, aber nichts passendes 
gefunden, und vielleicht kennt sich ja hier jemand damit gut aus.)

: Verschoben durch Admin
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Du suchst vermutlich eher ein DSP Developer Board. Sowas gibts z.B. von 
Analog Devices, TI, Freescale.
Man kann mit externen Wandlern auch einiges DSP mit einem STM32 machen. 
Nur die eingebauten AD/DA sind nicht gut genug. Aber z.b. ein STM32F407 
hat mehrere I2S Kanäle.
Das STM32F407 Discovery ist audiomässig ausgelegt und hat wenigstens 
schon Audio-DAC und Ausgangsverstärker onboard. Ich habe da einen guten 
ADC und Eingangsverstärker für einen Mehrspurrekorder addiert.

: Bearbeitet durch User
von Pandur S. (jetztnicht)


Lesenswert?

Ich wuerde einen Development kit eines FPGA empfehlen. Denn auch ein DSP 
benoetigt schon gewaltig Schub. Devkits eines FPGA haben oft Audio AD-DA 
an board. Fuer vielleicht 100 euro

: Bearbeitet durch User
von Sebastian R. (sebastian_r569)


Lesenswert?

Für Audio sind die SHARC DSPs echt gut. Dazu gibt es von Analog dann 
z.B. auch SigmaStudio, mit dem man sich die Signalkette zwischen Ein- 
und Ausgang easy zusammenklicken und als Code generieren lassen kann.

von Matthias 🟠. (homa)


Lesenswert?

Der hier macht auch Laune zum spielen:
http://www.axoloti.com/

Dazu recht preiswert zu bekommen, wenn vorrätig.

https://www.heise.de/news/ESP32-Modul-fuer-Soundanwendungen-4886349.html

Das hier habe ich weil preiswert bestellt, aber leider noch keine Zeit 
gefunden ...

: Bearbeitet durch User
von Robert S. (rsont)


Lesenswert?

Matthias S. schrieb:
> Man kann mit externen Wandlern auch einiges DSP mit einem STM32 machen.
> Nur die eingebauten AD/DA sind nicht gut genug. Aber z.b. ein STM32F407
> hat mehrere I2S Kanäle.
> Das STM32F407 Discovery ist audiomässig ausgelegt und hat wenigstens
> schon Audio-DAC und Ausgangsverstärker onboard. Ich habe da einen guten
> ADC und Eingangsverstärker für einen Mehrspurrekorder addiert.

Hmm, ich hab da was gefunden:
https://de.aliexpress.com/item/4000834457631.html

Wär das vielleicht was?

Kann man das Board mit dem gängigen Arduino-Programm programmieren?
(In der Wiki Arduinoliste ist ja ein Arduino mit STM32 aufgeführt.)
Sorry für meine dummen Fragen. Hab wie gesagt bislang nur den atmega328 
verwendet. Ansonsten kenn ich mich vor allem mit analoger Elektronik 
aus.

Die 12 Bit DAC und ADC sind sicher nicht optimal, aber mit analoger Pre- 
und De-Emphasis (einfache RC-Filter) lässt sich da sicher mehr 
rausholen.
Hat das Discovery 16 Bit DAC?

von Robert S. (rsont)


Lesenswert?

Matthias H. schrieb:
> Der hier macht auch Laune zum spielen:
> http://www.axoloti.com/
>
> Dazu recht preiswert zu bekommen, wenn vorrätig.
>
> https://www.heise.de/news/ESP32-Modul-fuer-Soundanwendungen-4886349.html

Sehen beide auch interessant aus, aber das zweite, das ESP32 Audio-Kit
https://de.aliexpress.com/item/4000130915903.html
wäre eher meine Preisklasse. Weiß man da wieviel Bit Auflösung ADC und 
DAC haben?
In der Beschreibung finde ich dazu leider nichts.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Robert S. schrieb:
> Hat das Discovery 16 Bit DAC?

Das F407 Board hat einen CS43L22 als Audio DAC mit integriertem 
Kopfhörerverstärker und DACs mit bis zu 24bit. Mit den eingebauten ADCs 
des F407 kriegt man im Eingang so etwa Mittelwellenqualität, da muss 
also ein externer ADC ran. Ich benutze dazu einen kleinen CS4334 für 
24bit Stereo Eingang über einen weiteren I2S Port des F407.

von pittiplatsch (Gast)


Lesenswert?

> Audio-Effekte und ähnliches in Hifi-Stereo CD-Qualität

Du magst wohl mit 16 oder 24 bit AD/DA die "HiFi-Stereo CD-Qualität"
erreichen, aber ich zweifle stark daran, dass das anfangs auch fuer
die Qualitaet der Effekte gilt.

Einfaches Beispiel: Stelle einmal den Chorus Effekt in
Steinbergs Wavelab auf 50 Taps und hoere dir das Ergebnis an.
Das ist chaotisch und musikalisch voellig unbrauchbar.
Und die Leute von Steinberg wissen eigentlich was sie tun.
An diesem Beispiel sieht und hoert man dann auch, dass
"HiFi-Stereo CD-Qualität" eben nur eine der Voraussetzungen ist.

Und von dem Gedanken Effekte in "HiFi-Stereo CD-Qualität"
mit der *uino-Umgebung zu programmieren solltest du dich
auch schnellstmoeglich verabschieden.

Audioeffekt bedeutet in harter Echtzeit, also zwischen
2 Samples, den Algorithmus einmal durchlaufen haben zu
muessen. Bei 48 kHz sind das ca. 20 us.
Ansonsten faengt es an hoerbar zu knacken :).

Als erste leichte Uebung kannst du ja mal einen
Stereo-In/Out Chorus mit 64 Taps programmieren, der sich
nicht nach Chaos anhoert.
Das geht u.a. auf einem alten Motorola 56002 mit 66 MHz
Takt noch recht kurz und bequem in Assembler.
Wie man das am besten anstellt, wirst du aber selber
herausfinden muessen. Die wirklich guten Algorithmen
sind die bestgehueteten Geschaeftsgeheimnisse der
Hersteller. Was an Beispielen verfuegbar ist, hat eher
den Charme einer Referenzimplementation und geht nicht
wesentlich ueber das hinaus, was man schon mit OPVs,
geschalteten Filtern und Eimerketten zusammenbauen kann.

Frueher oder spaeter wirst du, wenn es dir Ernst ist,
ohnehin die Einsicht gewinnen, dass FPGAs die viel besseren
DSPs sind. Auch wenn es mittlerwile *uinos mit mehreren hundert
MHz Takt gibt, selbst relativ kleine FPGA koennen den relativ
locker "gegen" die Wand rechnen...

von chris_ (Gast)


Lesenswert?

>Hallo, ich frage mich, ob es mit einem günstigen Chip (oder Board mit
>mehreren Chips) möglich wäre, Audio-Effekte und ähnliches in Hifi-Stereo
>CD-Qualität zu bauen, also mit mindestens 2 guten 16-Bit
>Digital-Analogwandlern, mindestens einem (besser 2) schnellen 16-Bit
>Analog-Digitalwandlern, sowie vielen Kilobyte RAM, schneller
>Taktfrequenz u.s.w. Gerne aber auch mit noch mehr analogen Ein- und
>Ausgängen. Ich habe bisher nur Erfahrungen mit dem Atmega328, der
>hierfür natürlich nichts taugt.

Einen Teensy von Paul Stoffregen.

https://www.pjrc.com/teensy/td_libs_Audio.html

https://www.pjrc.com/teensy/gui/index.html

Projekte dazu gibt's auch hier:
Beitrag "Teensy Synth "Shruthi 2""

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Muesste ich sowas machen, wuerd' ich mich auch bei den STM32 Evalboards 
umgucken. Halt eines raussuchen, was einen/mehrere AudioCodecs hat. Oder 
wo man die ggf. leicht dranstricken kann.
Von Arduino Software wuerde ich da dann eher die Finger lassen. In einem 
Post weiter oben hat ja schon mal wer gerechnet, dass man bei 48kHz 
Samplefrequenz nur gute 20µsec Zeit hat um ein neues (stereo)sample zu 
verwursten. Klingt kurz, aber sogar bei einem AVR mit nur 16MHz CPU Takt 
sind das immerhin 333 Taktzyklen. Bei hoeherem Takt noch mehr, also kann 
man da schon bisschen was machen. Wird aber wohl eher auf Assembler 
rauslaufen, da hat man's doch am besten im Griff, was wielange dauert.

Gruss
WK

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Dergute W. schrieb:
> Muesste ich sowas machen, wuerd' ich mich auch bei den STM32 Evalboards
> umgucken.

Das ist das o.a. STM32F4 Discovery für rund 20 Mäuse:
https://www.st.com/en/evaluation-tools/stm32f4discovery.html

Der DAC ist schon drauf.
Der Haken (kein Discovery Board ohne) ist der nicht vorhandene Sample 
RAM, da ist man auf den internen des MC limitiert - FMSC ist leider 
nicht nutzbar. Das sind dann 64k CoreCoupled und 128k Bus RAM.

von Robert S. (rsont)


Lesenswert?

pittiplatsch schrieb:
>> Audio-Effekte und ähnliches in Hifi-Stereo CD-Qualität
>
> Du magst wohl mit 16 oder 24 bit AD/DA die "HiFi-Stereo CD-Qualität"
> erreichen, aber ich zweifle stark daran, dass das anfangs auch fuer
> die Qualitaet der Effekte gilt.
>
> Einfaches Beispiel: Stelle einmal den Chorus Effekt in
> Steinbergs Wavelab auf 50 Taps und hoere dir das Ergebnis an.
> Das ist chaotisch und musikalisch voellig unbrauchbar.
> [...]
> Frueher oder spaeter wirst du, wenn es dir Ernst ist,
> ohnehin die Einsicht gewinnen, dass FPGAs die viel besseren
> DSPs sind.

Ja, das ist mir eigentlich schon alles klar. Dass ich mit 12 Bit auch 
mit Pre- und De-Emphasis längst keine CD-Qualität hinbekomme, ist 
logisch. Genaugenommen hab ich mit 16 Bit im praktischen Einsatz nicht 
mal optimale CD-Qualität, da man die Aussteuerung ja nie optimal 
hinbekommt, wenn man sichergehen will, dass das Signal weder 
Eingangsseitig noch Ausgangsseitig übersteuert.

Mir ist auch klar dass ich bei multiplen Delays intern mit einer höheren 
Auflösung rechnen muss, und ein vielfacher Chorus ist natürlich schon 
eine extreme Herausforderung weil sich die Delayzeit kontinuierlich 
verändert und optimal interpoliert werden sollte.

So extreme Sachen muss ich aber auch nicht machen. Mit FPGAs will ich 
mich nicht beschäftigen. Sorry, das scheint mir zu kompliziert. Ich 
würde auch ungern meine gewohnte Arduino-Umgebung verlassen. Eine hohe 
Taktfrequenz würde mir schon völlig reichen.

Assembler kenne ich nur aus der guten alten C64 Zeit mit dem 6502 bzw. 
6510 Prozessor. (Ja, ich bin nicht mehr der Jüngste. Hab meinen C64 
damals von 1 MHz auf 2 MHz frisiert. Eine Verdopplung der Taktfrequenz 
hat den Prozessor gar nicht gejuckt. Aber ich schweife ab.) Weiß nicht 
wie das bei heutigen Prozessoren läuft, aber sorry, mit Assembler will 
ich mich nicht mehr befassen. ;-)

Wenn ich ein passendes Board gefunden habe, und mich da etwas 
eingearbeitet habe, werde ich (ähnlich wie jetzt mit dem atmega328) 
sicher viele Projekte damit realisieren. Daher sollte es günstig sein. 
Für 10 Euro über AliExpress aus China wäre schon toll.

Interessant wäre für mich vielleicht auch ein günstiges Board, das nur 
eine hohe Taktfrequenz und gute Analog-Ausgänge hat, also einen guten 
Stereo-DAC. Damit könnte ich zwar leider kein analoges Live-Signal 
verarbeiten, aber Synthesizer-mäßig mit Klangerzeugung experimentieren. 
Ich hab z.B. mal mit dem Atmege328 versucht sowas wie ein Theremin zu 
machen. Das konnte natürlich nur einen grässlich piepsigen Sound 
erzeugen.

von Schlaumaier (Gast)


Lesenswert?

Klar.

https://www.amazon.de/DC1-8-12V-TDA2822M2-Kan%C3%A4le-Stereo-Verst%C3%A4rker/dp/B07LG35G22

z.b. . Die Teile gibt es wie Sand am Meer. In min. bei google gerade 
gefunden ca. 10 Varianten.

Kommt drauf an was du willst. Ich habe für 5 Euro ca. ein China-Modul 
mit SD-Reader gekauft das mp3 spielt. Angeblich in sehr guter Qualität. 
Hatte noch keine Zeit es zu testen.

von Robert S. (rsont)


Lesenswert?

Matthias S. schrieb:
> [...] Mit den eingebauten ADCs
> des F407 kriegt man im Eingang so etwa Mittelwellenqualität, da muss
> also ein externer ADC ran. Ich benutze dazu einen kleinen CS4334 für
> 24bit Stereo Eingang über einen weiteren I2S Port des F407.

Danke für die Infos, aber mit der ADC Angabe hast Du Dich irgendwie 
vertan.
Der CS4334 ist ein DAC.

von Robert S. (rsont)


Lesenswert?

Schlaumaier schrieb:
> Klar.
>
> 
https://www.amazon.de/DC1-8-12V-TDA2822M2-Kan%C3%A4le-Stereo-Verst%C3%A4rker/dp/B07LG35G22
>
> z.b. . Die Teile gibt es wie Sand am Meer. In min. bei google gerade
> gefunden ca. 10 Varianten.

Sorry, darum geht's gar nicht. Das ist ein simpler Analog-Amp.
Zu dem Thema brauch ich keine Nachhilfe. ;-)

> Kommt drauf an was du willst. Ich habe für 5 Euro ca. ein China-Modul
> mit SD-Reader gekauft das mp3 spielt. Angeblich in sehr guter Qualität.
> Hatte noch keine Zeit es zu testen.

Ja, darum geht's leider auch nicht. So ein Modul hab ich auch schon 
gekauft. (Leider auch noch nicht getestet.) Ich will ja schon selbst 
soundmäßig programmieren, nicht fertige MP3s abspielen. Sowas mache ich 
mit den Platinen von 1-Euro MP3-Playern, die ich zerlege und einen 
Verstärker dranhänge. Man sollte es nicht glauben, aber die sind 
klanglich perfekt.
Fun fact: Die billigsten hab ich mal für 76 Cent inkl. Versand gekauft, 
aber die Zeiten sind leider vorbei. Nach dem Umbau hab ich jedes mal 
einen Lithium-Ionen-Akku übrig, der mehr kosten würde.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Robert S. schrieb:
> Der CS4334 ist ein DAC.

Ach, natürlich. Der ADC Chip heisst CS5331 und ist ein 18-Bitter.

: Bearbeitet durch User
von Robert S. (rsont)


Lesenswert?

Matthias S. schrieb:
> Ach, natürlich. Der ADC Chip heisst CS5331 und ist ein 18-Bitter.

Aah ja.
Wundert mich, dass da der Preis bei vielen Angeboten noch im 
Cent-Bereich liegt und gute DACs sind ja auch nicht teuer. Somit sollte 
es doch aus China günstige Bords geben, wo beides drauf ist und ein 
ordentlicher Mikrokontroller, der dann ja nicht mal Soundspezifisch 
ausgelegt sein muss (mit zusätzlichen ADC und DAC), sondern nur ne 
ordentliche Taktfrequenz haben muss und im Idealfall mehrere hundert 
Kilobyte Ram.

von Matthias 🟠. (homa)


Lesenswert?

Robert S. schrieb:
> Wenn ich ein passendes Board gefunden habe, und mich da etwas
> eingearbeitet habe, werde ich (ähnlich wie jetzt mit dem atmega328)
> sicher viele Projekte damit realisieren. Daher sollte es günstig sein.
> Für 10 Euro über AliExpress aus China wäre schon toll.

Das mit dem Preis sehe ich ja ein, aber ein fertiges Board für die 65,- 
EUR ist genau das was Du willst. Bedenke was dich das sonst an Zeit und 
Frust kostet. Hier kannst du innerhalb von Minuten loslegen. Und die 
Soundqualität ist spitze.
- 168MHz STM32F427 microcontroller
- 24bit/96kHz capable stereo audio ADC/DAC (editor and firmware 
currently only supports 24bit/48kHz)
- 8MB SDRam
- On-board switching power supply
Zudem ist durch die Software Axoloti Patcher schnelle Erfolge 
garantiert.
Die Plattform Arduino wirst du für Musikeffekte mit Instrumenten, so 
denke ich, eh verlassen müssen.
Schau Dir mal das Video dazu an: 
https://www.youtube.com/watch?v=7rpC3r_lpvY

von pittiplatsch (Gast)


Lesenswert?

> will ich mich nicht beschäftigen
> würde auch ungern meine gewohnte Arduino-Umgebung verlassen
> mit Assembler will ich mich nicht mehr befassen

Jedes "ich will nicht" schraenkt deine Freiheitsgrade ein.
Wenn du dich dann auch nicht mit der Theorie des digitalen
Signalverarbeitung also Z-Transformation und digitalen Filtern
befassen willst, solltest du das gleich ganz sein lassen.
Dann bleib bei deinen 328.

Gute Algorithmen sind uebrigens ueberwiegend recht einfach.
Aber auch einfache Algorithmen werden dir mit "ich will nicht"
verschlossen bleiben.
Was dir nur bleibt ist das uebliche uino-Geschnorre halbfertiger
Bibliotheken.

Und Abends im dunklen nicht aus dem Haus gehen, man koennte
ja stolpern und ganz lang hinschlagen.

Ich glaub ich sehe da Rost am Hirn.

von Robert S. (rsont)


Lesenswert?

pittiplatsch schrieb:
>> will ich mich nicht beschäftigen
>> würde auch ungern meine gewohnte Arduino-Umgebung verlassen
>> mit Assembler will ich mich nicht mehr befassen
>
> Ich glaub ich sehe da Rost am Hirn.

Nein "im", nicht "am"! Ja, mich in neue Sachen einzuarbeiten ist mir ein 
Graus. Ich tüftle viel lieber ausgiebig an meinen eigenen Scripten, denn 
die verstehe ich. Ich verzichte z.B. auch oft auf so manche Bibliotheken 
und schreibe die Algorithmen lieber selbst. Ich hab auch überhaupt kein 
Interesse daran mit vorgefertigten Algorithmen irgend einen tollen 
Effekt zu machen, den schon hundert andere genauso gemacht haben. Ich 
will nur in meinem kleinen bescheidenen Rahmen ausprobieren und mit 
Sound rumtüfteln. Muss man nicht verstehen. Das wäre zu viel verlangt. 
Es reicht daher schon völlig, wenn Du's akzeptierst und mir nicht 
vorschreibst, was ich zu wollen habe. ;-)

von Robert S. (rsont)


Lesenswert?

Matthias H. schrieb:
> Die Plattform Arduino wirst du für Musikeffekte mit Instrumenten, so
> denke ich, eh verlassen müssen.
> Schau Dir mal das Video dazu an:
> https://www.youtube.com/watch?v=7rpC3r_lpvY

So ne Loop-Machine stelle ich mir eher noch einfach vor. Da braucht man 
doch eigentlich nur viel Ram?!

Musikinstrumente spiele ich keine. Eine Idee was ich eventuell machen 
würde, wäre z.B. ein Karaoke-Mikrofon mit Hall-Effekten und anderen 
Spielereien wie Schlumpf-Stimme (Frequenzverdopplung). Oder einfach mit 
Klangerzeugung tüfteln, aber nicht einfach nur Keyboard-Sounds, sondern 
... was, das weiß ich selbst noch nicht so genau.

von W.S. (Gast)


Lesenswert?

Robert S. schrieb:
> Hallo, ich frage mich, ob es mit einem günstigen Chip (oder Board mit
> mehreren Chips) möglich wäre, Audio-Effekte und ähnliches in Hifi-Stereo
> CD-Qualität zu bauen, also mit mindestens 2 guten 16-Bit
> Digital-Analogwandlern, mindestens einem (besser 2) schnellen 16-Bit
> Analog-Digitalwandlern, sowie vielen Kilobyte RAM, schneller
> Taktfrequenz u.s.w.

Kauf dir einen CODEC nach eigener Wahl (alternativ ein Stereo-ADC plus 
eine Stereo-DAC), dazu einen µC aus der Cortex-M4F Klasse, dessen 
Refmanual du dir zuvor genau durchlesen solltest, ob der ein SAI 
Interface hat (SAI = neudeutsches Wort für I2S Inteface) und ob du die 
Beschreibung dieses Interface auch wirklich verstehst - und dann mach 
dir eine kleine Leiterplatte dafür. Das dürfte ziemlich billig sein, 
deine eigene Arbeits- und Denk-Zeit nicht eingerechnet, aber die mußt du 
ja ohnehin dreingeben, denn von selbst hat sich noch kein DSP 
programmiert.

Mal ein ganz grober Überschlag:
- Controller   5€
- Stereo-Adc   2€
- Stereo-Dac   2€
- Leiterplatte 5€
- Versand     10€
- Kleinkram    5€
macht unterm Strich 29€. Und nun kannst du überlegen, wo du einsparen 
kannst. Vielleicht Ali für jeweils die Hälfte und versandkostenfrei, 
dafür aber 3 Monate Lieferzeit. Damit kämest du unter die 10€.

W.S.

von Andi (Gast)


Lesenswert?

Hier gibt es ein Arduino/Teensy Board mit Audio-Codec. Eigentlich genau 
für dich gemacht:
https://www.electro-smith.com/daisy/daisy

Im Shop gibt es auch fertige Geräte und Platinen für diverse 
Audioanwendungen, auf die du dieses Modul einfach aufstecken kannst.

von Gerald (Gast)


Lesenswert?

Hier findest du einige gute Einstiegsprojekte in Richtung Audio.
Da ist viel mit STM32 und ESP32 gemacht
https://www.youtube.com/c/YetAnotherElectronicsChannel/videos

von Robert S. (rsont)


Lesenswert?

W.S. schrieb:
> Kauf dir einen CODEC nach eigener Wahl (alternativ ein Stereo-ADC plus
> eine Stereo-DAC), dazu einen µC aus der Cortex-M4F Klasse, dessen
> Refmanual du dir zuvor genau durchlesen solltest, ob der ein SAI
> Interface hat (SAI = neudeutsches Wort für I2S Inteface) und ob du die
> Beschreibung dieses Interface auch wirklich verstehst - und dann mach
> dir eine kleine Leiterplatte dafür. Das dürfte ziemlich billig sein,

Das liest sich gar nicht so schlecht.
Wäre das Board geeignet?
https://de.aliexpress.com/item/4001208115404.html
(STM32F411)
Vielleicht beschäftige ich mich auch einfach erst mal mit dem Board oder 
einem STM32F407 Board, und realisiere ein paar Projekte für die das 
atmega328 zu langsam ist. Und wenn ich damit klarkomme, schau ich mich 
nochmal um, ob es eine Board-Version mit gutem ADC und DAC gibt, oder ob 
ich das separat dranhänge.

Ich glaub ich weiß jetzt so in etwa was ich will und danke allen für die 
zahlreichen Tipps und Infos. :-)

Drei Fragen hab ich noch:

Was hat es mit dem "SAI" genau auf sich? Im Web finde ich nur "serial 
audio interface", Du schreibst "neudeutsches Wort für I2S", und in Wiki 
find ich absolut gar nichts dazu. I2S kenn ich. Mich irritiert gerade, 
dass laut Hersteller (ST) die Versionen STM32F407, STM32F401 und 
STM32F411 alle NICHT über SAI verfügen, sondern nur die Versionen 446, 
427, 429 und 469.

Und wie ist das wenn ich die Arduino Plattform verwende? Da kann ich ja 
STM32F407 (als Beispiel) nicht direkt als Board auswählen. Was muss ich 
da dann wählen? Brauch ich ein Plugin? Geht das überhaupt? Sorry, ich 
hab mich damit noch nie befasst.

Was bedeutet diese kontinuierliche Signalbearbeitung (DSP) für die 
Programmierung. Ich kann mir noch nicht so richtig vorstellen was damit 
genau gemeint ist, bzw. was das für mich für die Programmierung 
bedeutet. Nun hab ich auf Wiki im Artikel DSP den Abschnitt 
Funktionsweise gelesen und jetzt raucht mir der Kopf. Der ganze 
Abschnitt ist eine Ansammlung von Fachbegriffen, von denen ich die 
Hälfte noch nie gehört hab. Klar, die Daten müssen 44100 mal pro Sekunde 
rein und raus gehen, aber ansonsten verstehe ich nur Bahnhof.

von Maxe (Gast)


Lesenswert?

Hast du dir schon mal ueberlegt, mit einem PC anzufangen? Der haette auf 
jeden Fall Rechenleistung und duerfte schon vorhanden sein. Man kann 
bspw. mit PortAudio auf die Soundkarte streamen, man uebergibt die 
"Analogwerte" blockweise quasi in Echtzeit. Kann sie also manipulieren, 
berechnen, was auch immer. Und Soundkarten gibt es in jeder Preisklasse, 
falls dir onboard nicht reicht, mehrere Kanaele...
Wenn du damit Ergebnisse erzielst, wird es vielleicht auch einfacher 
abzuschaetzen, welche Rechenleistung du ueberhaupt benoetigst.

von chris_ (Gast)


Lesenswert?

>Hier gibt es ein Arduino/Teensy Board mit Audio-Codec. Eigentlich genau
>für dich gemacht:
>https://www.electro-smith.com/daisy/daisy

Aus unbekannten Gründen will er die aber nicht. Den Link auf die 
Teensy-Bibliothek hatte ich ja oben schon gepostet.

von John Doe (Gast)


Lesenswert?

Robert S. schrieb:
> Was hat es mit dem "SAI" genau auf sich? Im Web finde ich nur "serial
> audio interface", Du schreibst "neudeutsches Wort für I2S", und in Wiki
> find ich absolut gar nichts dazu. I2S kenn ich. Mich irritiert gerade,
> dass laut Hersteller (ST) die Versionen STM32F407, STM32F401 und
> STM32F411 alle NICHT über SAI verfügen, sondern nur die Versionen 446,
> 427, 429 und 469.


SAI ist ein umfangreicheres Interface, welches neben I2S auch AC97 und 
andere Standards kann. Die älteren Controller haben halt "nur" I2S.
Für Dich sollte das aber egal sein.

von W.S. (Gast)


Lesenswert?

Robert S. schrieb:
> Wäre das Board geeignet?

Ich schrieb ja bereits: mach dir ein EIGENES Board. Ich halte das für 
wichtig, damt du dich nicht mit einem Zeugs herumärgern mußt, was gerade 
für DEINEN Fall hier und da Probleme macht und nicht wirklich paßt.

> Was hat es mit dem "SAI" genau auf sich? Im Web finde ich nur "serial
> audio interface", Du schreibst "neudeutsches Wort für I2S",

SAI ist tatsächlich nix anderes als I2S nebst einigen sonstigen 
Erweiterungen, die du garantiert nicht brauchst, aber dennoch sauber in 
der Konfiguration zu beachten hast.

Der Unterschied zu einem nackten I2S besteht dort darin, daß das 
SAI-Zeugs oftmals (aber nicht immer) über Fifo-Puffer verfügt. Das 
entspannt die Situation bei der Benutzung.

Stell dir z.B. mal ein stupides I2S Interface bei einem STM32 vor: Das 
Teil arbeitet intern nur mit 16 Bit, hat keinen Fifo und soll 
tatsächlich Stereo-Samples mit 192 kHz Samplefrequenz empfangen. Jedes 
Sample zu 2x 32 Bit, macht 64 Bit, macht 4 Zugriffe jeweils, macht eine 
Interrupt-Rate von 4x 192 kHz, wenn man kein DMA benutzen will. Aber DMA 
kann nur stupide von A nach B kopieren und nichts Höheres tun, auch 
nicht herausfinden, ob ein aktuelles Wort nun das erste, zweite oder 
dritte oder vierte Wort eines Samples ist.
Also muß man ja doch vom Programm aus Obacht geben, daß I2S und DMA 
passend zueinander synchron gestartet werden und auch auf Dauer synchron 
zueinander laufen. Ich denke mal, daß du da genug an Entwicklungsarbeit 
zu tun hast, um so etwas sauber und auf Dauer sicher zu implementieren. 
Und wie gesagt, ein SAI schafft da etwas mehr an Komfort beim Schreiben 
des zugehörigen Lowlevel-Treiber. Und ein 32 Bit µC, bei dem die 
Peripherie ebenfalls 32 Bit breit ausgeführt ist, ist da auch angenehmer 
als einer mit nur einer 16 Bit Peripherie.

W.S.

von 900ss D. (900ss)


Lesenswert?

Schau dir auch mal den Teensy 4.0 an:
https://www.pjrc.com/store/teensy40.html

Immerhin ein ARM mit 600MHz.

Dazu gibt es ein Audio-Board:
https://www.pjrc.com/store/teensy3_audio.html

Eine passende Audio library mit Audio Design Tool:
https://www.pjrc.com/teensy/td_libs_Audio.html

Auf Github ist die Lib auch nochmal beschrieben:
https://github.com/PaulStoffregen/Audio

Und alles für Arduino.
Ich habe mir Teensy bisher ganz gut Erfahrungen gemacht.

Edit: Ich sehe gerade dass die Audio Library bisher nur für die
3-er Teensys zu haben ist. Aber auch die sind nicht langsam.

: Bearbeitet durch User
von Robert S. (rsont)


Lesenswert?

900ss D. schrieb:
> Schau dir auch mal den Teensy 4.0 an:

Ich hab mir jetzt mal zwei Stück ESP32-WROOM-32 bestellt.
(Beide zusammen mit Versand 7 Euro.)

Damit werde ich erst mal rumexperimentieren.

> Dazu gibt es ein Audio-Board:
> https://www.pjrc.com/store/teensy3_audio.html

Sowas kommt dann später dran. (Sollte da ja auch passen.)
Mich wundert ein bisschen, dass dieses Audio-Board bzw.
Audio Shield überall so um die 30 Euro kostet, obwohl
doch der darauf verbaute SGTL5000 schon für unter 1 Euro
zu bekommen ist.

von pittiplatsch (Gast)


Lesenswert?

> Immerhin ein ARM mit 600MHz.

Ich habe hier eine relativ einfache Audioanwendung auf einem
kleinen FPGA. Die erzeugte aggregierte Datenrate liegt intern
bei 800 ps, respektive dem Kehrwert davon.

Da kommt mit man mit den 600 MHz genau nirgendwo hin.

Ein DSP heisst eben nicht aus Marketinggruenden DSP.
Viele Takte verblaest ein ARM schon beim Nachempfinden
von DSP-typischen Operationen.

> (Beide zusammen mit Versand 7 Euro.)

Geh in einen Spielzeugladen. Da wirst du kompetentere
Geraetschaften fuer den Preis kaufen koennen.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

pittiplatsch schrieb:
> Die erzeugte aggregierte Datenrate liegt intern
> bei 800 ps, respektive dem Kehrwert davon.

Datenraten in ps bzw. THz sind ungefaehr so serioes wie gefuehlte 
elektrische Leistungsstaerken in W/h.

SCNR
WK

von Harper (Gast)


Lesenswert?

Sebastian R. schrieb:
> Für Audio sind die SHARC DSPs echt gut. Dazu gibt es von Analog
> dann
> z.B. auch SigmaStudio, mit dem man sich die Signalkette zwischen Ein-
> und Ausgang easy zusammenklicken und als Code generieren lassen kann.

Ich schließe mich zu.
Es gibt sogar ein Satellit-Board: Pure for Audio :-)

https://www.analog.com/en/design-center/evaluation-hardware-and-software/evaluation-boards-kits/sharc-audio-module.html

von Jonas B. (jibi)


Lesenswert?

>Edit: Ich sehe gerade dass die Audio Library bisher nur für die
>3-er Teensys zu haben ist. Aber auch die sind nicht langsam.

Du irrst dich. Die gibt es für alle Teensy auch 4.1.

von Peter Panda2 (Gast)


Lesenswert?

wieso werden hier eigentlich 12Bit ls zu wenig in den Rau gestellt?#
Im Profi Bereich geht das
Im Amateurbereich eher nicht.
Ich verweise hier auf mein Kinderspielzeug aus den 
80/90ernEbay-Artikel Nr. 393160369826

Hier im Einsatz
https://www.youtube.com/watch?v=HFlyxQLwicQ



Und tatsächlich klang das bei mir als Kind nicht so haha

von Peter Panda2 (Gast)


Lesenswert?


von Peter Panda2 (Gast)


Lesenswert?


von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Für den Raspi gibt es den HifiBerry DAC. Ob der mehr kann als nur reine 
Audio-Wiedergabe kann ich nicht sagen. Aber auf dem Arduino stelle ich 
mir Audio-Effekte schon aus Performance-Gründen schwierig vor?!

Mit freundlichen Grüßen
Thorsten Ostermann

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]
  • [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.

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