Ramblings of a mad man, thoughts on trackers after some years

Started by atari, January 22, 2015, 13:06:26

Previous topic - Next topic

atari

Dear friends,

this is my first post, hope you are all fine.

For a long time   I did not check what is going on in the tracker world, thought I might share a few ideas here, later some of those might be converted to 'official' feature requests or desires.

Here we go. I hope it will not shock you too much, might be very dense information.

1. General Sequence List for ANY module format
I could see Modplug has sequence list additionally, in the tree view, but only for its own format, .mptm if I am correct? So how can we have this for .xm, .it, .mod or any other module format, too? Following trick might do it: Save simple for name.xm another text file name.xm.txt in the same directory as name.xm and use that if available for building the sequence list. Its format can be discussed, line based approach would be not bad, one line per sequence. Comma separated between pattern numbers. Another new spin might be added here, the possibility to MUTE the first 16 channels, only, optionally. Similar as you might know from protrekkr. 0..9A..F will do the muting on the channels 1..16. I thought following might work:
pat00:0123,pat01:ab
This is a sequence of two patterns 00 followed by 01, I added for easier understanding the string 'pat' in front of it. We use ':' to jump into the 'muting area' of the pattern and mute channels 0,1,2,3 for pat00 and for pat01 we do this for channels a and b. As you can see, you can design, in a simple text file the flow you want for your patterns. Modplug tracker would need to write out this text file for each 'save operation' of any .xm,.it,.mod and so on, for loading it will check the dir if any such text file exists on hard disk, if yes, load it as sequence list into the already available functionality in Modplug tracker.

First 16 channels mute states are saved in sequence list, 0..9a..f, any entry here means this channel is muted, if no entry here, all first 16 channels are unmuted.

Sequence list entry name, pattern01:mutes, pattern02:mutes,...


2. Live mode, or hold pattern until its end before switching
What live mode playback transitions are supported? Transition actions. Do we have hotkeys for them? Does open mpt have a live mode, similar to milky tracker, holding the current playing pattern until its end, before switching elsewhere?


3. Milky Tracker tabs
Milky trackers tabs can be seen as open mpt's sequence lists, simply switching to another tab would be something like switching to another sequence.


4. Order list '+++' as sequence list borders for looping, new 'loop mode'
Order list can use +++ markers as sequence borders, then using those as separate sequences. This means we can have sequences, without having to use the 'official' sequence lists. The sequence borders can be anything, here the suggestion for using '+++' order entries. This would allow looping among multiple patterns, not only a single pattern. What we need is a new 'loop mode hotkey', when activated it will treat those '+++' order entries differently and loop the patterns within that range. You can toggle this 'loop mode' easily, as often as you like.


5. Multi-save for sequence lists as .xm, if wanted
If you used multiple sequences for .xm format, together with name.xm.txt style as described above, there can be a new 'multi-save' command which simply saves for each sequence list a separate .xm, like name-seqlist01.xm. Why? You could have same fun outside of Modplug tracker, too, e.g. in Milky tracker and its tabs. No need to lock in certain useful functionality only to a single application.


6. Seemless pattern transitions?
Are seemless pattern transitions possible, timingwise?
Are seemless sequence transitions possible, timingwise?
Can pattern switches be linked to external program change events?
Can sequence switches be linked to external bank select events?
For example protrekkr can do seemless pattern switching, meaning you can change the pattern number during playback and it keeps the line number position, so it does not start always from line 0, which is great. I am assuming this is possible with Modplug Tracker, too, hopefully.


7. Following external midi clock for sync?
Can open mpt follow external midi clock events for sync? Psycle offers this option, tried it quickly and it did not follow. It seems to interpret the incoming commands wrongly, it recognized only midi start,stop, but not midi clock following.


8. The trackers I found interesting
Open mpt, psycle, skale tracker, milky tracker, protrekkr, maxYMiser. The question is what can do one, what another can not do, but which is useful, essential? Like seemless transitions among patterns, muting in order list from protrekkr is great, keeping it simple to 16 channels is great, the above idea is why not allowing this ONLY for the first 16 channels then, keeping it simple. Order list and designing the mute flow there quickly is useful, to me. maxYMiser's channel based patterns in order list makes sense, too, and it has already the 'performance loop mode'.

Anyway, thanks friends for reading that far. Have a great day. Does anybody know why the source code to skale tracker is not published or is it? Does anybody know if skale tracker can use all 16 outputs in its vst-plugin version, and not only the first? I guess, this is not possible at all. If yes, next question would be how to do the routing to those 16 outputs from the channels or instruments? Or are these 16 outputs only for internal vst-plugins, inside skale tracker?

I like seeing music making in three stages.
1. design (including playing and recording, live and non-live)
2. performance
3. production

In design you create your patterns, notes, slides, all small details. This is greatly possible with trackers, to infinite degree. Performance is if you have already some patterns there and want to play around with those, switching, muting, real-time button pushing, if possible those interactions could be saved and replayed, in ideal case even changed, edited later. The case without editing would be useful, for trackers, too. Seemless transitions would be needed, mute states, too. Last step production is about mixing, polishing, this you can do externally, exporting all instruments or channels as separate wave files, mixing in Reaper, for example, my favourite DAW. You can use your favourite instead.

Saga Musix

Well, first off...
QuoteGeneral Sequence List for ANY module format
If all formats were capable of doing the same thing, we wouldn't need to support more than one format. As simple as your proposition may sound to you, it's much more complicated than that. For example, consider a pattern jump effect that is used in a pattern which is shared between two sequences. These two sequences would have to be merged into a single sequence in XM, but the jump target would have to be a different one for the two instances of the same pattern. If you really want to use multiple sequences, use the MPTM format, period.

