PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ASURO DDS



robo.fr
25.06.2007, 17:54
Hallo Allerseits,

dieser Thread beschäftigt sich mit der exorbitant guten Soaundausgabe des ASURO.

Vorgestellt werden Programme, die Melodien Stereo auf den beiden Motoren abspielen.

Viel Spaß damit !

robo.fr
25.06.2007, 23:06
Hier (http://www.roboterclub-freiburg.de/asuro/software/sound/ASURO_DDS_Sound.zip) befindet sich der Sourcecode, Falls jemand Lust hat, ein eigenes Stück umzusetzen.

M1.R
02.07.2007, 22:37
Hallo,

ich habe jetzt noch blinkende LEDs eingebaut
siehe Anhang

Gruss
M.

mfs
03.07.2007, 21:35
nett gemacht :)

Sternthaler
04.07.2007, 00:50
Jaaaa, Stereo ist super. =D>

m.a.r.v.i.n
06.07.2007, 08:48
Hallo robo.fr,

großes Lob. Ich finde deinen Stereo Sound Generator auch sehr gelungen. Mit deinem Einverständnis würde ich die Funktion gerne in die Asuro Lib übernehmen.

robo.fr
06.07.2007, 09:18
Hallo m.a.r.v.i.n,

kannst Du gerne machen, warum nicht, ist ja schliesslich "Open Source". Es freut mich, wenn auch andere Spass daran haben.

Gruss,
robo

M1.R
21.07.2007, 18:23
Hallo robo,

kann es sein, dass man in das array "melody[]" nicht beliebig viele Werte (Noten) schreiben kann? Wo ist denn die Obergrenze?

Gruss
M.

Mr.Roboto
21.07.2007, 18:40
Sehr sehr lustig, ist dir echt gelungen !!!

robo.fr
21.07.2007, 21:33
Sehr sehr lustig, ist dir echt gelungen !!!

Danke, das hört man gerne.


kann es sein, dass man in das array "melody[]" nicht beliebig viele Werte (Noten) schreiben kann? Wo ist denn die Obergrenze?

In der Routine begrenzt der 1KB-Ram Speicher die Anzahl der Noten, da alle Arrays im RAM liegen. Man könnte wesentlich mehr Noten unterkriegen, wenn man die Noten im Flash ablegt. Das geht mit progmem ....

Gruß,
robo

Noss
21.07.2007, 23:39
XD

