Sound: Unterschied zwischen den Versionen

Aus Ethersex_Wiki
Wechseln zu: Navigation, Suche
(Wave)
(Melody)
Zeile 21: Zeile 21:
 
=== Melody ===
 
=== Melody ===
  
Es wird eine Melody abgespielt die als Notenwerte abgelegt sind.
+
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 */
 +
 
  
 
[[Kategorie:PWM]]
 
[[Kategorie:PWM]]
 
[[Kategorie:Sound]]
 
[[Kategorie:Sound]]

Version vom 29. November 2009, 23:16 Uhr

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 */