- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 23

Thema: tone library auch für Raspi

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.04.2005
    Ort
    Bad Aibling
    Beiträge
    212
    Das wusste ich nicht das der beep nur mit dem alten PC-Speaker geht. Ich dachte auf neuerer Hardware würde das über den Treiber der Soundkarte realisiert. Sorry.

    Eine neue LIB für die Soundkarte zu schreiben ist vermutlich nicht Sinnvoll. Die wird nicht wirklich kleiner werden als die anderen die es gibt. Da eine Soundkarte selbst keine Töne erzeugen kann. Wie es zum Beispiel der PC-Speaker macht. Du musst die Töne per Software berechnen und dann an die Soundkarte übergeben.

    Was ich noch gefunden habe ist der aplay der kann verschiedene Audio Formate Spielen wie z.B. WAV. Das funktioniert auch habe ich dieses mal vorher ausprobiert. Der aplay musste bei mir nicht extra installiert werden. Dann müsstest Du unter den Formaten die der abspielen kann nur ein einfaches suchen und per Software den Ton oder die Töne generieren und an aplay übergeben. Das sollte funktionieren.

    Die Software des PI und der Arduinos kann man nicht wirklich vergleichen die Hardware des PI ist um größen Ordnungen höher als die der Arduinos ebenso das Betriebsystem das es bei Arduinos überhaupt nicht gibt. Daher sind Lösungen nicht immer mit einigen KB größen Libs zu bekommen Leisten aber auch sehr viel mehr. Dafür hat der PI ja auch mehr an Speicher und Rechenleistung zu bieten. Wenn Dir die Soundkarte zu komplex ist kannst Du aber mit einem kleine Verstärker einen Lautsprecher an einen PWM Pin des PI anschließen und dann mit diesem Töne erzeugen. Das macht der PC-Speaker so ähnlich.
    Geändert von alexander_ro (10.10.2016 um 22:16 Uhr)

  2. #2
    HaWe
    Gast
    Alexander, was eine "Soundkarte" angeht, hast du meinen Post missverstanden.
    Der Raspi hat keinen PC Speaker, daher funktioniert beep() auch nicht (sondern anscheinend nur auf Linux-PCs, die einen eingebauten Systemlautsprecher besitzen).
    Wenn du aber zeigen kannst, wie man beep auf einem Standard-Raspi zur Tonausgabe über Audiojack bzw. HDMI bringen kann, dann zeige es einfach - bisher konnte ich kenen entsprechenden Hinweis im web finden.
    Also nochmal:
    Die Ausgabe soll auf Kopfhörer bzw standard-Ausgabe-Device (d.h. je nach Einstellung eben auch HDMI) erfolgen, genau wie die Ausgabe von z.B. omxplayer oder aller anderen Sounds, die der Raspi standardmäßig wiedergibt (vom wav file bis zum youtube Video).
    Die Ton- Ausgabe soll durch Aufruf der Funktion innerhalb eines C/C++ Programms erfolgen können, am besten durch eine dar eingebundene C/C++ lib oder c+p des kompletten dafür nötigen Sourcecodes oder notfalls auch einen system call.
    Die Syntax soll in etwa sein, wie ich es oben im TOP beschrieben habe, also ähnlich wie

    tone(frequency, duration)
    tone(frequency, duration, loudness)

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.04.2005
    Ort
    Bad Aibling
    Beiträge
    212
    Es gibt auch PC ohne den klassischen PC-Lautsprecher und der beep geht aber trotzdem. Mir war nicht bekannt das das nicht bei allen ohne den PC-Lautsprecher so ist weil es zufällig bei meinen so geht.

    Die von Dir angegebene Funktion wird so nie eine MP3 Datei oder ähnliches spielen können. Die Sounddateien sind Digitalisierte Spannungsverläufe und keine Noten. Ein kleiner aber wichtiger Unterschied.

    Da der Raspi mit dem aplay oder dem von Dir genannten omx Sounddateien spielen kann muss die Lib die Du suchst bereits auf dem System vorhanden sein. Ich verstehe jetzt nicht warum Du nicht einfach mal den Sourcecode der Programme anschaust wie die das machen. Es gibt für Linux hunderte an offenen Programmen die Töne nach allen Arten machen man muss halt bereit sein auch mal irgendwo rein zu schauen. Wenn einem das zu viel Arbeit ist besteht halt noch die Möglichkeit mit dem exec einen externen Player zu bemühen damit der das Spielen übernimmt. Dabei muss man halt per Software die gewünschten Töne errechnen im einfachsten Fall mit der Sinusfunktion. Das ist auch nicht die schlechteste Lösung weil Du in Deinem Programm dann auch diese Funktion nicht pflegen musst. Nebenbei ein recht gängiger Weg in der gesamten UNIX/Linux Welt.

  4. #4
    HaWe
    Gast
    wenn du weißt wie es mit beep() geht, dann zeig es, und es geht nicht um mp3 Daten oder wav files sondern um ad-hoc-Erzeugung von Tönen.
    Theoretische Erklärungen helfen hier aber nicht zur Beantwortung der TOP-Frage, sondern nur eine Funktion oder Lib, die das definitiv leistet.
    Wenn du also so etwas entsprechendes als Sourcecode kennst, gut, dann zeige sie auch und poste sie hier,
    wenn nicht, hilft es nicht weiter.

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.04.2005
    Ort
    Bad Aibling
    Beiträge
    212
    Nein ich weiß nicht warum das auf manchen geht und anderen nicht. Ich habe das heute bei einem Kunden probiert da ging es auch nicht. Vermutlich haben einige Treiberentwickler den Syscall auf die Soundkarte um gebogen und andere ignorieren den einfach.

    Suchmaschine spukte noch das aus: http://raspberrypi.stackexchange.com...beep-on-wheezy
    Ich habe es nicht probiert soll aber gehen laut den Texten.

    Ich wundere mich nur wenn Du C/C++ Programme schreibst warum Du nicht mal bei Programmen die tun was Du möchtest in den Sourcecode schaust was die verwenden. Sehr hilfreich und auch lehrreich was ander tun. Töne kannst Du auch adhoc auch über einen Player adhoc erzeugen.

  6. #6
    HaWe
    Gast
    wenn du glaubst, dass es geht mit beep auf Raspi, dann probiers aus - und poste das Ergebnis. Nach meinen Versuchen und Recherchen tut es das nicht.
    Wenn du Programme findest, die das tun, was ich suche, poste den genauen Sourcecode bitte, ich finde keine,
    und wenn du weißt, wie man "Töne auch adhoc auch über einen Player adhoc erzeugen" kann, dann poste es bitte ebenfalls - es muss allerdings über ein C/C++ Programm zur Ausführung gebracht werden.

    Wie ich schrieb: Allgemeines Gerede bringt nichts, poste eine Lösung, alles andere ist nicht zielführend.

    PS, Anm.: auf meinem Raspi läuft Debian Jessie 8, 4.4.13-v7+ falls das eventuell irgendwie wichtig sein könnte)
    Geändert von HaWe (11.10.2016 um 13:07 Uhr)

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.01.2016
    Ort
    Saarbrücken
    Beiträge
    397
    Hast du PulseAudio installiert?

Ähnliche Themen

  1. DMA Kanäle als PWM auf dem Raspi
    Von Hellmut im Forum Raspberry Pi
    Antworten: 5
    Letzter Beitrag: 08.05.2016, 23:15
  2. ARM TrustZone und Raspi 3B
    Von Hellmut im Forum ARM - 32-bit-Mikrocontroller-Architektur
    Antworten: 0
    Letzter Beitrag: 12.04.2016, 15:06
  3. Antworten: 63
    Letzter Beitrag: 18.02.2016, 07:43
  4. [ERLEDIGT] Raspi Club?
    Von pofoklempner im Forum Raspberry Pi
    Antworten: 16
    Letzter Beitrag: 09.07.2015, 06:20
  5. Antworten: 0
    Letzter Beitrag: 10.01.2008, 01:52

Berechtigungen

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

Solar Speicher und Akkus Tests