I just tested it to compare the accuracy of my own microcontroller MOD engine and the never implemented FunkRepeat effect:D It need linear interpolation and I found a small bug ? I can't open my one char directory name
FunkRepeat does not need linear interpolation. It loops through the sample loop points and reverts each byte, it does a 1..2..3..4[..] lookup, no interpolation at all.
@8bitbubsy I'm interested by the protracker funkrepeat EFx (not the old invertloop), I found this un4seen com forum ?topic=7554.0 and I also trying to learn your implementation inside your source code. All my favorites chiptune (and ODE2PTK.MOD ode_to_protracker.mod) are perfect inside my replayer as your win32 protracker or shism/milky tracker, but not the famous emax-doz.mod.
As I understand the sample is not at all altered, it's just the position of the loops that are modified?
@8bitbubsy OKEY !!!! this is very interesting. I must to alter the sample in real time inside my lightweight-as-possible mixing loop. I only hope that the bytes do not need to be changed several times (memory effect) ? My samples are read directly from the SD card through a small channel-buffer, the channel-buffer includes a small fraction of a sample. Can you tell me if I do not need to change several times the same byte of a same sample ?
The sample data is inverted every tick/frame, but the EFx parameter (for example EFE) defines how often you should invert it. Look at pt_modplayer.c, line 128.
@8bitbubsy Sorry for my english, I dont speak about funkrepeat coding, but I'm interested. Can you add (already here ? or for a next version?) a linear interpolation inside your sample mixer for upsampling because I get undesired harmonics.
Undesired harmonics? My player simulates the output from a real Amiga (Paula sound chip, butterworth/sallen-key filtering, also it emulates the 8 bit mixing by masking out the rest bits).
It's not about sounding the best, it's about sounding just like an Amiga.
@8bitbubsy Are you sure because each sound channel has an independent sampling frequency, amiga don't make any piecewise constant interpolation, mixing is hardware. all real amiga records on youtube sound more like the linear interpolation.
Again, wrong. It has the low-pass LED filter that is enabled with E00 and disabled with E01.
It still has some other static filters that can't be cut off. For instance, it has some resistors and two decoupling caps for static low-pass filtering.
@8bitbubsy At my english level -enabled/disabled with E0- is like -enabled with E00 and disabled with E01- or anything similar, because I do not need to specify or review the operation of an effect I do not use. If you can explain me the pt_modplayer.c lines 150 and 151 with high accuracy and simple english will you give me a big big big big help.
@8bitbubsy Hi, can you confirm me if I'm right or wrong : On TICK0 if(sampleNumber) { invertLoopOffset[channel] = Mod.samples[sampleNumber].loopBegin; } and always call the invertLoop() function (with chNum and sampleNumber as param). case EFx update speed with x and another call to invertLoop() function. On others ticks always call the invertLoop() function. Thanks for all.
Thanks for this nostalgic buzz 8bit, I had all but forgotten how great pro-T was, heck, it still is! I don't even know what made me search YT for tracker stuff .... a few moments ago I watching clips on Stick Dulcimers lol
Still am in possession of my faithful 1200 and last crafted a tune some 15 years ago or thereabouts, would love to route out all my old disks and play em back one last time, haha, happy days!
About time I see a project like this, this is astounding!
I still do wonder whatever happened to that "ProTracker 5" project though on protracker.info a while back, after the website died out nobody really ever said anything about it, so I've always been curious.
Oh man,i just found this video.Cant believe my fave utilility of all time is on the Pee Cee ...I dread to think the amount of hours i used this exellent tool.
@8bitbubsy hiya mate i was a tracker in mirage uk back in the day and this looks to work perfectly.when will it be ready.i have a monster amiga 1200 but will be great to see protracker running in windows without using the pain in the ass that is winuae.it seems to drop samples in protracker left,right and centre.
Please spread this video as much as you can (or just informate about the project itself), I want as many Amiga oldskoolers as possible to know about this project. Not because of pride, but because I know how duckin' awesome this oldskool software is. =)
@Bisqwit It had a GUI since like August 2010, though back then the GUI was buggy and did nothing.
Now the GUI is getting good (not code wise). I have things like mouse click timer, key repeat timer, button mapping (according to screens), palette system etc etc! You can compose with it, insert notes, jam, insert effects etc, and many hotkeys are implemented. But you can't edit any texts yet ,so no MOD saving or directory path changing -this part is kind of tidious to write, I'll do it another day
@8bitbubsy We're using Cam Studio with Lagarith lossless codec for all of our screen capture videos - we're able to capture 720p @ 200FPS with processor intense artificial life simulations running. Both Cam Studio and the codec are free.
I just tested it to compare the accuracy of my own microcontroller MOD engine and the never implemented FunkRepeat effect:D It need linear interpolation and I found a small bug ? I can't open my one char directory name
Pascal
Pascal
serveurperso 2 months ago
@serveurperso
Hi, thanks for letting me know about that bug! I fixed it now, do a new SVN commit or fetch the Win32 binaries again (same URL as always).
8bitbubsy 2 months ago
@8bitbubsy Thanks for this update I re downloaded now it work.
serveurperso 2 months ago
@serveurperso
FunkRepeat does not need linear interpolation. It loops through the sample loop points and reverts each byte, it does a 1..2..3..4[..] lookup, no interpolation at all.
8bitbubsy 2 months ago
@8bitbubsy
I mean inverts each byte, not revert. E.g. sample[x] = -1 - sample[x];
8bitbubsy 2 months ago
@8bitbubsy I'm interested by the protracker funkrepeat EFx (not the old invertloop), I found this un4seen com forum ?topic=7554.0 and I also trying to learn your implementation inside your source code. All my favorites chiptune (and ODE2PTK.MOD ode_to_protracker.mod) are perfect inside my replayer as your win32 protracker or shism/milky tracker, but not the famous emax-doz.mod.
As I understand the sample is not at all altered, it's just the position of the loops that are modified?
serveurperso 2 months ago
@serveurperso
Wrong.
FunkRepeat is the very old implementation, I don't know how it works. Ignore it.
InvertLoop (the common and new one) is what emax-doz.mod and all the others use. The sample data is altered, not the loop infos.
8bitbubsy 2 months ago
@8bitbubsy OKEY !!!! this is very interesting. I must to alter the sample in real time inside my lightweight-as-possible mixing loop. I only hope that the bytes do not need to be changed several times (memory effect) ? My samples are read directly from the SD card through a small channel-buffer, the channel-buffer includes a small fraction of a sample. Can you tell me if I do not need to change several times the same byte of a same sample ?
serveurperso 2 months ago
@serveurperso
The sample data is inverted every tick/frame, but the EFx parameter (for example EFE) defines how often you should invert it. Look at pt_modplayer.c, line 128.
8bitbubsy 2 months ago
@8bitbubsy I implemented your invertLoop on my code and understand how it work, but I don't understand the line 150 and 151.
signed char *t_sample = &source->sample_data[s->offset + ch->invloop_offset];
*t_sample = (-1 - *t_sample);
serveurperso 2 months ago
@8bitbubsy Sorry for my english, I dont speak about funkrepeat coding, but I'm interested. Can you add (already here ? or for a next version?) a linear interpolation inside your sample mixer for upsampling because I get undesired harmonics.
serveurperso 2 months ago
@serveurperso
Undesired harmonics? My player simulates the output from a real Amiga (Paula sound chip, butterworth/sallen-key filtering, also it emulates the 8 bit mixing by masking out the rest bits).
It's not about sounding the best, it's about sounding just like an Amiga.
8bitbubsy 2 months ago
@8bitbubsy Are you sure because each sound channel has an independent sampling frequency, amiga don't make any piecewise constant interpolation, mixing is hardware. all real amiga records on youtube sound more like the linear interpolation.
serveurperso 2 months ago
@serveurperso
Yes I am sure, Amiga does the filtering in hardware, between the Paula sound chip and the RCA outputs.
16-bits (dot) org/amiga/a1200/a1200_audio_circuit.png
8bitbubsy 2 months ago
@8bitbubsy OK it's a hardware low pass filter, enabled/disabled with E0. (but I keep my linear interpolation always enabled it sound way better)
serveurperso 2 months ago
@serveurperso
Again, wrong. It has the low-pass LED filter that is enabled with E00 and disabled with E01.
It still has some other static filters that can't be cut off. For instance, it has some resistors and two decoupling caps for static low-pass filtering.
8bitbubsy 2 months ago
Turned off*
8bitbubsy 2 months ago
@8bitbubsy At my english level -enabled/disabled with E0- is like -enabled with E00 and disabled with E01- or anything similar, because I do not need to specify or review the operation of an effect I do not use. If you can explain me the pt_modplayer.c lines 150 and 151 with high accuracy and simple english will you give me a big big big big help.
serveurperso 2 months ago
@serveurperso OK now I understand!!! I'm dumb:)
serveurperso 2 months ago
@serveurperso
s->offset is "sample data start", ch->invloop_offset is the "invert loop index".
8bitbubsy 2 months ago
@8bitbubsy Hi, can you confirm me if I'm right or wrong : On TICK0 if(sampleNumber) { invertLoopOffset[channel] = Mod.samples[sampleNumber].loopBegin; } and always call the invertLoop() function (with chNum and sampleNumber as param). case EFx update speed with x and another call to invertLoop() function. On others ticks always call the invertLoop() function. Thanks for all.
Regards, Pascal.
serveurperso 2 months ago
Thanks for this nostalgic buzz 8bit, I had all but forgotten how great pro-T was, heck, it still is! I don't even know what made me search YT for tracker stuff .... a few moments ago I watching clips on Stick Dulcimers lol
Still am in possession of my faithful 1200 and last crafted a tune some 15 years ago or thereabouts, would love to route out all my old disks and play em back one last time, haha, happy days!
Awesome mate, thanks for sharing.
creaseproofmofongo 2 months ago
About time I see a project like this, this is astounding!
I still do wonder whatever happened to that "ProTracker 5" project though on protracker.info a while back, after the website died out nobody really ever said anything about it, so I've always been curious.
DerpyEnzyme 7 months ago
Oh man,i just found this video.Cant believe my fave utilility of all time is on the Pee Cee ...I dread to think the amount of hours i used this exellent tool.
mulder3035 11 months ago
@8bitbubsy hiya mate i was a tracker in mirage uk back in the day and this looks to work perfectly.when will it be ready.i have a monster amiga 1200 but will be great to see protracker running in windows without using the pain in the ass that is winuae.it seems to drop samples in protracker left,right and centre.
71JOEBLOGGS 1 year ago
Please spread this video as much as you can (or just informate about the project itself), I want as many Amiga oldskoolers as possible to know about this project. Not because of pride, but because I know how duckin' awesome this oldskool software is. =)
8bitbubsy 1 year ago
Works great.
ufosauna 1 year ago
Your program has a GUI already? Great! Besides playing, can it also be used for composing?
Bisqwit 1 year ago
@Bisqwit It had a GUI since like August 2010, though back then the GUI was buggy and did nothing.
Now the GUI is getting good (not code wise). I have things like mouse click timer, key repeat timer, button mapping (according to screens), palette system etc etc! You can compose with it, insert notes, jam, insert effects etc, and many hotkeys are implemented. But you can't edit any texts yet ,so no MOD saving or directory path changing -this part is kind of tidious to write, I'll do it another day
8bitbubsy 1 year ago
Also the lag you see is because of the capture, it's 100% 60hz silk smooth in action in Windows.
8bitbubsy 1 year ago
@8bitbubsy We're using Cam Studio with Lagarith lossless codec for all of our screen capture videos - we're able to capture 720p @ 200FPS with processor intense artificial life simulations running. Both Cam Studio and the codec are free.
Cool stuff btw!
whisk0r 1 year ago
Finally reuploaded with neutral volume. Sorry for all the reuploads...
8bitbubsy 1 year ago
@8bitbubsy their swinging around a nice -6db here, just as they should
whisk0r 1 year ago