Rewrite of the classic Amiga music composing software, in C by 8bitbubsy (with some help from other guys, hey mukunda). Keep in mind that a lot of work is still needed before it's usable as a tracker (for the replayer part, it is almost done and VERY accurate!)
This demonstrates the Windows build found on the sourceforge page.
It uses SDL for audio mixing and graphical blitting, and it focuses on portability. The source code and win32 binary are available at http://sourceforge.net/projects/protracker
By the way, the source code is by no means made for showing coding art or coding structure, the code itself is horribly made because I have no real knowledge in structuring bigger codes... I made this so trackers from the Amiga scene can get some nostalgic flashbacks, and for specially interested :)
@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 1 month ago
@serveurperso
s->offset is "sample data start", ch->invloop_offset is the "invert loop index".
8bitbubsy 1 month ago
@serveurperso OK now I understand!!! I'm dumb:)
serveurperso 1 month 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 1 month 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 1 month ago
Turned off*
8bitbubsy 1 month 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 1 month 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 1 month 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 1 month 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 1 month ago