QuoteWhat live mode playback transitions are supported? Transition actions. Do we have hotkeys for them? Does open mpt have a live mode, similar to milky tracker, holding the current playing pattern until its end, before switching elsewhere?
Sure, OpenMPT has received a lot of features for live performance a couple of years ago.
Of course you can always loop patterns using the appropriate checkbox or shortcut, and you can queue another pattern in the order list by middle-clicking it. You can also mute channels on transitions (through the channel header context menu or appropriate shortcuts).

QuoteMilky trackers tabs can be seen as open mpt's sequence lists, simply switching to another tab would be something like switching to another sequence.
Err, tabs in MilkyTracker? The only tabs I am aware of are those when loading more than one file. You can also load more than one file simultaneously in OpenMPT.

Quote
Order list can use +++ markers as sequence borders, then using those as separate sequences. This means we can have sequences, without having to use the 'official' sequence lists. The sequence borders can be anything, here the suggestion for using '+++' order entries. This would allow looping among multiple patterns, not only a single pattern. What we need is a new 'loop mode hotkey', when activated it will treat those '+++' order entries differently and loop the patterns within that range. You can toggle this 'loop mode' easily, as often as you like.
So basically you want the loop lock feature that is already available from the context menu of the order list (or, again, through the appropriate shortcut). Or use pattern jump commands if the loop is supposed to be "fixed". That way people have already manage to stuff more than one song into a single sequence 20 years ago.

QuoteNo need to lock in certain useful functionality only to a single application.
Exactly, any other track may implement support for MPTM, too. You forgot that MilkyTracker would have to add support for your "extension files" too.

QuoteAre seemless pattern transitions possible, timingwise?
Only at the end of a pattern.
QuoteAre seemless sequence transitions possible, timingwise?
Nope, but that's not how the feature was ever intended to be used, anyway. You have to think of sequences as independent songs (e.g. like they would be used in a game that stuffs several songs into a single file to save space). Why would you want to seemlessly transition between two songs in edit mode?
QuoteCan pattern switches be linked to external program change events?
Can sequence switches be linked to external bank select events?
No. Again, sequences are not thought as a live feature but a way to organise multiple songs within one file.

QuoteCan open mpt follow external midi clock events for sync?
I don't think the concept of MIDI "ticks" maps very well into the world of trackers at all, meaning that translating a MIDI tempo into something OpenMPT can understand would be difficult at best, or impossible at worst. Even if it was possible, I'd have no way to implement and test it as I'm not aware that any of my MIDI hardware would send out MIDI ticks (hardware donations are always welcome though, lol).

QuoteDoes anybody know if skale tracker can use all 16 outputs in its vst-plugin version, and not only the first?
You can always try in a host that supports more than two channels, but given the age of the tracker I would suppose that it probably doesn't.
» 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.

Harbinger

Quote from: Saga Musix on January 22, 2015, 20:45:12
Quote
Order list can use +++ markers as sequence borders, then using those as separate sequences. This means we can have sequences, without having to use the 'official' sequence lists. The sequence borders can be anything, here the suggestion for using '+++' order entries. This would allow looping among multiple patterns, not only a single pattern. What we need is a new 'loop mode hotkey', when activated it will treat those '+++' order entries differently and loop the patterns within that range. You can toggle this 'loop mode' easily, as often as you like.
So basically you want the loop lock feature that is already available from the context menu of the order list (or, again, through the appropriate shortcut). Or use pattern jump commands if the loop is supposed to be "fixed". That way people have already manage to stuff more than one song into a single sequence 20 years ago.

+++ is only a visual cue; it's never had any functionality except as s divider. Until we can name sections in a sequence, this is what we use to set off different sections....

Quote
QuoteAre seemless sequence transitions possible, timingwise?
Nope, but that's not how the feature was ever intended to be used, anyway. You have to think of sequences as independent songs (e.g. like they would be used in a game that stuffs several songs into a single file to save space). Why would you want to seemlessly transition between two songs in edit mode?
You CAN do like I do and use different sequences for developing one musical idea. I keep Sequence 0 as the "Master Track" if you will, and add other sequences to try different developments of the theme or cadence. When I arrive at something I like, I simply copy the patterns in the 'work sequence' into my master track, and go from there. They are not truly different 'songs' in a pure sense because all sequences have access to (and are restricted to) the same instruments, and occupy the same file in memory. But like Saga said, they can't access each other during playback -- only in editing.

Saga Musix

Quote from: Harbinger on January 23, 2015, 16:45:13
Quote from: Saga Musix on January 22, 2015, 20:45:12
Quote
Order list can use +++ markers as sequence borders, then using those as separate sequences. This means we can have sequences, without having to use the 'official' sequence lists. The sequence borders can be anything, here the suggestion for using '+++' order entries. This would allow looping among multiple patterns, not only a single pattern. What we need is a new 'loop mode hotkey', when activated it will treat those '+++' order entries differently and loop the patterns within that range. You can toggle this 'loop mode' easily, as often as you like.
So basically you want the loop lock feature that is already available from the context menu of the order list (or, again, through the appropriate shortcut). Or use pattern jump commands if the loop is supposed to be "fixed". That way people have already manage to stuff more than one song into a single sequence 20 years ago.

+++ is only a visual cue; it's never had any functionality except as s divider. Until we can name sections in a sequence, this is what we use to set off different sections....
As far I understood the original poster's main goal was not to differentiate sections but to loop custom sections, though, hence the "loop lock" is exactly the tool they need. Also, another possibility is to separate several sections with "---" patterns. If OpenMPT reaches the end of such a section, it will jump back to the first pattern following the previous "---", so it can be used for looping such sections as well.
» 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.