das ist ja mal geil :D :-({|= :-({|= :-({|= :-({|=

robo.fr
22.07.2007, 19:29
Freut mich, dass es Dir auch gefällt O:)

Da meine musikalischen Fähigkeiten leider etwas begrenzt sind, habe ich ein "alle meine Entchen" und ein Stück, welches ich irgendwo im Internet gefunden habe und ein weing wie "die Simpsons" klingt, eingetippt.

Meine Hoffnung ist ein wenig, dass sich noch irgendjemand mit Noten auskennt und hier mal ein kleines Beispilel abgibt. Da das Programm ja zeistimmig spielt, könnte man auch einen Kanon abspielen. Da ist mir nur aus meiner Kindheit "Bruder Jakob" eingefallen. Aber es gibt bestimmt auch schönere Stücke. :Ostern

Noss
22.07.2007, 20:04
ich hätte nur eine frage der asuro hat ja eig. keine tonausgabe oder wo/wie spielt er dann ton ab?

Lync
22.07.2007, 21:08
Das Programm ist wirlich toll.

Soweit ich weiß kann der Asuro mit dem Motoren Sound erzeugen.

adrisch
22.07.2007, 22:45
Hihi, das Programm is cool!!!
Bin grad dabei Fluch der Karibik-Filmusik in Amf (ASURO music file) umzuschreiben...
^^

MfG,
Adrian

damaltor
23.07.2007, 10:17
wenn man den motoren zu weinig spannung gibt, um zu fahren, dann geben die ein pfeifen von sich. damit kann man durchaus musik machen =)

M1.R
23.07.2007, 13:39
Hallo,

am Samstag hat mein Sohn zwei Lieder geschrieben.


Da ist mir nur aus meiner Kindheit "Bruder Jakob" eingefallen.
Bruder Jakob, Kanon, zweistimmig
und
Amazing Grace, zweistimmig.

Da wir an der 1KB-Ram Speicher - Hürde gescheitert sind, haben wir jedes Lied in einem eigenen Programm untergebracht.


In der Routine begrenzt der 1KB-Ram Speicher die Anzahl der Noten, da alle Arrays im RAM liegen. Man könnte wesentlich mehr Noten unterkriegen, wenn man die Noten im Flash ablegt. Das geht mit progmem ....
Danke, ich werde mich, sobald ich Zeit habe mit "progmem" auseinandersetzen.

Gruss
M.

Hier die beiden .hex - Dateien:

Sternthaler
23.07.2007, 23:30
@M1.R
Vielen Dank an deinen Sohn.
Mein Sohn kann es nicht fassen, was der Asuro alles kann. (Ich bin auch immer überrascht.)

harry3
25.07.2007, 20:27
Sehr geniale Idee, gefällt mir!

Hier noch 2 Lieder.
Die Noten sind meiner Meinung nach etwas zu schnell, ich hab ein bisschen an der Notenlänge geschraubt:



#define EIGHTH 300
#define QUARTER 600
#define HALF 1200
#define FULL 2400





/*Für Elise*/
uint16_t hs_lied[]={
E6,EIGHTH,
ES6,EIGHTH,
E6,EIGHTH,
ES6,EIGHTH,
E6,EIGHTH,
H5,EIGHTH,
D6,EIGHTH,
C6,EIGHTH,
A5,EIGHTH,
_OFF,EIGHTH,
C5,EIGHTH,
E5,EIGHTH,
A5,EIGHTH,
H5,QUARTER,
_OFF,EIGHTH,
E5,EIGHTH,
AS5,EIGHTH,
H5,EIGHTH,
C6,QUARTER,
_OFF,QUARTER,
E6,EIGHTH,
ES6,EIGHTH,
E6,EIGHTH,
ES6,EIGHTH,
E6,EIGHTH,
H5,EIGHTH,
D6,EIGHTH,
C6,EIGHTH,
A5,EIGHTH,
_OFF,EIGHTH,
C5,EIGHTH,
E5,EIGHTH,
A5,EIGHTH,
H5,QUARTER,
_OFF,EIGHTH,
E5,EIGHTH,
C6,EIGHTH,
H5,EIGHTH,
A5,HALF,

STOP,STOP
};



/*Oh when the sains*/
uint16_t sains[]={
F5,QUARTER,
A5,QUARTER,
B5,QUARTER,
C6,FULL,
F5,QUARTER,
A5,QUARTER,
B5,QUARTER,
C6,FULL,
F5,QUARTER,
A5,QUARTER,
B5,QUARTER,
C6,HALF,
A5,HALF,
F5,HALF,
A5,HALF,
G5,FULL,
A5,QUARTER,
A5,QUARTER,
G5,QUARTER,
F5,HALF,
F5,QUARTER,
A5,HALF,
C6,HALF,
C6,QUARTER,
B5,FULL,
B5,QUARTER,
A5,QUARTER,
B5,QUARTER,
C6,HALF,
A5,HALF,
F5,HALF,
G5,HALF,
F5,FULL,

STOP,STOP
};

Grüße,
Harri

Sternthaler
25.07.2007, 22:29
Und schon ist es raubkopiert.
Natürlich auch mit Dank an harry3

stochri
26.07.2007, 21:19
Hier noch 2 Lieder.
Die Noten sind meiner Meinung nach etwas zu schnell, ich hab ein bisschen an der Notenlänge geschraubt:

Super! wieder ein 2 Musikstücke mehr für den ASURO!


Arrowhsasuro.h

Eigentlich keine schlechte Idee, ein Programm mal in deutscher Sprache zu halten. Es gibt tatsächlich einige Leute, die mittlerweile der Meinung sind, in der Muttersprache zu schreiben und zu denken führt zu wesentlich besseren Ergebnissen.

Ansonsten gibt es in der Lib2.70 auch schon Turn und Go.

Gruß,
stochri

Rasias
28.07.2007, 12:02
Hallo,

am Samstag hat mein Sohn zwei Lieder geschrieben.



das war ich, bald kommt auch noch ein Video in's Internet O:)

Sternthaler
30.07.2007, 02:03
Hallo Rasias,
willkommen im Club der Musikanten, bzw. bei den Asuro-und Roboter-Fan's. Mach weiter mit der Musik und dem Asuro und lass die Video's sein. Du wirst bald keine Zeit mehr für so einen Schnick-Schnack haben, wenn du erst einmal mit dem Asuro angefangen hast. Soll eine aufmunternde 'Warnung' sein. ;-)
Natürlich werden ich mir aber auch deine Videos ansehen. :)

Rasias
30.07.2007, 18:50
willkommen im Club der Musikanten, bzw. bei den Asuro-und Roboter-Fan's. Mach weiter mit der Musik und dem Asuro und lass die Video's sein. Du wirst bald keine Zeit mehr für so einen Schnick-Schnack haben, wenn du erst einmal mit dem Asuro angefangen hast. Soll eine aufmunternde 'Warnung' sein.
Natürlich werden ich mir aber auch deine Videos ansehen.

Ich werde mich wahrscheinlich eh nicht so viel damit beschäftigen da ich kaum Zeit habe und keine lust habe mir den ASURO zusammenzubauen,
das programmieren macht mir eh mehr spaß(hab zwar noch nicht viel gemacht aber ich werd damit anfangen).
Na ja weiß nich ob ich noch mal so ein Video mach



Hier ist der Link zum Thred von den Videos:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=32782&sid=19de66e2e7fe2da30526715d018ff3bc

M1.R
30.07.2007, 20:20
das programmieren macht mir eh mehr spaß(hab zwar noch nicht viel gemacht aber ich werd damit anfangen).

na dann mach mal - der ASURO M1.R freut sich schon auf deine Programme!:wink:

Gruss
M.

Sternthaler
31.07.2007, 00:06
@Rasias & @M1.R
Videos gefunden und für gut erklärt.
Die Küchenerkundung sieht super aus durch die 'Suchbewegungen' die der Asuro so zwischendurch einlegt.

@M1.R
Das nenne ich mal ein großzügiges Angebot. (Aber bestimmt erst wenn die Schulaufgaben fertig sind?)

Rasias
31.07.2007, 12:32
(Aber bestimmt erst wenn die Schulaufgaben fertig sind?)

Das wird kaum ein Problem sein.
Zimmer aufraümen usw. wird eher ein problem

Sternthaler
31.07.2007, 13:35
Oh backe,
das kommt mir sehr bekannt vor. (An meine Zeit kann ich mich noch gut erinnern, da ich das nun auch von meinen beiden Rackern immer wieder vorgeführt bekomme.)
Komisch ist es aber, dass immer Zeit für Kumpel's übrig bleibt. Scheint irgend ein Naturgesetzt zu sein ;-)

Rasias
31.07.2007, 20:48
Tja!

Zeit hab ich auch immer noch,
aber eher um an den Computer zu gehen!

Sternthaler
31.07.2007, 21:35
Na ist doch super!
Dann kann das Angebot von M1.R von ja in die Tat umgesetzt werden ;-)
Oder sind da eher die bösen, böösen, bööööösen Spiele am PC, die zu ihm hin ziehen? :-$

Sternthaler
01.08.2007, 03:26
Hallo zusammen,
da ich auch ein Asuro-Musiker werden wollte, gibt es hier auch mal etwas von mir.
Nachdem ich da so ein paar Noten eintippen wollte, meine Frau aber erst stundenlang nach der Schreibweise in den Notenblättern ausquetchen musste und mein Sohn dann die Geduld aufbrachte mir die ersten Noten zu übersetzen habe ich beschlossen nicht auf den 'guten Ton', sondern auf 'mehr Ton' umzusatteln.
Eigendlich sollte "The entertainer" eure Ohren erreichen, nun sind es die ersten beiden Notenzeilen, und die noch falsch,
---> aber dafür verbrauche ich nun pro Note nur noch EIN BYTE, und nicht mehr VIER BYTE.

Das zumindest wollte ich euch nicht vorenthalten.

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.

P.S.: Beim Einschalten des Asuros unbedingt die Ohren zuhalten.
P.P.S.: Weitere Erklärungen sind im Source enthalten. Is ja schon spät geworden ;-)

Rasias
01.08.2007, 06:33
Oder sind da eher die bösen, böösen, bööööösen Spiele am PC, die zu ihm hin ziehen? :-$

So böse sind die auch nicht!
Aber vor allem sind es andere foren die midh zu ihm ziehen

M1.R
01.08.2007, 09:19
Hallo Sternthaler,


aber dafür verbrauche ich nun pro Note nur noch EIN BYTE, und nicht mehr VIER BYTE.
super!

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:


#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.

Sternthaler
01.08.2007, 13:42
Hallo M1.R,
es gibt keine dummen Fragen, nur dumme Antworten.


du definierst erst auf "herkömmliche" Art: ...
mir ist nicht klar welche Variante der ASURO jetzt abspielt.
Such mal im Source nach "USE_FREQUENCE".
Hinter dem Versions-Kommentar sind 2 alternativ zu verwendende Zeilen:
//#define USE_FREQUENCE JA
#undef USE_FREQUENCE
Wenn du nun weiter im Source sucht, tauchen die Stellen Code auf, die dann alternativ beim compilieren übersetzt werden. Somit wird bei der hier vorgenommenen Einstellung nur das übersetzt, was hinter den 'unscheinbaren' #else-Zeilen im Code steht.
Schreibst du:
#define USE_FREQUENCE JA
//#undef USE_FREQUENCE
dann werden die Teile hinter "#ifdef USE_FREQUENCE" (bis zum #else) kompiliert.


Bei unseren Liedern gibt noch die Unterscheidung angestossene und gebundene Töne und ausserdem Triolen:
Ach du meine Güte. Davon hat mir meine Frau gar nichts gesagt.
Tut mir leid das geht so nun nicht bei meiner aktuellen Version.
Wenn ich mir die von dir angegeben Defines ansehe, beziehen sich die Namen (angestossen, ..) ja auf die Tonlängen.
Genau hier habe ich aber nur 2 Bit's zur Verfügung und somit eben nur 4 verschieden Zeitmöglichkeiten.
Mal sehen, ob man die Daten pro Note 'irgendwie' auf 10 oder 11 Bit's erweitern kann. (Natürlich komprimiert, so dass man nicht 2 Byte verbraucht) Dann hätte man für die Zeitangaben 4 oder 5 Bit's (16 oder 32) Zeitangaben zur Verfügung.

P.S.: Ist schon toll, was ihr mit Noten zaubert. Geduld, Wissen und ein gutes Ohr fehlen mir da für die Musik.
P.P.S.: Die Blinkefunktion ist doch ganz in Ordnung. Aber mal sehen, was da noch zu 'verbessern' ist.

Bis später.

M1.R
01.08.2007, 21:02
Hallo Sternthaler,


#define USE_FREQUENCE JA
//#undef USE_FREQUENCE
dann werden die Teile hinter "#ifdef USE_FREQUENCE" (bis zum #else) kompiliert.

aha! danke!

meine Led - Blinkerei scheint doch nicht richtig zu funktionieren:
bei deinem Lied bleibt die rechte BackLED immer an, obwohl in deiner rechten Melodie auch OFF-Töne sind.
Eigentlich sollte die Rechte nur bei rechten Tönen, die Linke nur bei linken Tönen leuchten... ???

ganz toll wäre auch noch die Lautstärke zu definieren
wie hier: void Sound(uint16_t freq, uint16_t duration_msec, uint8_t amplitude);
und wenn dann noch der letze Ton leiser werden würde...

Gruss
M.

Sternthaler
02.08.2007, 00:44
Hallo M1.R,
ich bin bis jetzt noch nicht dazu gekommen nach den LED's zu sehen. Es kann aber natürlich sein, dass ich bei meiner Version etwas kaputt gemacht habe und die LED deshalb jetzt nicht mehr ausgeht. Bitte noch etwas Geduld.

Wo hast denn du den Funktionsaufruf her?
Amplitude bei den Motoren kann ich mir ja jetzt nur über verschiedenen Motor-Leistungen vorstellen.
Wenn das Sinn macht, bleibt nur noch die Frage wie viele Lautstärkestufen sollen es den sein?
2 Bit wären da eine datentechnisch gute Lösung.
- 6 Bit Frequenz (62 Möglichkeiten; 1 Ton aus; 1 Stop)
- 4 Bit Dauer (16 Möglichkeiten. Müsten auch deine angestossenen Töne beinhalten)
- 2 Bit Lautstärke (Also 4 Möglichkeiten + Ton aus)
------
= 12 Bit bzw 1,5 Byte. Damit kann man relativ einfach komprimieren.

M1.R
02.08.2007, 08:52
Wo hast denn du den Funktionsaufruf her?
Lib 2.7: asuro.h - sound.c


void Sound (
uint16_t freq,
uint16_t duration_msec,
uint8_t amplitude)
{
uint16_t n,k,wait_tics;
uint32_t period_usec,dauer_usec;

period_usec = 1000000L / freq;
dauer_usec = 1000 * duration_msec;
k = dauer_usec / period_usec;

//IR Interuptfreq=36KHz
//Wavefreq=18KHz

wait_tics = 18000 / freq;

MotorSpeed (amplitude, amplitude);

for (n = 0; n < k; n++)
{
MotorDir (FWD, FWD);
Sleep (wait_tics);
MotorDir (RWD, RWD);
Sleep (wait_tics);
}
MotorSpeed (0, 0);
}

#define BEEP sound (1000, 100, 255)

Gruss
M.

Sternthaler
02.08.2007, 09:31
Peinlich :oops:
Genau die LIB beacker ich ja mit.
(Mal nachsehen, ob ich dafür die Kommentare geschrieben/formatiert habe. --> Leider ja. Sound scheint bis vor kurzem nicht so mein Hauptaugenmerk gewesen zu sein. Immerhin war meine Vermutung schon ganz gut, dass es über die Motorleistung geht.)

Was ist mit den 2 Bit? Würden dir die reichen?

Sternthaler
02.08.2007, 13:31
So, eine neue Version.
Ich habe mal ein bisschen 'ausgemistet' und einiges in H-Dateien verlegt.
Ausserdem ist diese Version AKTUELL NICHT allgemein zu nutzen, sondern soll nur 4 verschiedene Lautstärken demonstrieren.
Die Lautstärke kommt noch nicht aus den Daten zu jeder einzelnen Note, sondern wird erst mal nur als Parameter an die Funktion StereoSound() weitergegeben.

Die Blinkerei mit den LED's beginnt nun auf alle Fälle schon mit der ersten Note.

M1.R
02.08.2007, 15:55
Hallo Sternthaler,

So, eine neue Version
du bist aber schnell!

Was ist mit den 2 Bit? Würden dir die reichen?
Da es mir ebenso geht wie dir

Geduld, Wissen und ein gutes Ohr fehlen mir da für die Musik

bin ich in dieser Hinsicht leider vollkommen abhängig von meinem Sohn. Er wird sagen können, wieviele verschiedene Lautstärken man braucht. Bis morgen abend ist er allerdings noch weg.

Um rauszufinden, ab welcher "Geschwindigkeit" man überhaupt etwas hört, habe ich ein Testprogramm (nur 1 Motor) geschrieben.
Mit "bloßen" Ohren höre ich ab ungefähr 20 etwas. Mit Mikro und Verstärker schon ab 1!


// lautstärke test

#include "asuro.h"

void Sound1(uint16_t freq, uint16_t duration_msec, uint8_t amplitude)
{
uint16_t wait_tics;
uint32_t n,k,period_usec,dauer_usec;

period_usec=1000000L/freq;
dauer_usec=1000*(uint32_t)duration_msec;
k=dauer_usec/period_usec;

//IR Interuptfreq=36KHz
//Wavefreq=18KHz

wait_tics=18000/freq;

MotorSpeed(amplitude, 0);

for(n=0;n<k;n++)
{
MotorDir(FWD,FWD);
Sleep(wait_tics);
MotorDir(RWD,RWD);
Sleep(wait_tics);
}
MotorSpeed(0,0);

}



int main(void)

{
Init();

BackLED(ON,ON);
StatusLED(RED);
Sound1 (1000, 1000, 1);
StatusLED(YELLOW);
Sound1 (1000, 1000, 2);
StatusLED(GREEN);
Sound1 (1000, 1000, 3);
StatusLED(RED);
Sound1 (1000, 1000, 4);
StatusLED(YELLOW);
Sound1 (1000, 1000, 5);
StatusLED(GREEN);
Sound1 (1000, 1000, 6);
StatusLED(RED);
Sound1 (1000, 1000, 7);
StatusLED(YELLOW);
Sound1 (1000, 1000, 8);
StatusLED(GREEN);
Sound1 (1000, 1000, 9);
BackLED(OFF,OFF);
StatusLED(RED);
Sound1 (1000, 1000, 10);
StatusLED(YELLOW);
Sound1 (1000, 1000, 20);
StatusLED(GREEN);
Sound1 (1000, 1000, 30);
StatusLED(RED);
Sound1 (1000, 1000, 40);
StatusLED(YELLOW);
Sound1 (1000, 1000, 50);
StatusLED(GREEN);
Sound1 (1000, 1000, 60);
StatusLED(RED);
Sound1 (1000, 1000, 70);
StatusLED(YELLOW);
Sound1 (1000, 1000, 80);
StatusLED(GREEN);
Sound1 (1000, 1000, 90);
StatusLED(RED);
Sound1 (1000, 1000, 100);
StatusLED(YELLOW);
Sound1 (1000, 1000, 110);
StatusLED(GREEN);
Sound1 (1000, 1000, 120);
StatusLED(RED);
Sound1 (1000, 1000, 130);
StatusLED(YELLOW);
Sound1 (1000, 1000, 140);
StatusLED(GREEN);
Sound1 (1000, 1000, 150);
StatusLED(RED);
Sound1 (1000, 1000, 160);
StatusLED(YELLOW);
Sound1 (1000, 1000, 170);
StatusLED(GREEN);
Sound1 (1000, 1000, 180);
StatusLED(RED);
Sound1 (1000, 1000, 190);
StatusLED(YELLOW);
Sound1 (1000, 1000, 200);
StatusLED(GREEN);
Sound1 (1000, 1000, 210);
StatusLED(RED);
Sound1 (1000, 1000, 220);
StatusLED(YELLOW);
Sound1 (1000, 1000, 230);
StatusLED(GREEN);
Sound1 (1000, 1000, 240);
StatusLED(RED);
Sound1 (1000, 1000, 250);

StatusLED(OFF);



while (1);
return 0;
}


nochmal zu unseren gebundenen und angestoßenen Tönen:
für jede Tonlänge gibt es ja beide Varianten, wobei sich der angestoßene Ton aus zwei Tönen zusammensetzt: 20ms aus und dann Länge angestoßen = gebundener Ton - 20ms.

Das bedeutet, dass man in der Melodie für die angestoßenen Töne immer zwei Töne schreiben muss.

Beispiel:
#define vierg 750 //viertel gebunden
#define viera 730 //viertel angestoßen
#define anst 20 //Anstoßzeit = Differenz

Ein angestoßener Ton::
_OFF,anst,
F5,viera,

Vielleicht fällt dir hierzu ja auch noch eine Vereinfachung ein?

Gruss
M.

PS: Wenn es dir gelingt, den ASURO gleichzeitig während er Musik macht auch noch fahren zu lassen, bekommst du von mir einen ASURO-MUSIK-ORDEN! :wink:

Sternthaler
02.08.2007, 16:20
ASURO-MUSIK-ORDEN?
Da stehe ich drauf! Mach dich bereit die Verleihungsfeier zu organisieren :cheesy:
Allerdings sollten Silber und Gold für robo.fr und seinen 'Vorprogrammierer' (falls vorhanden) reserviert werden ;-)

Deinen Lautstärke-Test sehe ich mir nacher an. Ich muss noch einkaufen gehen. (Bin ab heute früh 06:15 Strohwitwer. PC ist schon ganz heiß gelaufen!)

Sternthaler
02.08.2007, 18:06
Hallo M1.R,
hast du die Vorbereitungen abgeschlossen? Ich bin fertig \:D/

Wahrscheinlich wirst du das ganze noch nicht gelten lassen, da die Motoren 'etwas' lauter als das Lied sind. Aber wenn man genau hin hört ist das Lied vorhanden.

Zu deinem Lautstärke-Testprogramm.
Ja, ich erkenne es nun wieder. Ist aus der LIB. (Info: Da werden beide Motoren gleichzeitig benutzt.)
Mit deinem Testergebnis liegen wir beide so ziemlich gleich. Bei meinem Asuro kann ich ganz, ganz leise so ab 15 etwas hören. Dies entspricht auch den Werten, die ich in meinem vorhin geposteten Lautstärketestprogramm festgestellt hatte. Sinnvoll scheint dann als unterste Lautstärke wohl etwas über unseren Werten zu sein.
Na, warten wir mal auf den 'verlorenen Sohn'.

M1.R
02.08.2007, 19:27
Hallo M1.R,
hast du die Vorbereitungen abgeschlossen? Ich bin fertig \:D/
du bist viel zu schnell für mich! Der Orden ist noch in der Entwurfsphase!


Wahrscheinlich wirst du das ganze noch nicht gelten lassen, da die Motoren 'etwas' lauter als das Lied sind. Aber wenn man genau hin hört ist das Lied vorhanden.Ich hätte nicht gedacht, dass das überhaupt möglich ist! Ich würde es trotz lauten Fahrgeräuschen gelten lassen unter der Bedingung, dass du mir erklärst was du da programmiert hast.


(Info: Da werden beide Motoren gleichzeitig benutzt.)
Ich habe doch einen "abgeschaltet":
"MotorSpeed(amplitude, 0); "

Gruss
M.

Sternthaler
03.08.2007, 01:42
Ja, oh Mist, übersehen, (MotorSpeed (.. , 0))

Uff, jetzt kann ich aber wenigstens das 'gelten lassen' einheimsen. (Hoffnung)
In StereoSound() ist eine Stelle, an der die Motoren auf FWD bzw. RWD gesetzt werden.
Die davor stehende IF-Abfrage teilt den Wert aus phase[1|2] genau in 50% zu 50% ein. (0x8000 ist nun mal die Hälfte von 0xFFFF)
Wenn man hier die Abfrage 'zugunsten' von FWD ändert, fährt der Asuro mit jeder Note ein Stückchen vorwärts.
Genau das ist auch der Grund, warum er nicht geradeaus fährt. Wird keine Note gespielt, dann fehlt diese 'Mogelei' für das Fahren, und die 'Note am anderen Motor' dreht den Asuro.

P.S.: Wenn es hilft, spende ich den ASURO-MUSIK-ORDEN für einen guten Zweck. Aber das Design möchte ich doch mal sehen. (Wenn es so gut ist wie so manches Video, muss ich über das Spenden natürlich nochmal nachdenken.) [-o<

Rasias
03.08.2007, 21:54
so der verlorene sohn ist da

Man brauht vier Tempi

f - forte - laut

mf - mezo-forte - halblaut

mp - mezo-piano - halbleise


p - piano - leise

damaltor
03.08.2007, 22:22
tempi = geschwindigkeiten...

Sternthaler
04.08.2007, 15:51
Jubel, dann sollten ja tatsächlich 2 Bit's ausreichen.
@Rasias
Kannst du bitte mal mithilfe des Programms deiner Mutter oder dem von mir rausbekommen, welche "tempi = geschwindigkeiten" dir da so am besten zusagen würden.

@damaltor
Na, wenn das jetzt nicht ein Zufall ist, dass der italienische Musikbegriff "tempi" sich nun tatsächlich auf eine Asuro-"Geschwindigkeit" anwenden läßt ;-). Ja, die Italiener waren schon immer ihrer Zeit weit vorraus. Siehe Leonardo und Galileo. :cheesy:
Hey, wo sind die Prinzenrollekekse? Terminplan?

damaltor
04.08.2007, 18:52
nee... heute gibts nur kaffeee...... =)

Rasias
04.08.2007, 21:24
Sorry,

meinte nicht Tempi, sondern

Volumina = Lautstaärken

hat anscheinend trotzdem gestimmt

Sternthaler
05.08.2007, 00:25
@Rasias
Ist schon angekommen.
Wir machen also das Asuro-Tempi zu deinem Volumina um die Lautstärken dann zu Asuro-Geschwindigkeiten umzusetzen. Ist doch alles klar ;-)

Hast du schon ein Ohr an den Asuro halten können, um 'gute' Lautstärkewerte zu erkunden?
Was hälst du von dem 'fahrenden Musikanten'? Ich glaube da brauchen wir keine weitere Energie reinzustecken.

M1.R
05.08.2007, 09:54
Hallo Sternthaler,

wir bitten um ein wenig Geduld, da wir auch noch andere "Verpflichtungen" haben. :wink:

Gruss
Rasias und M.

Rasias
05.08.2007, 13:25
Was hälst du von dem 'fahrenden Musikanten'? Ich glaube da brauchen wir keine weitere Energie reinzustecken.

Eigendlich ist es gut aber der Motor ist eben zu laut
des wird nich besser

Rasias
05.08.2007, 14:45
Hier sind die vier Lautstärken!
:-({|=

Rasias & M.

// lautstärken

#include "asuro.h"

void Sound1(uint16_t freq, uint16_t duration_msec, uint8_t amplitude)
{
uint16_t wait_tics;
uint32_t n,k,period_usec,dauer_usec;

period_usec=1000000L/freq;
dauer_usec=1000*(uint32_t)duration_msec;
k=dauer_usec/period_usec;

//IR Interuptfreq=36KHz
//Wavefreq=18KHz

wait_tics=18000/freq;

MotorSpeed(amplitude, 0);

for(n=0;n<k;n++)
{
MotorDir(FWD,FWD);
Sleep(wait_tics);
MotorDir(RWD,RWD);
Sleep(wait_tics);
}
MotorSpeed(0,0);

}



int main(void)

{
Init();


StatusLED(RED);
Sound1 (1000, 1000, 50); //piano
Sound1 (1000, 1000, 0);

StatusLED(GREEN);
Sound1 (1000, 1000, 120); //mezo-piano
Sound1 (1000, 1000, 0);

StatusLED(YELLOW);
Sound1 (1000, 1000, 170); //mezoforte
Sound1 (1000, 1000, 0);

StatusLED(RED);
Sound1 (1000, 1000, 255); //forte
Sound1 (1000, 1000, 0);



StatusLED(YELLOW);
Sound1 (1000, 1000, 50); //piano

StatusLED(GREEN);
Sound1 (1000, 1000, 120); //mezo-piano

StatusLED(YELLOW);
Sound1 (1000, 1000, 170); //mezoforte

StatusLED(RED);
Sound1 (1000, 1000, 255); //forte
StatusLED(OFF);



while (1);
return 0;
}

Sternthaler
06.08.2007, 01:33
Dank dir Rasias. Die Daten werde ich in einer weiteren Version berücksichtigen.

@M1.R
Keine Angst, gleich ist mein Urlaub um, und dann kann auch ich nicht mehr so schnell neue Versionen produzieren.

Ich habe mich mal im Buch "Das Buch der Musik für junge Leser" (erschienen 1971) etwas schlau gemacht. (Meine Frau hatte wohl die Nase voll von meiner ständigen Fragerei nach Noten und Zubehör und hatte mir dieses Buch aus dem Keller rausgekramt.)
Hier werden auch die Triolen erklärt. So wie ich es verstanden habe, werden hier nun 3 anstatt 2 Noten in der gleiche Zeit, wie eigendlich die 2 zu spielen sind, gespielt. Wenn das so ist, dann müsste man diesen Sachverhalt im Asuro berechnen lassen können, so dass die Notenangabe in unseren Liederstrukturen 'nur' einen Hinweis benötigen würden, und nicht eine eigene Zeit nutzen müsten. Die würde dann im Asuro berechnet.
Beispiel:
Spiele viertel Noten, aber die beiden letzten Noten als Triole:
C1 | L4,
D1 | L4,
E1 | L4 | Triole,
F1 | L4 | Triole,
G1 | L4 | Triole,
.
Die Idee nun wäre, dass die Längenangabe L4 (viertel Notenlänge) nur mit 2/3 der Zeit gespielt wird, da das 'Schlüsselwort' Triole den Asuro veranlasst die Zeit von L4 nur mit 2/3 zu berücksichtigen.

Natürlich benötigt die Information 'Triole' auch ein Datenbit, aber es müssten dann ja nicht für alle Zeitangaben (ganze, halbe, viertel, .., Note) zusätzlich noch die 2/3-tel-Werte gespeichert werden, die werden dann halt berechnet.

Ebenso müsste es doch dann auch möglich sein, die angestoßenen und gebundenen Töne in so einer Form zu 'beschreiben'
Beispiel: (von dir M1.R)
Ein angestoßener Ton:
_OFF,anst,
F5,viera,
würde zu:
F5 | L4 | anst,

Und ein gebundener Ton: (Ich glaube, dass es dies nicht gibt, oder von mir falsch verstanden ist? Ist 'gebunden' die eigendliche Notenlänge?)
F5,viera,
_OFF,anst,
würde zu:
F5 | L4 | gebund,
Der Asuro rechnet nun die zur L4-Angabe passende Spiel- und Pausenzeit aus, und setzt die Pause dann vor oder eben nach die eigendliche Note.

Auch zu den Lautstärken habe ich in dem Buch noch einiges gefunden.
Zum Glück hast du Rasias, ja nur 4 verschiedene Lautstärken angegeben. Das Buch führt 9 verschiedene Varianten auf!
Ich hoffe, dass so eine Angabe wie "fortepiano" (Für Nichtmusiker (wie meine Wenigkeit): Ein Ton soll im forte (laut) angesetzt und sofort ins piano (leise) zurückgenommen werden.) nicht vom Asuro umgesetzt werden soll. Oder doch? Ist das ein Kandidat für einen Platin-Asuro-Musik-Orden? ;-)

Rasias
06.08.2007, 16:56
bei der Trompete ist es so:

2 gebundene Töne hören sich an wie ein Ton der höher oder tiefer wird

angestossene Töne hören sich an wie zwei Töne und ein Musiker macht sie automatisch kürzer

Achteltriolen sind einen Schlag lang
Vierteltriolen 2


In Amazing Grace hab ich Achteltriolen benutzt

Rasias
07.08.2007, 19:52
also im Anhang ist eine "grafische" Darstellung der Noten längen

Hier noch mal als Schrift


1 Takt = 1/1 Note
1/2 Takt = 1/2 Note = 2 1/4 Noten
1/4 Takt = 1/4 Note = 2 1/8 Noten
3 1/8 Triolen = 1/4 Note
3 1/4 Triolen = 1/2 Note

Sternthaler
08.08.2007, 17:51
@Rasias
Ach herrje, dass muss ich erst einmal studieren.
Natürlich ein Dankeschön für das Bild.

Rasias
08.08.2007, 20:03
Tja ist halt nicht so einfach! :D :D :D

M1.R
08.08.2007, 21:50
Hallo Sternthaler,

Ist 'gebunden' die eigendliche Notenlänge?ja!



Platin-Asuro-Musik-Orden? ;-)ich glaube, die verschiedenen Farben gibts nur bei Medaillen!
Wie dem auch sei...
die Vorbereitungen für die Ordens-Verleihung sind fast abgeschlossen.
Eigentlich fehlt nur noch deine neue Version mit den verschiedenen Lautstärken, damit wir noch die passende Musik programmieren können.
Gruss
M.

Rasias
08.08.2007, 21:54
Ist 'gebunden' die eigendliche Notenlänge?
ja!

Bei ASURO: ja

Bei anderen Instrumenten soll der angestossene Ton theoretisch gleichlang sein wie der gebundene. Da der Klang nicht sofort verschwindet. Bei ASURO hört der Ton aber plötzlich auf!

jzd
10.08.2007, 11:25
Moin,
ist ja echt lustig mit der Musik ! :cheesy:
Ist euch eigentlich schon aufgefallen, dass man an die
Motoren auch Lautsprecher anschließen kann?
Ich hab bei mir einen 8 Ohm Lautsprecher mit einem
Widerstand von 150 Ohm davor angehängt.
Ohne den Widerstand dazwischen sollte man die
"Musik" jeodch nur mit Ohrenschützern genießen :-).

