Command Tracker Dev Log
- kliepatsch
- Posts: 247
- Joined: Thu Oct 08, 2020 9:54 pm
Command Tracker Dev Log
Since I haven't *actually* used a tracker (only once for a few hours), I am not the most competent person to answer this, but to me your ideas sound very reasonable! ?
Command Tracker Dev Log
On 5/1/2021 at 12:08 PM, m00dawg said:
Impulse Tracker lets you do this backwards but for now I was going to avoid worrying about that)
All you should have to do is a quick check when the user hits Ctrl+E is compare the 2 points and if they're backwards, swap them and continue as if they were specified forwards.
Command Tracker Dev Log
Hmm yep that's a good point!
Author of Dreamtracker (https://www.dreamtracker.org/)
Check Out My Band: https://music.victimcache.com/
Check Out My Band: https://music.victimcache.com/
Command Tracker Dev Log
Quick update, though nothing to show - sorry! It's summer so there's been plenty of other things to do but I also opted to slow down a bit and wait for the next update to the project. I'm not quite sure why the team hasn't posted the update here since it's a big deal I think, but apparently on the FB discussion group, prototype #3 has been shown off whee! I found out about it via the X16 unofficial Discord. That's good news and has me more excited about the project again and so I expect I'll start spending time on CT again in the coming weeks. Next feature is still copy/paste as that's just too big of a necessity before I work on the other stuff (like an instruments UI to configure the Concerto patches and provide a connection to/from it and the tracker).
Author of Dreamtracker (https://www.dreamtracker.org/)
Check Out My Band: https://music.victimcache.com/
Check Out My Band: https://music.victimcache.com/
Command Tracker Dev Log
I don't have much to show for it yet but I did start work on the copy/paste - or more specifically the block selection routines. CMD-B and CMD-E now mark the start/end of the block and I have started work on highlighting the blocks in the pattern view itself. I plan on getting all that working before I tackle operations on the block.
Marking the start/end of the block is easy enough - but drawing the highlighted area is much less trivial. This is partly because a single pattern doesn't fit in VRAM so when moving around channels, the blocked area has to get redrawn depending on what part of the pattern is in VRAM (specifically VRAM can hold all the rows, but not all the channels). To solve this I'll probably have a function that evaluates the start/end areas and highlights any part of that currently in the view which I can call whenever I need to.
This is all to mark a block. Once a block is marked, I'd like to have multiple commands to operate on the block. This will include copy/paste but also can include other things like changing the octave of all the notes in the block, or inc/dec'ing the notes, etc. The copy/paste itself is still a bit of a mind exercise but I'll worry about that once I have block selection actually working.
Another change is I broke the edit_pattern module out into sub-modules of its own, as it was getting pretty hairy having everything in one big file. I like this approach and will be breaking out the other routines into separate files to break up edit_pattern more into bite sized chunks.
Author of Dreamtracker (https://www.dreamtracker.org/)
Check Out My Band: https://music.victimcache.com/
Check Out My Band: https://music.victimcache.com/
Command Tracker Dev Log
@The 8-Bit Guy Heya David! I thought I'd point you to here. I saw you were working on a tracker and, while I'm sure you are a far _FAR_ superior programmer than I, you might be able to get some useful tidbits from this one. Notably @kliepatsch's Concerto engine, which I use extensively, may help get you further along on richer synthesis so you only have to concentrate on the UI, file-format, etc. Just a thought! Both are currently open source and you can find them:
https://gitlab.com/m00dawg/command-tracker
https://github.com/biermanncarl/cx16-concerto
Klieptsch is working on merge PSG and FM so you can create patches that use one or the other (or both). I'm still stuck in copy/paste fun since that's a feature I used a ton with older trackers (and still use them on newer ones). My UI will be based around Impulse Tracker largely as I've been fond of that system. Even though the Fast Tracker style kinda won out (it's what Famitracker, Deflemask, and Renoise all seem to be based around), I was never nearly as fast at writing as I was with Scream and Impulse.
I'll continue to work on mine. I took a bit of a hiatus since the X8 kinda made me think the X16 might be delayed longer than I hoped and have had other things going on. But my grand plan is to use the X16 as a tracker solution, optionally with some method of clock sync (even if just pulses on the controller port if not a full MIDI expansion card). Having expansion cards is one of the things I like most about the X16 since it enables these sorts of ideas which is great!
My file format, you will notice, is horrendous. 1 pattern = 1 page in himem. I did it by design so I can focus on the most important parts of the tracker (I think) - the UI. I plan on moving to a sparse format once the tracker functionally works. And I expect those to be much smaller so a simple playback library could be included with games.
CT is currently still using separate FM (not implemented) and PSG voices. Given what Concerto is doing I will flatten this out, I just haven't decided in what way yet. Probably 16 channels. I'd like to make that configurable (at least at song creation) but that's a future feature for now. Since Concerto manages the voices, the tracker just needs to support a reasonable number but doesn't have to support all 24 (ignoring DPCM for the moment). I don't expect composers to commonly use all 16 PSG voices and 8 FM separately given some of the rich features of Concerto. There could be some extreme cases for when wanting to do that (like tons of echo or something) but I think some of what had to be done manually via patterns can be done in Concerto. And what can't I was pondering having a macro solution for (so the Mxx affect might be calling macros - a bit like tables in LSDJ was my idea there).
Author of Dreamtracker (https://www.dreamtracker.org/)
Check Out My Band: https://music.victimcache.com/
Check Out My Band: https://music.victimcache.com/
Command Tracker Dev Log
Integrated the newest Conerto into the tracker! Copy/paste still doesn't work ? But I did consolidate down to 16 synth channels (and 1 DPCM) for now. This makes each 64 row pattern a bit over 5k and allows for either perhaps adding more effects/channel down the road or allowing for up to 96 row patterns (for 6/8 timed songs as I tend to prefer using rows of 96 vs 48 for those). This means old songs won't load right. Given the fairly alpha state of CT I'm opting not to worry about that all that much at present.
Of course I still want to get copy-pasta working but it's honestly not my favorite thing to do ? This, plus the timing of the X16 being a bit uncertain has me not in a crazy hurry. On that note though, since @The 8-Bit Guy is working on his tracker, I will be renaming mine since his definitely deserves the CommandTracker title assuming he wants it. To fit with Concerto and the starting-things-with-C idea, I'm thinking of alternatives such as Crescendo Tracker (which I think might already be taken?) or Contra Tracker. But I might do something entirely difference. Maybe Xtreme Tracker (to keep with the 'X" theme) - I dunno. The name is a minor thing.
Anyways huge props to @kliepatsch's work on Concerto there. Well worth checking out as it does basically all the heavy lifting and really shows what you can do with the hybrid PSG + FM sound. Fantastic work!
Author of Dreamtracker (https://www.dreamtracker.org/)
Check Out My Band: https://music.victimcache.com/
Check Out My Band: https://music.victimcache.com/