- LiTime Speicher und Akkus         
Seite 3 von 5 ErsteErste 12345 LetzteLetzte
Ergebnis 21 bis 30 von 47

Thema: Welche Soundkarte für den Raspi

  1. #21
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.12.2010
    Ort
    NRW
    Beiträge
    223
    Anzeige

    LiFePo4 Akku selber bauen - Video
    und ich liefere dann heute abend oder morgen die lsmod , dmesg, lsusb ausgaben von meiner USB - Soundkarte dann weiss man schon mal ob die Vermutung richtig ist.

    CyA

  2. #22
    HaWe
    Gast
    das grausame ist: fast alles für den Pi ist in Python - oder mit eigenständigen Linuxpogrammen, nicht per C API lib.

    Spracherkennung gibt es z.B. auch als Google-Modul, sogar offline, wenn ich mich recht erinnerr - nur als Hinweis...
    - selber programmieren müssen möchte ich so etwas aber wirklich nicht.

    Selbst wav files abspielen per C API Befehl ist gradezu unzumutbar verquer und aufwändig.
    "Einfach" ist was anderes, da lobe ich mir die Arduino API libs....!

  3. #23
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    HaWe das stimmt so nicht! Die Libs sind in Python, weil Python "so schön einfach ist" ... das geb ich neidlos zu!!!
    Aber JEDE Python Lib basiert auf einer C-Lib, sie verrtaten nur nicht auf anhiebn welche und das verstehen der API ist manchmal etwas ... gruselig
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  4. #24
    HaWe
    Gast
    nein, was ich meinte ist:
    es gibt keine einfachen C API libs zum selber in C programmieren,
    klar haben die Python-Programmierer das in ihrer Python VM irgendwie mit C in "haarklein" hingekriegt.

    Man bräuchte diese einfachen wraps eben auch in C zum selber-Programmieren, dann ginge es schon, etwa so (theoretisch, wenn es so eine audio.h gäbe):
    Code:
    #include <audio.h>
    
    unsigned char metadata[44];
    
    pFile = fopen ("mysound.wav","r");
    readwavmetadata(pFile, * metadata);
    playwav(pFile, * metadata);
    fclose (pFile);
    stattdessen muss man sich mit so einem aufgeblasenen Mist rumschlagen:

    http://www.alsa-project.org/alsa-doc/alsa-lib/
    http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html
    http://www.mega-nerd.com/libsndfile/

  5. #25
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    https://github.com/cmusphinx/sphinxbase

    bzw.

    https://github.com/cmusphinx/sphinxb...nxad/ad_alsa.c

    um genauer zu sein ;D

    Code:
    int32 ad_read(ad_rec_t * handle, int16 * buf, int32 max)
    und man kann davon je nach Lizens (ha ich jetzt nicht nachgesehn) bestimmt auch Abwandlungen machen
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  6. #26
    HaWe
    Gast
    kannst du mal bitte ein code example aufschreiben, wie man dann einen vorhandenen sound file
    /path/mysound.wav
    in einem eigenen C- Programm auswählt und einfach nur mal eben schnell abspielt (Ausgabe wie üblich via Audio jacks oder HDMI) ?

  7. #27
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    ja okay abspielen, davon war ja jetzt garnicht die Rede aber ich hab da noch eine API gefunden die mehr auf basis-funktion orientiert ist

    https://github.com/tinyalsa/tinyalsa

    die hat deine playfunktion und kann aufnehmen und hat sogar schöne Beispiele dabei
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  8. #28
    HaWe
    Gast
    ok, dann nochmal, dann eben jetzt dafür: https://github.com/tinyalsa/tinyalsa

    kannst du mal bitte ein code example aufschreiben, wie man dann einen vorhandenen sound file
    /path/mysound.wav
    in einem eigenen C- Programm auswählt und einfach nur mal eben schnell abspielt (Ausgabe wie üblich via Audio jacks oder HDMI) ?


    etwas in der Art:
    Selbst wav files abspielen per C API Befehl ist gradezu unzumutbar verquer und aufwändig.
    ...
    was ich meinte ist:...
    Man bräuchte diese einfachen wraps eben auch in C zum selber-Programmieren, dann ginge es schon, etwa so (theoretisch, wenn es so eine audio.h gäbe):
    Code:
    #include <audio.h>
    
    unsigned char metadata[44];
    
    pFile = fopen ("mysound.wav","r");
    readwavmetadata(pFile, * metadata);
    playwav(pFile, * metadata);
    fclose (pFile);

  9. #29
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    also ich finde dass der Code in

    https://raw.githubusercontent.com/ti...ter/tinyplay.c

    genug Vorlage bildet um es kompakter umzuschreiben aber man muss sich schon einiges C & P bedienen

    also aus dem tinyplay.c mal kondensiert und an deine Vorlage angepasst

    Code:
    unsigned int device = 0;
    unsigned int card = 0;
    unsigned int period_size = 1024;
    unsigned int period_count = 4;
    unsigned int channels = 2;
    unsigned int rate = 48000;
    unsigned int bits = 16;
    unsigned int is_raw = 0; /* Default wav file */
    
    struct riff_wave_header riff_wave_header;
    struct chunk_header chunk_header;
    struct chunk_fmt chunk_fmt;
    
    bool_t readWavMeta(FILE* file)
    {
            int more_chunks = 1;
            fread(&riff_wave_header, sizeof(riff_wave_header), 1, file);
            if ((riff_wave_header.riff_id != ID_RIFF) ||
                (riff_wave_header.wave_id != ID_WAVE)) {
                fprintf(stderr, "Error: '%s' is not a riff/wave file\n", filename);
                fclose(file);
                return false;
            }
            do {
                fread(&chunk_header, sizeof(chunk_header), 1, file);
                switch (chunk_header.id) {
                case ID_FMT:
                    fread(&chunk_fmt, sizeof(chunk_fmt), 1, file);
                    /* If the format header is larger, skip the rest */
                    if (chunk_header.sz > sizeof(chunk_fmt))
                        fseek(file, chunk_header.sz - sizeof(chunk_fmt), SEEK_CUR);
                    break;
                case ID_DATA:
                    /* Stop looking for chunks */
                    more_chunks = 0;
                    break;
                default:
                    /* Unknown chunk, skip bytes */
                    fseek(file, chunk_header.sz, SEEK_CUR);
                }
            } while (more_chunks);
            playSetup.channels = chunk_fmt.num_channels;
            playSetup.rate = chunk_fmt.sample_rate;
            playSetup.bits = chunk_fmt.bits_per_sample;
            return true;
    }
    
    
        FILE *file;
        char *filename;
    
        filename = "something.wav";
        file = fopen(filename, "rb");
        if (!file) {
            fprintf(stderr, "Unable to open file '%s'\n", filename);
            return 1;
        }
    
        if(readWavMeta(file)) play_sample(file, card, device, channels, rate, bits, period_size, period_count);
    
        fclose(file);
    mit etwas mehr mühe hätt ich jetzt die meta daten noch in ein struct geworfen, aber das würde gerade zu lange dauern
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  10. #30
    HaWe
    Gast
    welche Libs muss man vorher wie installieren und #includen, damit man es kompilieren kann?

Seite 3 von 5 ErsteErste 12345 LetzteLetzte

Ähnliche Themen

  1. Antworten: 63
    Letzter Beitrag: 18.02.2016, 08:43
  2. Soundkarte
    Von oratus sum im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 3
    Letzter Beitrag: 16.04.2008, 15:30
  3. Soundkarte Eingänge
    Von harry3 im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 23.02.2008, 11:57
  4. Oszillograph für die Soundkarte
    Von Malte0815 im Forum Elektronik
    Antworten: 26
    Letzter Beitrag: 22.02.2008, 20:23
  5. Impedanzmessgerät - Soundkarte?
    Von Rage_Empire im Forum Elektronik
    Antworten: 6
    Letzter Beitrag: 19.08.2006, 18:30

Berechtigungen

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

LiTime Speicher und Akkus