Musik machen in Assambler

#662810
Lesenswert?

Hallo leute ich hab mal ne frage ich habe mit meinem Board ein Lied 
geschreiben, also alle meine Entchen in Assambler, ich benötige 
Konstante:

Meine Hardware:

myAVR Board 2.0

www.myAVR.de


Momentan:
:----------------------------------------------------------
; Konstanten:
.equ dauerH, 240
.equ dauerL, 0
.equ quite, 0
.equ tonC2, 109
.equ tonD2, 97
.equ tonE2, 87
.equ tonF2, 82
.equ tonG2, 73
.equ tonA2, 65
.equ tonH2, 58
.equ tonC3, 55
.equ d1, 16
.equ d2, 8
.equ d4, 4
.equ d8, 2
.equ d16, 1

melodie:
    .byte d4,tonC2,d4,tonD2,d4,tonE2,d4,tonF2
    .byte d2,tonG2,d2,tonG2
    .byte d4,tonA2,d4,tonA2,d4,tonA2,d4,tonA2
    .byte d1,tonG2
    .byte d4,tonA2,d4,tonA2,d4,tonA2,d4,tonA2
    .byte d1,tonG2
    .byte d4,tonF2,d4,tonF2,d4,tonF2,d4,tonF2
    .byte d2,tonE2,d4,tonE2
    .byte d4,tonG2,d4,tonG2,d4,tonG2,d4,tonG2
    .byte d1,tonC2
    .byte 0xFF,0xFF
:---------------------------------------------------------------

Mir Fehlen also Konstante wie zb. E3,D3,F3,G3,P, usw diese fehlen mir um 
andere Lieder zu schreiben hat da jemand anhnung ??

was ich schreiben will ist zb.

Nena: 99 Luftballons

C3(1/8) E3(1/16) C3(1/8) P(1/16) E3(1/8) D3(1/8) C3(1/16) A2(1/16) 
P(1/16) A2(1/16) P(1/16) A2(1/16) F3(1/16)F3(1/16) P(1/16) F3(1/16) 
P(1/8) F3(1/16) P(1/16) F3(1/8) E3(1/16) D3(1/8) P(1/16) C3(1/8) D3(1/8) 
E3(1/16)C3(1/8) E3(1/8) D3(1/8) C3(1/16) A2(1/16) P(1/16) A2(1/16) 
P(1/16) A2(1/16) C3(1/8) A2(1/16) C3(1/8) A2(1/8)C3(1/8) A2(1/16) 
C3(1/8) D3(1/16)

Brauch ich halt noch andere Noten kann mir bitte jemand Helfen gruß 
renaldo

PS: Hat jemand die Noten von Spiel mir das Lied vom Tod?
#662944
Lesenswert?

Renaldo B. wrote:
>
> Mir Fehlen also Konstante wie zb. E3,D3,F3,G3,P, usw diese fehlen mir um
> andere Lieder zu schreiben hat da jemand anhnung ??

Was hindert dich daran, die selber auszurechnen?
Der Frequenzunterschied von einem Halbton zum nächsten
macht einen Faktor von 12-te Wurzel aus 2 = 1.05946.
Da eine Oktave aus 12 Halbtönen besteht, hat ein C in der
nächst höheren Oktave genau die doppelte Frequenz
Hat also das A eine Frequenz von 440 Hz, so hat das A in
der Oktave darüber 880 Hz.

Allerdings bezweifle ich, dass du mit der bisherigen Art
der Klangerzeugung das hinkriegen wirst. Deine Konstanten
sind einfach zu klein, um da noch vernünftig in die Oktave
darüber reinrechnen zu können. Auf der anderen Seite wird
ein Byte nicht ausreichen um den Tonumfang der nächst tieferen
Oktave abdecken zu können.

Da wirst du wohl deine Soundgenerierung 'umschreiben' müssen.
Gast #662948
Lesenswert?

>Allerdings bezweifle ich, dass du mit der bisherigen Art
>der Klangerzeugung das hinkriegen wirst.

kann dem nur zustimmen.

@renaldo

les dich mal in das thema DDS ein. damit wirst du weniger probleme haben 
und bessere ergebnisse erzielen.
#663099
Lesenswert?

Renaldo B. wrote:
> Sry kanneuch geradenicht ganz folgen hat jemandmalein beispiel?

Wofür brauchst du ein Beispiel? Fürs Multiplizieren?

Dein C hat einen Wert von 109
Der nächst tiefere Ton, H, wäre dann bei
  109 * 1.05946, oder 115.48114, gerundet also 115
Nach H kommt AIS (oder B, je nachdem wie man es sehen will)
  115.48114 * 1.05946, macht 122.3476, gerundet 122
Danach kommt A
  122.3476 * 1.05946, macht 129.6224, gerundet 129
Danach kommt ...

Du musst dich schon auch mit den Dingen beschäftigen und nicht
nur stumpfsinnig abtippen.

Und falls das nicht klar ist, die Tonleiter geht:

  ...
  C
       CIS (DES)
  D
       DIS (ES)
  E
  F
       FIS (GES)
  G
       GIS (AS)
  A
       AIS (B)
  H
  ...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren