Sound

Aus Ethersex_Wiki
Wechseln zu: Navigation, Suche

PWM Sound

Via PWM kann auch Sound ausgegeben werden.

make menuconfig

I/O support  --->  
 [*] PWM Generator  ---> (NEW)     

   PWM Generator
     [*] PWM Wave
     [*] PWM Melody

Wave

Es wird eine kleine 8 Bit Mono 8000Hz PCM WAV Datei abgespielt. Die entsprechende Datei kann einfach ausgetauscht werden und nach dem neukompilieren kann man diese dann abspielen.

hardware/pwm/ethersex.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 8 bit, mono 8000 H

Melody

Es wird eine Melody abgespielt die als Notenwerte abgelegt sind. Als Beispiel liegt das Lied "Alle meine Entchen" unter hardware/pwm/entchen.h bereit.

Für weitere eigene Songs kann man ein include in hardware/pwm/pwm_melody.c einfügen und dann das struct songs mit weiteren Melodien aus dem Programmspeicher füllen.

Beispiele

Beispiel: hardware/pwm/pwm_melody.c anpassen

#include "newsong.h"
[...]
struct song_t songs[] PROGMEM = {
 { "entchen", 10, 4, entchen_notes, songlength(entchen_notes) },
 { "newsong", 40, 1, newsong_notes, songlength(newsong_notes) }

};

Beispiel: newsong.h hinzufügen

#ifndef PWM_NEWSONG_H
#define PWM_NEWSONG_H
/*
 * The adapted melody is in the public domain.
 */
const struct notes_duration_t newsong_notes[] PROGMEM =
{
   {C,8}, {D,8}, {E,8}, {E,8},
   {G,16},{G,16},
   {A,8}, {A,8}, {A,8}, {A,8},
   {G,24},{p,8}, {p,  1}, {p,  1},
   {A,8}, {A,8}, {A,8}, {A,8},
   {G,24},{p,8}, {p,  1}, {p,  1},
   {F,8}, {F,8}, {F,8}, {F,8},
   {E,16},{E,16},
   {D,8}, {D,8}, {D,8}, {D,8},
   {C,24},{p,8}, {p,  1}, {p,  1}
};
#endif /* PWM_NEWSONG_H */