Musik machen in Assambler

OP #662810
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?
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
>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.
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

Eine eigene Frage? Dieser Thread ist über 19 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.