Author Topic: uTracker, a noob's toy tracker project  (Read 745 times)

Offline immortalx

  • Shy artist
  • Posts: 5
uTracker, a noob's toy tracker project
« on: August 05, 2019, 16:52:13 »
Hey everyone!

A bit of background: Long time OpenMPT/Modplug user here, not a tracker-junkie but I've been familiar with trackers since the Amiga era. I'm not entirely new to programming as I've used almost every 8-bit BASIC flavor in my youth and some VB6.0 later on, but have done nothing serious, never learned proper programming, and never moved to a more standard/advanced programming language.
My son is now at the uni learning computer-science and has convinced me to try and learn some C++. I was VERY scared at first, but it seems I'm slowly getting somewhere. I've made an attempt in the past to write a very simple tracker in VB6 and failed miserably. And not because of the language, but because I've never programmed for prolonged periods and whenever I had the "itch", I had to go back and re-learn the basics.
Now I'm trying to write this in C++ and I'm already 2 months in, so that's progress for my standards  ;D

Anyway, this is a very-very basic tracker-like program which is mostly featureless, but at least it's being able to play-back some notes. Many things are not implemented yet and I just have placeholders for them. Most basic of the missing features is, sadly, no effect commands which I don't know if and how I'm going to make them work. There's a very crude file format that allows you to save/load your work, but it doesn't contain the samples and they are just referenced as absolute paths. It's also very CPU intensive (esp on play) and should crash a lot  ;D

Finally it's windows only, sadly, because I'm too new to even start thinking about cross-platform.
My deepest appreciation to the developers of our beloved OpenMPT, which has managed to stay alive and kicking, and I cannot begin to imagine the amount of work that was put into it!

Download it here:

Offline Gerirish

  • Shy artist
  • Posts: 8
Re: uTracker, a noob's toy tracker project
« Reply #1 on: August 05, 2019, 18:25:55 »
Creating a new tracker is like reinventing the wheel.

A different approach is to ask SagaMusix and/or manx (see below) if there are coding tasks for your level of knowledge where you can help with.

Means you would start to understand the architecture of a bigger C++ project (= OpenMPT) with the possibility to contribute to an already established and well-known tracker.


Offline Saga Musix

  • OpenMPT Developers
  • *****
  • Posts: 6,702
  • aka Jojo
    • Download music, samples, VST plugins: Saga Musix Website
  • Operating System: Windows 10 x64
Re: uTracker, a noob's toy tracker project
« Reply #2 on: August 05, 2019, 18:45:34 »
I think that's a bit of a harsh reply. There are many reasons for creating a new tracker, including:

1. For the learning effect. A new tracker brings many valuable insights to the implementer, even if it doesn't grow beyond the alpha stage. In particular, implementing your own tracker teaches you how a mixer works, how sample interpolation is done, file (de)serialization and many other things. If you just look at someone else's (my) code, the learning effect will be much lower, in particular if there is no need for rewriting that code. OpenMPT is a complex piece of software and getting your feet wet in C++ with the OpenMPT code might really not be the best way to learn the language or learn about trackers in general. For someone who's new to the matter or the language, OpenMPT's code will most likely be even more overwhelming now than it was for me eleven years ago.

2. For realizing something that cannot be done (or would be complicated to do) with other trackers. There are many interesting features that even I would like to see but OpenMPT's concept locks us into a very specific corner which prevents certain things from being implemented, or at least makes it incredibly hard and would make the code unreasonably complex.

3. Or simply because you want a challenge.

In the end, it's their spare time, let them spend it the way they want. Often new trackers can bring a fresh breeze of new ideas without the existing trackers couldn't evolve. As an OpenMPT developer and contributor to Schism and MilkyTracker, I certainly do not want us to drift into a tracker monopoly.
ยป No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

Offline Gerirish

  • Shy artist
  • Posts: 8
Re: uTracker, a noob's toy tracker project
« Reply #3 on: August 05, 2019, 18:53:23 »
Sorry, if my reply came across as harsh.

You are right with everything in your reply.

Only speaking for and knowing myself, it wouldn't give me a purpose to write a big piece of software such as a tracker. Instead I would start out by joining an already existing project by working on small fixes, improvements.....

Offline immortalx

  • Shy artist
  • Posts: 5
Re: uTracker, a noob's toy tracker project
« Reply #4 on: August 05, 2019, 19:11:56 »
@Gerisish You are right in that this is re-inventing the wheel, in fact a very not round wheel in my case  ;)
But, believe it or not, it is very satisfactory for an old guy like me to have a little learn-by-mistake coding project, instead of watching programming tutorial videos.
My intention is not to make a tracker as a replacement for other trackers, of course. That would be very rude of me to even think about! And regarding your suggestion about contributing to the OpenMpt codebase, I'll just say that my level of knowledge is very close to zero  :P

@Saga Musix, thank you very much for the reply! Your points make absolute sense, because indeed I mostly wanted to toy around with ideas, and in the process try to learn about the language .