hört sich sicher für Euch langweilig an, aber als Neuling popel ich bereits ne Weile
an dem Problem, dass ich eine Tonleiter basteln will die nicht 4000 Zeilen Text hat und ich jeden Ton in einzeln hoch zähle
tone(11,245,1000);
tone(11,246,1000);
tone(11,247,1000);......
sondern das es mehr so aussieht:
int Anstieg=0
tone(11, Ansteig,1000);
Anstieg=Anstieg+5
So das der Ton bei 0 HZ anfängt in 5 HZ schritten hoch zu zählen.
Um eine Tonleiter zu erzeugen solltest du
eher toneFreq *= HALBTONSCHRITT; verwenden.
Der chromatische Halbtonschritt ist übrigens der Faktor 1,059463094359 (12te Wurzel aus 2)
Ein Ganztonschritt sind zwei Halbtonschritte, also 1,059463 * 1,059463 = 1,122462
Eine "normale" Dur-Tonleiter besteht übrigens aus den Schritten
*1,122462
*1,122462
*1,059463
*1,122462
*1,122462
*1,122462
*1,059463
und sollte danach ziemlich genau bei der doppelten Frequenz des Anfangstons sein.
Aber du (@jeep-timo) wolltest es ja eine einfach for-Schleife haben, daher die 12 Halbtonschritte bis zur doppelten Frequenz
Hast du aber.
Na gut, hat schon @combie so vorgegeben, und welcher Ansatz einfacher (lesbar) ist, ist Geschmackssache.
Einfacher zu zitieren war deiner. Angesprochen ist jeder, der das Wort "Tonleiter" verwendet.
Mein Ansatz ist nur, dass man eher den Operator *= statt += verwenden sollte.