M1.R
14.08.2007, 22:01
Hallo Sternthaler,

hast du aufgegeben? :(
Wo bleibt die neue Variante mit den 4 Lautstärken?
Kein Interesse mehr am ASURO-MUSIK-ORDEN?
Falls doch, musst du dich nun bis Mitte September gedulden, da wir ab Donnerstag in Urlaub sind. :)

Gruss
Rasias & M.

Sternthaler
15.08.2007, 22:03
Hallo M1.R und Rasias,
nein, ich habe nicht aufgegeben, aber da mein Urlaub vorbei ist, und ich im Moment so zwischen 9:30 un 22:00 in der Firma rumhänge, bleibt dann leider nicht mehr viel Luft um alle Foren-Beiträge gleich stark zu berücksichtigen.
Bis jetzt gibt es aber schon eine neue Datenstruktur, so dass die bestehenden Notenangaben auch weiterhin funktionieren, und trotzdem noch weitere Angaben (Lautstärke und weiters) bei Bedarf dazu kommen können. Leider ist dadurch natürlich die Sparversion von 4 auf 1 Byte pro Note doch wieder entfallen. Es werden dann aber immerhin nur 2 Byte pro Note. Ich bleibe am Ball. (Oder gehe zum Ball?)
Ich wünsche euch einen schönen, erholsamen Urlaub.

