jpage8580 / GTUltra

GTUltra - Extensively modified GoatTracker Stereo (2.76) version. With many new features. See the GTUltra.PDF file for full details
GNU General Public License v2.0
88 stars 10 forks source link

1st frame waves' in-tracker behavior doesn't match export (or GT2 behavior) #37

Closed acrouzet closed 1 year ago

acrouzet commented 2 years ago

In GTUltra's exported files (and the original GT2's tracker playback), the 1st frame wave's pitch matches that of the last frame before the new note. In GTUltra's tracker playback, the 1st frame wave's pitch is that of the note being played.

In addition to this being a compatibility issue between GT2 and GTU, mismatch between preview and export may cause issues in complex sound arrangements where the 1st frame wave of an instrument isn't 0/test bit.

jpage8580 commented 2 years ago

Thanks for this. Can you tell me if this was also the case for the original GT/GTStereo editor? Will make it easier to track if it’s something that I’ve introduced.

On Sat, 10 Sep 2022 at 18:09, acrouzet @.***> wrote:

In GTUltra's exported files (and the original GT2's tracker playback), the 1st frame wave's pitch matches that of the last frame before the new note. In GTUltra's tracker playback, the 1st frame wave's pitch is that of the note being played. This mismatch between preview and export may cause issues in complex sound arrangements where the 1st frame wave of an instrument isn't 0/test bit.

— Reply to this email directly, view it on GitHub https://github.com/jpage8580/GTUltra/issues/37, or unsubscribe https://github.com/notifications/unsubscribe-auth/AYGMDBUIMNUC753NUAWYFITV5S6DPANCNFSM6AAAAAAQJNBNNE . You are receiving this because you are subscribed to this thread.Message ID: @.***>

acrouzet commented 2 years ago

It behaved like the export (1st frame wave uses previous frame's pitch) in the original GT2.

jpage8580 commented 2 years ago

Ahh. Apologies. You did say that originally.

Will try to track that down when I get time. A small sng repro would be useful.

Thanks for this Jason

On Sun, 11 Sep 2022 at 19:38, acrouzet @.***> wrote:

It behaved like the export (1st frame wave uses previous frame's pitch) in the original GT2.

— Reply to this email directly, view it on GitHub https://github.com/jpage8580/GTUltra/issues/37#issuecomment-1243019458, or unsubscribe https://github.com/notifications/unsubscribe-auth/AYGMDBTFVGT2IBJISYJ7KRTV5YRKZANCNFSM6AAAAAAQJNBNNE . You are receiving this because you commented.Message ID: @.***>

MAHBOD-85 commented 1 year ago

https://drive.google.com/file/d/1W9MH7rKWLnId5HPqyTVP_m_stRFVFlY3/view?usp=sharing Here is a reproduction file Notice how the pulse width is carried from the previous note but the pitch has been overwritten with the new note the overwriting of the pitch should come in the second frame wave instead of the first one

jpage8580 commented 1 year ago

Thanks - and apologies for not looking into this one sooner. I’m unsure how this can only happen in GTUltra editor vs GTStereo editor (which is what the code base used initially), as I did t think I’d changed anything in the playback code that could cause this.

Have you tested in GTStereo too? Will look at this as soon as I can. Although I’m away until next week

Cheers Jason

On Thu, 13 Jul 2023 at 15:55, Mahbod-Karamoozian @.***> wrote:

https://drive.google.com/file/d/1W9MH7rKWLnId5HPqyTVP_m_stRFVFlY3/view?usp=sharing Here is a reproduction file Notice how the pulse width is carried from the previous note but the pitch has been overwritten with the new note the overwriting of the pitch should come in the second frame wave instead of the first one

— Reply to this email directly, view it on GitHub https://github.com/jpage8580/GTUltra/issues/37#issuecomment-1634393685, or unsubscribe https://github.com/notifications/unsubscribe-auth/AYGMDBUQ6FLALTTOU53T7NLXQAD6BANCNFSM6AAAAAAQJNBNNE . You are receiving this because you commented.Message ID: @.***>

jpage8580 commented 1 year ago

Hey I managed to take a quick look at the code. Haven't had the chance to test with your sng, but I think I found where the pitch was getting set.

Can you test this version?

https://www.dropbox.com/s/fh92oz4ck49mba1/gtultra.exe?dl=0

Cheers Jason

On Thu, Jul 13, 2023 at 5:34 PM Jason Page @.***> wrote:

Thanks - and apologies for not looking into this one sooner. I’m unsure how this can only happen in GTUltra editor vs GTStereo editor (which is what the code base used initially), as I did t think I’d changed anything in the playback code that could cause this.

Have you tested in GTStereo too? Will look at this as soon as I can. Although I’m away until next week

Cheers Jason

On Thu, 13 Jul 2023 at 15:55, Mahbod-Karamoozian @.***> wrote:

https://drive.google.com/file/d/1W9MH7rKWLnId5HPqyTVP_m_stRFVFlY3/view?usp=sharing Here is a reproduction file Notice how the pulse width is carried from the previous note but the pitch has been overwritten with the new note the overwriting of the pitch should come in the second frame wave instead of the first one

— Reply to this email directly, view it on GitHub https://github.com/jpage8580/GTUltra/issues/37#issuecomment-1634393685, or unsubscribe https://github.com/notifications/unsubscribe-auth/AYGMDBUQ6FLALTTOU53T7NLXQAD6BANCNFSM6AAAAAAQJNBNNE . You are receiving this because you commented.Message ID: @.***>

MAHBOD-85 commented 1 year ago

This replicates the original GT2 behavior There is some problem with sustain F ADSR between the two and how it does not screw up in GT2 when running the file and modifying the ADSR but that is just emulators being more accurate overtime and the export seems to act the exact same way when seeing the sustain F ADSR (to just bug out like a SID chip would) You can close this issue now