Hallo Sternthaler,

Zitat Zitat von Sternthaler
aber dafür verbrauche ich nun pro Note nur noch EIN BYTE, und nicht mehr VIER BYTE.
super!
Zitat Zitat von Sternthaler
Kleiner Tipp, für die, die es nocht nicht wissen: Wenn man beim abspielen die Zahnräder mit den ODO-Scheiben leicht festhält, dann ist das Scheppern gerade im Bass-Bereich gut zu unterdrücken.
guter Tipp!

// Werte von B7 und H7 getauscht, da falsch definiert.
// Neue Toene von H2 bis AS4, und C8
// C8 weil es am Klavier die letzte Taste ist.
// Runter bis H2, da dann genau 62 Toene plus _OFF und STOP-Code vorhanden sind.
// Die Formel: RUNDEN (25,957 * EXP (0,0577620678 * [Tonnummer]); 0) ergibt
// fehlerfrei die passende Frequenz.
// Die [Tonnummer] ergibt sich aus: [Tonindex] + 25
// Der Tonindex beginnt bei 0, und somit die Tonnummer bei 25 mit dem Ton A2,
// da dies laut http://www.sengpielaudio.com/Rechner-notennamen.htm nun mal
// so ist.
// Die Toene mit den Tonnummern 1 bis 25 sind auf der Bass-Seite vom Klavier
// auch noch vorhanden, koennen aber hier nicht mehr dargestellt werden, da
// sonst mehr als 64 Toene/_OFF/STOP und somit mehr als 6 Bits benoetigt
// wuerden. Dies geht aber nicht, da die restlichen 2 Bits fuer die Tondauer
// benutzt werden.
Mit deiner Hilfe wird der ASURO ja noch zum Profi-Musiker!

Nun mal eine dumme Anfänger-Frage:
du definierst erst auf "herkömmliche" Art:
uint16_t rechts []
uint16_t links []
später "sparsam":
uint8_t rechts []
uint8_t links []
abgespielt wird das:
StereoSound (rechts, links);
mir ist nicht klar welche Variante der ASURO jetzt abspielt.

Bei unseren Liedern gibt noch die Unterscheidung angestossene und gebundene Töne und ausserdem Triolen:

Code:
#define zweig 	1500  //g : gebunden
#define vierg 	750
#define achtg 	375
#define triog 	250

#define einsa 	2980  // a : angestossen
#define zweia 	1480
#define viera 	730
#define achta 	355
#define trioa 	230
#define anst 	20   // anstoss

#define _OFF 0
#define STOP 0

//-------------------------------------------------------------------------------------------------
//amzaing grace 1.Stimme

uint16_t amazing_grace_1[]={
	C5,achtg,
	F5,achtg,

	_OFF,anst,
	F5,zweia,

	_OFF,anst,
	A5,trioa,
	G5,triog,
	F5,triog,

	_OFF,anst,
	A5,zweia,

	_OFF,anst,
	A5,achta,
	G5,achtg,
	
	_OFF,anst,
	F5,zweia,

	_OFF,anst,
	D5,viera,

	_OFF,anst,
	C5,zweia,

//-------------------------------------------------------------------------------------------------
	
	_OFF,anst,
	C5,achta,
	F5,achtg,

	_OFF,anst,
	F5,zweia,

	_OFF,anst,
	A5,trioa,
	G5,triog,
	F5,triog,

	_OFF,anst,
	A5,zweia,

	_OFF,anst,
	G5,achta,
	A5,achtg,

	_OFF,anst,
	C6,zweia,
	C6,zweig,
	C6,vierg,

//-------------------------------------------------------------------------------------------------

	_OFF,anst,
	A5,achta,
	C6,achtg,

	_OFF,anst,
	C6,zweia,

	_OFF,anst,
	A5,trioa,
	G5,triog,
	F5,triog,

	_OFF,anst,
	A5,zweia,

	_OFF,anst,
	A5,achta,
	G5,achtg,

	_OFF,anst,
	F5,zweia,

	_OFF,anst,
	D5,viera,

	_OFF,anst,
	C5,zweia,

//-------------------------------------------------------------------------------------------------

	_OFF,anst,
	C5,achta,
	F5,achtg,

	_OFF,anst,
	F5,zweia,

	_OFF,anst,
	A5,trioa,
	G5,triog,
	F5,triog,

	_OFF,anst,
	A5,zweia,

	_OFF,anst,
	G5,viera,

	_OFF,anst,
	F5,zweia,
	F5,zweig,
	F5,vierg,

	STOP,STOP
	

};

//-------------------------------------------------------------------------------------------------
//amzaing grace 2.Stimme

uint16_t amazing_grace_2[]={
	C5,achtg,
	A4,achtg,

	_OFF,anst,
	A4,zweia,

	_OFF,anst,
	C5,trioa,
	H4,triog,
	A4,triog,

	_OFF,anst,
	C5,zweia,

	_OFF,anst,
	C5,achta,
	DES5,achtg,
	
	_OFF,anst,
	D5,zweia,

	_OFF,anst,
	H4,viera,

	_OFF,anst,
	A4,zweia,

//-------------------------------------------------------------------------------------------------
	
	_OFF,anst,
	C5,achta,
	A4,achtg,

	_OFF,anst,
	A4,zweia,

	_OFF,anst,
	C5,trioa,
	H4,triog,
	A4,triog,

	_OFF,anst,
	C5,zweia,

	_OFF,anst,
	E5,achta,
	F5,achtg,

	_OFF,anst,
	E5,zweia,
	E5,zweig,
	E5,vierg,

//-------------------------------------------------------------------------------------------------

	_OFF,anst,
	F5,achta,
	A5,achtg,

	_OFF,anst,
	A5,zweia,

	_OFF,anst,
	F5,trioa,
	C5,triog,
	D5,triog,

	_OFF,anst,
	C5,zweia,

	_OFF,anst,
	DES5,viera,
	
	_OFF,anst,
	D5,zweia,

	_OFF,anst,
	H4,viera,

	_OFF,anst,
	A4,zweia,

//-------------------------------------------------------------------------------------------------

	_OFF,anst,
	C5,achta,
	A4,achtg,

	_OFF,anst,
	A4,zweia,

	_OFF,anst,
	C5,trioa,
	H4,triog,
	A4,triog,

	_OFF,anst,
	C5,zweia,

	_OFF,anst,
	H4,achtg,

	_OFF,anst,
	A4,zweia,
	A4,zweig,
	A4,vierg,


	STOP,STOP
};
Die Originalfunktion von robo.fr ist ohne blinkende LEDs.
Diese habe ich laienhaft (nach dem Prinzip Versuch u. Irrtum) eingebaut.
Vielleicht kannst du dir das mal anschauen und evtl. verbessern (die StatusLED geht immer erst nach dem ersten Ton an.)? - Wäre nett!

Gruss
M.