Sternthaler
20.08.2007, 23:15
So, nun hatte ich wieder etwas Zeit, hier weiter zu machen.
Dabei ist mir noch ein merkwürdiger Fehler aufgefallen. Die Variablen timer[1|2] können nach meiner Rechnung größer als 16 Bit werden. Warum hat es bis jetzt eigendlich so nett funktioniert, dass es niemanden aufgefallen ist? Sie erreichen mit Sicherheit aber 32-Bit Datenlängen. (Hoffe ich wenigstens, dass meine im Kommentarkopf angegeben Rechnung stimmt.)

Und nun aber ganz viele Songs mit korrekten Noten bitte :-({|=

@Rasias
Ich habe die Lautstaerke beim testen 'verstellt'. Sie muesste in frequence.h nochmal von dir geprueft werden. (Suche nach 'echte Lautstaerke')
Auch die Pausenlänge für die 'angestossenen' Noten kann da bei '#define ANGESTOSSEN_PROZ' angepasst werden. Eingestellt sind jetzt 15 Prozent der Längen-/Zeitangabe einer Note.

Für diejenigen, die keine Triolen, Lautstärke und 'angestossene Noten' definieren möchten:
Laßt alles davon weg, und gebt nur "Note | Notenlänge ," an. Fast wie gehabt, außer dass das |-Zeichen anstatt des ,-Zeichen als Trenner zu nutzen ist.

Lange Rede, kurzes Programm:

Rasias
14.09.2007, 20:42
SUPER

V1 ist nen bisschen leise is aber nich weiter schlimm, wenns ainem zu leise ist kann man auch V2 nehmen


Schreib bald auch noch nen Lied mit allem drum und dran

M1.R
14.09.2007, 21:00
Hallo Sternthaler,


Großes Lob!

Sobald Rasias oder sonst irgend jemand passende Musik geschrieben hat, kann die AMOVF (Asuro-Musik-Orden-Verleih-Feier) stattfinden.

Nur eine kleine Frage noch:
warum leuchten die BackLEDs jetzt zufällig

// Schaltet die BACK-LEDs mal ein oder aus.
//
void SwitchBackLED (
uint8_t side)
{
uint8_t zuf;

zuf = zufall (); // Zufallszahlen zw. 0 und 255

if (zuf > 127)
PORTC |= side;
else
PORTC &= ~side;
}

und nicht mehr wie vorher passend zu ihrem Motor?

// Schaltet die BACK-LEDs mal ein oder aus.
//
void SwitchBackLED (
uint8_t side,
uint16_t angle)
{
if (angle > 0)
PORTC |= side;
else
PORTC &= ~side;
}
Gruss
M.

Sternthaler
14.09.2007, 22:57
Hallo EX-Urlauber,
ich hoffe ihr seit fit und munter.


V1 ist nen bisschen leise is aber nich weiter schlimm, wenns ainem zu leise ist kann man auch V2 nehmen
Ne, ist nicht notwendig. Dafür kannst du in der Datei frequenz.h bei unsigned char volume Angaben machen, wie laut/leise die Werte von V1 bis V4 sein sollen. Sonst verlierst du ja die Möglichkeit 4 verschiedene Lautstärken angeben zu können.


Nur eine kleine Frage noch:
warum leuchten die BackLEDs jetzt zufällig
Upps, irgendwie hatte ich aus deiner Frage, warum die LED's manchmal nicht blinkern, verstanden, dass hier eine Änderung notwendig ist. Ich hatte dann einfach mal so den Zufall zur Hilfe gerufen.

Rasias
15.09.2007, 16:00
OK!

Ist halt nen bisschen kompliziert :)

Sternthaler
15.09.2007, 23:20
Hallo Rasias,
hier mal der Ausschnitt aus der Datei frequenz.h:
/*-- echte Lautstaerke (Volume) ---*/
unsigned char volume [] =
{
255, // V4 F forte laut 255
100, // V3 MF mezzo-forte halblaut 170
50, // V2 MP mezzo-piano halb-leise 120
10 // V1 P piano leise 50
};
Hier kannst du die 4 Werte für die Volumen einstellen.
Aktuelle steht dort: 255, 100, 50 und 10 (Sind leider die von mir kaputt gespielten Werte)
Wenn du die Werte auf 255, 170, 120 und 50 änderst bekommst du die von dir am 05.08.2007 vorgeschlagenen Lautstärken. (Stehen ja auch hinten als Kommentar in den Zeilen)
Achte darauf, dass hinter der letzten Zahlenangabe KEIN Komma mehr steht.

M1.R
15.09.2007, 23:22
Hallo,

da sich hier nicht viel tut mit der Song-Programmiererei muss mein ASURO seine Lieder jetzt selber komponieren!

ASURO als Komponist:
ASURO komponiert eine Stereo-Melodie mit einer Dauer von 24 Sekunden und spielt sie einmal ab.
Bei jedem Neu-Einschalten komponiert er eine andere Melodie...
(Dateien im Anhang)

Vielleicht hat noch jemand Verbesserungsvorschläge?

@Sternthaler
ich habe die ursprüngliche StereoSound-Funktion benutzt, da ich keine Ahnung habe, wie ich meine Zufallswerte in deine Byte-Spar-Arrays reinbekomme.

Sternthaler
16.09.2007, 00:48
Na, wenn dass nicht eine geniale Arbeitserleichterung ist. \:D/

Allerdings habe ich bei Orffscher Musik nicht so richtig das Hochgefühl wie bei Punk, Beethoven oder Tina Turner.

Super M1.R

M1.R
08.10.2007, 19:56
Endlich!
Nachdem alle Vorbereitungen abgeschlossen sind (Rasias hat noch zwei Lieder mit Sternthalers neuester Version programmiert), eröffne ich jetzt die ASURO-MUSIK-ORDEN-Verleihfeier.
Eingeladen sind alle ASURO-Musik-Fans.

Rede:
"Wegen herausragender Leistungen bla, bla ...... verleihe ich nun den ASURO-MUSIK-ORDEN an die StereoSound Programmierer robo.fr und Sternthaler, an alle Vorprogrammierer und natürlich auch an die musikalischen BeraterInnen Sternthalers Frau und Rasias.
Die Berechtigten dürfen sich ihren Orden jetzt runterladen!
Viel Spaß und guten Appetit!"

Den Orden, Musik und ... findet ihr hier (http://www.swoenke.de/asuro/amovf/amovf.html)

Sternthaler
08.10.2007, 22:18
Ich glaub es einfach nicht !!!!!
Du M1.R, hast dir ja noch viel, viel, viel mehr Arbeit gemacht als alle Musikanten jemals verdient hätten.
Aber auf alle Fälle wird der Orden mit Stolz geschwellter Brust entgegengenommen und immer getragen. (Fast versprochen)

Es zeugt von ausgesuchtem Können, den richtigen Jahrgang vom Rot-Champus 'ASURO' mit den perfekt gewürzten Vorwiderstands-Häppchen zu kombinieren.
Ein Bravo für dieses excelente Buffet.

Es geht doch nichts über eine so gut gelungene Abendveranstaltung mit schwungvollen Reden und bester Musikuntermalung.

Gruß vom noch beschwingten Sternthaler.

damaltor
09.10.2007, 12:49
rofl.... ihr seid ja geil XD

robo.fr
09.10.2007, 17:42
Ein Lob auch von mir.
Das Duo Trompete/Asuro ist besonders lustig. Zum Glück bin ich nicht sonderlich musikalisch, sonst würde ich denken, der ASURO liegt bei der "amazing grace" manchmal einen halben Ton zu tief.

Gruß,
robo

robo.fr
09.10.2007, 22:07
Gerade habe ich ein schönes Video gefunden, zur Musik macht sich ein Tänzchen nicht schlecht:
http://www.spiegel.de/videoplayer/0,6298,22553,00.html

Sternthaler
09.10.2007, 22:48
Schöner Tanz, da würde sich ein Asuro als Schiedsrichter zum pfeifen ganz gut machen.
Ob mit Ente/Gans oder ohne ist dann egal.

Gruß Sternthaler

M1.R
10.10.2007, 15:34
Hallo allerseits,

danke fürs Lob!
Freut mich, dass ihr Spass habt!

Mir hat die "Teamarbeit" in diesem Thread auch sehr viel Spass gemacht - danke!

Mit der Hoffnung auf weitere gemeinsame Projekte,
Gruss
M.

R0µ30
12.10.2007, 11:31
die ganzen lieder sind ja mal der hamma XD

hat einer von euch (oder kann einer von euch) das super mario theme mal in sone datei schreiben ? :cheesy:

M1.R
15.10.2007, 19:59
hat einer von euch (oder kann einer von euch) das super mario theme mal in sone datei schreiben ? :cheesy:

Kannst du doch selber machen!

Entweder du benutzt "ASURO_DDS_Sound" von robo.fr und trägst die Noten in der ASURO_DDS_Sound.c ein, oder du nimmst die Version "sound-v05" von Sternthaler, dann müssen die Noten in die Datei melody.h.

Gruss
M.

R0µ30
17.10.2007, 10:42
oki doki ... mach ich des mal ^^

hansi1006
12.01.2009, 17:23
Kann der Motor bei dieser Musik eigentlixh Schaden nehmen??
MfGH
Johannes

Sternthaler
17.01.2009, 20:58
Hallo hansi10006,

die Frage habe ich mir auch schon gestellt.
Da aber selbst nach dem ca. 100-fachem abspielen aller Songs von hier und durch meine Beteiligung beim programmieren, auch so einige falsche Ansteuerungen der Motoren dabei waren, denke ich, dass die Teile robust genug sind.
Bis jetzt habe ich jedenfalls keine Beeinträchtigung der Motoren feststellen können.

Gruß Sternthaler

malediction
20.01.2009, 17:48
also ansich besteht so ein moto doch aus einem dauermagenten und einem e-magneten (oder 2 e-magneten).
um die drehung zu erzeugen muss daher die anliegende spannung in einer gewissen frequenz umgepolt werden, sodass die magneten sich abstoßen/anziehen und das ritzel sich dreht.

daher sind die dinger es ja gewohnt oft umgpolt zu werden und ich könnte mir vorstellen, dass die frequenz, die ja bei der soundausgabe einfach nur um einiges höher ist, als normal, da auch keinen einfluss nimmt.

aber ich weiß es nicht... :D

hansi1006
06.02.2009, 17:21
Vielen Dank für die Antwort.
Dann werde ich mich jetzt auch mal an die Arbeit wagen und versuchen eigene Lieder zu komponieren.

MfG
hansi1006

ASUR0
28.03.2010, 15:49
ja, ich habe mich am Wochenende hingehockt und mit der Sound-Funktion in der AsuroLib ein Lied zusammengebastelt.
Funktioniert auch ziemlich gut.

Die .hex Datei für's Lied könnt ihr euch runterladen.
Würde mich freuen, wenns jemand ausprobiert
(den Titel verrate ich noch nicht O:) )

Ich bin neu hier im Forum (meine erste Post...) und freue mich darauf, den Asuro zu programmieren.

Sternthaler
08.04.2010, 23:27
Hallo ASURO,

erst einmal willkommen im Forum.

Da warst du ja irre fleißig mit der Notenzusammenstellerei! Bravo.
Das Lied ist ja sagenhafte 2,5 Minuten lang. Und nach Stereo hört es sich tatsächlich auch an.
Hast du 'nur' die Noten geschrieben, oder hast du die Datenspeicherung noch weiter verdichtet bei der Songlänge?

Auch wenn ich das Lied nicht kenne, muss wohl an diesem 432Hz-Stimmchen liegen, kann ich nur sagen, dass es auf meinem Asuro ganz gut klingt.

Gruß Sternthaler

radbruch
10.04.2010, 19:02
Hallo

Das Liedchen kenne ich auch nicht. Und 70 Pages erscheinen mir auch recht wenig. Mein asuro-Clone klingt damit etwa so:

http://i1.ytimg.com/vi/0eWzkXVaRtk/1.jpg (http://www.youtube.com/watch?v=0eWzkXVaRtk)
http://www.youtube.com/watch?v=0eWzkXVaRtk

btw funktioniert das neue Flashtool v1.53 bei mir wunderbar:)

