Moin!
Ich bastle grade mal wieder an/mit einem ADSR-Hüllkurven-Synth rum, Basis ist (wie praktisch immer wenn jemand sowas mit Delphi macht

) das
Tutorial von Delphic.
So, nun habe ich grade ein Implementationsproblem was sich zu einer Sinnkrise ausgeweitet hat
Zitat: |
Wesentlich an den Hüllkurven ist jedoch, dass die einzelnen Abschnitte der AD-Hüllkurve in ihrer Länge von der Frequenz des Grundtones abhängig sind, weshalb man die Längen nicht in Zeitdauern angibt, sondern durch die Zahl der Schwingungen. |
Warum ist das eigentlich so? Das bedeutet doch, dass eine Note eine Minimallänge hat - nämlich
(A+D+S+R) / Samplerate. Oder andersrum betrachtet, wenn man die Sustain-Zeit aus der gewünschten Notenlänge berechnet (
S:=Duration-A-D-R), geht das irgendwann nicht mehr auf.
Soweit wäre das ja noch zu verschmerzen. Dann kann man halt keine 128stel Noten
ABER, und jetzt das Problem: Durch die Frequenzabhängigkeit ist diese Minimallänge umgekehrt proportional zur Frequenz. Das heißt, wenn z.B. A4 (440Hz) nur ein kurzes Attack hat, ist das bei A3(220Hz) schon doppelt so lang.
Warum macht man das also, und wie könnte man Noten trotzdem frequenzunabhängig beliebig lang haben?
Ich hab grade mal mit ein paar anderen Chiptune-SoftSynths gespielt, die haben meistens eine AD-Kurve mit extrem kurzem A, so gezielt dass genau die Notenlänge zum Decay gebraucht wird.
Viele Grüße,
Martok
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."