- Labornetzteil AliExpress         
Ergebnis 1 bis 8 von 8

Thema: Hilfe mit Audio

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.01.2016
    Ort
    Saarbrücken
    Beiträge
    397
    Kopf -> Tisch

    Da kommen die Schwächen von C++ zum Tragen ^^. Also die Schwächen die sich bei mir selbst einschleichen. Als ich noch in Ansi C gearbeitet habe wäre mir das nicht passiert. Da wird man eben durch string usw. doch schon sehr verwöhnt.

    Danke schon mal. Ich versuche es mal.

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    67
    Beiträge
    2.435
    Hallo,
    Zitat Zitat von hirnfrei Beitrag anzeigen
    Kopf -> Tisch
    Danke schon mal. Ich versuche es mal.
    Müsste eigentlich hohl tönen, bei hirnfrei

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    19.05.2015
    Beiträge
    69
    Das reicht aber evtl. auch nicht. Der Parameter für die Anzahl in snd_pcm_readi() gibt _nicht_ die Anzahl der Bytes an sondern die Anzahl der zu lesenden Sample-Frames. Die Größe dieser Frames hängt davon ab, wieviele Kanäle und welchen Datentyp Du für ein Sample bei der Initialisierung der Soundschnittstelle eingestellt hast.

    Ein Kanal mit SND_PCM_FORMAT_S16_LE sind z.B. 2 Bytes pro Frame die Du im Puffer zur Verfügung stellen mußt.
    Bei zwei Kanälen sind's vier. Dazu ist zu beachten, wenn Du zwei Kanäle hast, wie die Anordnung der Samples ist. Wenn Du SND_PCM_ACCESS_RW_INTERLEAVED in snd_pcm_hw_params_set_access() angegeben hast, musst Du
    Code:
    snd_pcm_readi(hndl, buf, 4);
    aufrufen. _readi() weil interleaved (es gibt noch_readn() für non interleaved) und dann bedeutes das, das wenn du _S16_LE, 2 Kanäle angegeben hast, das der Puffer 2 * 4 * sizeof(int16_t) groß sein muß (Anzahl der Kanäle * Anz.d. Frames * Sample-Größe). Sonst schäpperts.
    Die Samples für den ersten Kanal liegen dann in buf[0,2,4,6] und für den zweiten Kanal in buf[1,3,5,7].
    Geändert von botty (28.06.2016 um 16:43 Uhr)

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.01.2016
    Ort
    Saarbrücken
    Beiträge
    397
    Wie ich merke ist Audio gar nicht so einfach wie man denken sollte ^^.

    Zum Glück brauche ich aktuell nur ein Kanal.

    Aber mal schauen ob ich das richtig verstanden habe

    Anstelle von

    Code:
    snd_pcm_readi(hndl, buf, 4);
    könnte ich auch

    [code]
    snd_pcm_readi(hndl, buf, channel*2);
    [code]

    verwenden?

    Wäre dann bei SND_PCM_FORMAT_S32 das dann * 4?

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    19.05.2015
    Beiträge
    69
    Der letzte Parameter ist die Anzahl der Frames, nicht die Puffergröße! Diese Anzahl wählt man am besten so groß, das man eine Periode aus ALSA in einem Rutsch auslesen kann (und wie ich feststellen mußte ist meine letzte ALSA Zeit zu lange her, als das ich das im Gedächtnis gehabt hätte).
    Schau Dir mal das Listing 4 in diesem Linux Journal Artikel an, ich hoffe dann wird's verständlicher.

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.01.2016
    Ort
    Saarbrücken
    Beiträge
    397
    Das sieht sehr gut erklärt aus. Das werde ich mir mal genauer zu Gemüte führen! Vielen Dank!

Ähnliche Themen

  1. Audio-Differenzverstärker
    Von miniregler im Forum Elektronik
    Antworten: 17
    Letzter Beitrag: 20.04.2013, 09:47
  2. [ERLEDIGT] Audio via LAN - Endstelle
    Von robo_tom_24 im Forum Raspberry Pi
    Antworten: 1
    Letzter Beitrag: 28.07.2012, 17:06
  3. Audio Multiplexer
    Von Crock im Forum Elektronik
    Antworten: 11
    Letzter Beitrag: 12.01.2009, 17:08
  4. Audio-Mischer
    Von thewulf00 im Forum Elektronik
    Antworten: 10
    Letzter Beitrag: 06.08.2008, 14:13
  5. Audio => AVR (LM339)
    Von Jaecko im Forum Elektronik
    Antworten: 11
    Letzter Beitrag: 03.08.2008, 21:09

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test