Gruß

mic

ASUR0
12.04.2010, 12:23
Hallo,

Danke erstmal, dass ihr mein Programm ausprobiert habt. :)

Zum Lied, es ist ein Kirchenlied und heißt "Vergiss es nie".

Ich habe keine Datenkompression verwendet, aber das Lied wiederholt sich an einigen Stellen (es gibt drei Strophen..), so bestehen z.B. die Strophen aus zwei fast gleichen Teilen, die ich dann zusammengefasst habe.

Zurzeit aber arbeite ich an der Odometrie...

Gruß

ASUR0

HiroakiShi
27.04.2011, 15:06
Hallo erstmal
auch wenn der Thread nicht mehr aktuell ist hoff ich dass ich schnelle Antwort bekomme.
Ich bin noch ziemlich neu beim Programmieren.
Bis jetzt hab ich es geschafft eine Mono-Melodie zu erstellen, wobei ich jeden Ton aber einzeln geschrieben hab.
Ich hab auch die Programme hier runtergeladen.
Ich versteh aber nicht, wie das mit dem StereoSound funktioniert. Ich könnts zwar einfach abschreiben und bei den Notenwerten was änder für ein andere Melodie, aber ich mache zurzeit bei der SIA mit und muss dort ein Projekt vorstellen. Und ich würd gerne das mit dem Musik abspielen machen.
Bitte kann mir mir jemand erklären was da genau programmiert wird?
Es handelt sich um diese Stelle:


