Hard Restart und Reset/Test Bit, vermutlich zum x-ten ...

  • Hard Restart und Reset/Test Bit, vermutlich zum x-ten ...

    Hallo zusammen,

    ich komme gerade nicht weiter ... mit meinem selbst gebauten Player klingt mein Title tune nicht wie es soll. Ich habe im Moment folgendes Vorgehen für "hard restart":

    Frame -2: ADSR auf 0000 (auch 0F00 getestet), Gate off (AND #$fe).
    Frame -1: -- nichts --
    Frame 0: ADSR auf Instrumentenwerte, $09 (Gate + Test) in Control register
    Frame 1: Erster Wert aus Instrumenten-Wavetable, Frequenzwerte

    Dabei werden Shadow-Register verwendet, die von hinten in die echten Register kopiert werden, d.h. es wird immer zuerst SR, dann AD und dann das Kontrollregister gesetzt.

    Damit klingen die Bässe mit Wavetable 81, 21, 21, 21, 20 bei jeder Note leicht anders.

    Ich habe jetzt versucht, in "Frame 0" andere Werte zu setzen (ohne Testbit und/oder ohne Gate). Mit oder ohne Testbit konnte ich keinen nennenswerten Unterschied feststellen, wenn ich Gate weglasse, so dass erst in "Frame 1" Gate aktiviert wird, klingt alles sauber/korrekt, aber viel zu weich -- bei dem Bass-Instrument ist das erste Frame 81 überhaupt nicht mehr hörbar :thumbdown:
    Außerdem scheint der Ton leicht zu spät zu beginnen -- legato-Noten klingen so nämlich gefühlt zu früh.

    Was genau hat es denn mit "Gate 1 Frame vor der Wellenform setzen" auf sich? Man findet diese Technik in dieser etwas alten Diskussion auf csdb ... während dieser Artikel auf codebase64 nicht davon spricht...

    Was ich gerne hätte wäre ein scharfes Attack (wie es mein Player aktuell mit $09 macht), bei dem das Instrument trotzdem jedes mal gleich klingt (was es tut, wenn ich Gate noch deaktiviert lasse in "Frame 0"). Hat jemand eine Idee, wie ich das erreichen kann?