Author Topic: Tracker stress tests  (Read 21043 times)

8bitbubsy

  • Posts: 6
Re: Tracker stress tests
« Reply #25 on: 30 Oct '09 - 14:52 »
4. Listen to the MP3 saga supplied, that's from me recording through PT2...

Oh, you're comparing with PT2? Please note that XMPlay attempts to emulate PT1 (when "MOD playback mode" is set to "PT1"). Perhaps that would explain the difference then. I'm looking at the v1.2 source, and I can't find any evidence of what you claim in that. What source code version are you looking it?
PT1.1A and any newer version use this InvertLoop routine (still named FunkRepeat in PT1.2.asm, for any unknown reason)...
emax-doz.mod should sound exactly the same EFx-wise, should it be PT1.1A, PT1.2, PT2.x or any newer versions.
(I'm looking in the same source code as you)... Just take a closer look, I know it's messy, but you'll find out.

Ian @ un4seen

  • Administrator
  • Posts: 20400
Re: Tracker stress tests
« Reply #26 on: 30 Oct '09 - 16:37 »
(I'm looking in the same source code as you)... Just take a closer look, I know it's messy, but you'll find out.

If you have found the evidence in there, please point it out :)

To address your claims specifically, as I see it...

1) "n_wavestart" is only used is 2 places: "PlayVoice" and "UpdateFunk". It is set to the sample's loop start in "PlayVoice", and it is used/advanced in "UpdateFunk".

2) The "A6" register points to the channel's state structure, which includes the invert loop state.

3) I don't see "n_delay" anywhere. That's what leads me to believe that you may be looking at a different version.

8bitbubsy

  • Posts: 6
Re: Tracker stress tests
« Reply #27 on: 30 Oct '09 - 17:28 »
(I'm looking in the same source code as you)... Just take a closer look, I know it's messy, but you'll find out.

If you have found the evidence in there, please point it out :)

To address your claims specifically, as I see it...

1) "n_wavestart" is only used is 2 places: "PlayVoice" and "UpdateFunk". It is set to the sample's loop start in "PlayVoice", and it is used/advanced in "UpdateFunk".

2) The "A6" register points to the channel's state structure, which includes the invert loop state.

3) I don't see "n_delay" anywhere. That's what leads me to believe that you may be looking at a different version.
1) But is n_wavestart set to s->sample.loop_start *before* playing the sample or after the sample got played?

2) Can you go in details here? Does that mean that every channel has got a "n_glissfunk (speed)" variable?
 
3) n_delay = n_funkoffset

EDIT: http://pastebin.com/d4dfadeac
This is my current code... Well, it gives weird results and ends up crashing/segfaulting.. Can you spot any error?
« Last Edit: 30 Oct '09 - 17:39 by 8bitbubsy »

Ian @ un4seen

  • Administrator
  • Posts: 20400
Re: Tracker stress tests
« Reply #28 on: 2 Nov '09 - 13:23 »
1) But is n_wavestart set to s->sample.loop_start *before* playing the sample or after the sample got played?

n_wavestart is set when processing the instrument/sample column, so before the sample is played.

2) Can you go in details here? Does that mean that every channel has got a "n_glissfunk (speed)" variable?

Yes, each channel has its own n_glissfunk. Note that n_wavestart/n_glissfunk/etc are offsets into the per-channel structure.

3) n_delay = n_funkoffset

OK, that does indeed appear to never be reset, except for in UpdateFunk. That is also how XMPlay handles it.

8bitbubsy

  • Posts: 6
Re: Tracker stress tests
« Reply #29 on: 2 Nov '09 - 18:42 »
But when is n_loopstart, n_replen etc set? At the same time n_wavestart is reset?

http://pastebin.com/m6d6d57d2

Can you spot any errors? Look closely.. It still sounds weird  :(
EDIT: Actually, it sounds very close to correct! But no, sometimes it just sounds weird.. I think I'm very close now, but I guess it's a little error somewhere in my code!
« Last Edit: 2 Nov '09 - 19:08 by 8bitbubsy »

Ian @ un4seen

  • Administrator
  • Posts: 20400
Re: Tracker stress tests
« Reply #30 on: 3 Nov '09 - 13:12 »
But when is n_loopstart, n_replen etc set? At the same time n_wavestart is reset?

Yes, that is set at the same time (in PlayVoice).

Btw, when making recordings/comparisons, make sure you reload the file first so that it starts with fresh samples (not the inverted versions).