#define FS 31250 // controlled by timer2 8Mhz/256

void StereoSound(uint16_t *noten1, uint16_t *noten2)
{
uint16_t index1=0,index2=0;
uint16_t timer1,timer2;
uint16_t phase1,phase2,angle1,angle2;
uint8_t dir1=FWD,dir2=FWD;
uint8_t speed1,speed2;

angle1=(uint32_t)noten1[index1++]*65536/FS;
timer1=noten1[index1++]*(FS/1000);
if(angle1==0)speed1=0;
else speed1=255;

angle2=(uint32_t)noten2[index2++]*65536/FS;
timer2=noten2[index2++]*(FS/1000);
if(angle2==0)speed2=0;
else speed2=255;
MotorSpeed(speed1,speed2);

cli(); // stop all interrupts
while(timer1!=0)
{
timer1--;
timer2--;

if(timer1==0)
{
angle1=(uint32_t)noten1[index1++]*65536/FS;
timer1=noten1[index1++]*(FS/1000);
if(angle1==0)speed1=0;
else speed1=255;

MotorSpeed(speed1,speed2);
}

if(timer2==0)
{
angle2=(uint32_t)noten2[index2++]*65536/FS;
timer2=noten2[index2++]*(FS/1000);
if(angle2==0)speed2=0;
else speed2=255;

MotorSpeed(speed1,speed2);
}
phase1+=angle1;

if(phase1&0x8000) dir1=FWD;
else dir1=RWD;

phase2+=angle2;

if(phase2&0x8000) dir2=FWD;
else dir2=RWD;
MotorDir(dir1,dir2);

// sync with Timer2 ( 31250Hz )
while(!(TIFR&(1<<TOV2)));
TIFR|=TIFR&(1<<TOV2);
}
MotorSpeed(0,0);
sei(); // enable all interrupts


Ich hoffe man kann mir weiterhelfen
Gruß Hiroaki