Alert icon
We're changing our privacy policy. This stuff matters.  Learn more  Dismiss

ProTracker for other platforms (open source project)

Loading...

Sign in or sign up now!
Alert icon
Upgrade to the latest Flash Player for improved playback performance. Upgrade now or more info.
879 views
Loading...
Alert icon
Sign in or sign up now!
Alert icon

Uploaded by on Jan 13, 2011

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 :)

Category:

Music

Tags:

License:

Standard YouTube License

  • likes, 0 dislikes

Link to this comment:

Share to:
see all

All Comments (34)

Sign In or Sign Up now to post a comment!
  • @8bitbubsy Hi, can you confirm me if I'm right or wrong : On TICK0 if(sampleNumber) { invertLoopOffset[channel] = Mod.samples[sampleNumber].loop­Begin; } 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

    s->offset is "sample data start", ch->invloop_offset is the "invert loop index".

  • @serveurperso OK now I understand!!! I'm dumb:)

  • @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 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);

  • Turned off*

  • @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 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

    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_ci­rcuit.png

  • @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.

Loading...

Alert icon
0 / 00Unsaved Playlist Return to active list
    1. Your queue is empty. Add videos to your queue using this button:
      or sign in to load a different list.
    Loading...Loading...Saving...
    • Clear all videos from this list
    • Learn more