Jump to content
IGNORED

Editor for Intellivision Music Tracker Library


Recommended Posts

Hi,

 

I'm looking to integrate music into some Intybasic games I'm creating and was wondering if there is a way to create tracks using "Arkos Tracker 2" https://www.julien-nevo.com/arkostracker/

And then save them into a format that can converted to be used by the Intellivision Music Tracker library?

 

May be there are other tools / tracker available for this?

  • Like 1
Link to comment
Share on other sites

I downloaded this software before (for another purpose) but despite having 30 years experience in similar tracker programs, I didn't make heads or tails in this one, at least not without studying the manual in detail. Unfortunately the ASM code exported even with the generic AKG format is a mess of .db constants and a lot of labels and automatically generated comments that would take quite some time to figure out what those mean. For instance there doesn't seem to be a single note encoded as such, only byte values with special meaning. I'm sure it can be done, perhaps even port the Arkos Tracker player to CP1610 and Intellivision, but that is something else than using the editor for making Intellivision music with current routines.

 

Unfortunately I don't know about another preferable tracker. The music I've composed, I've used OctaMED on the Amiga, print the music blocks to text file and then various tools to extract tracks and blocks. There is a ton of hand patching though, and many effects such as instruments etc need to be created within the player routine format. Given what I wrote above about not making heads or tails, I fully expect others to fail as much taking this route, or at least if your attention span is ever the slightest shortened, you'd give up halfway.

 

But the topic is good, and perhaps we can find other trackers or a way to use the above one to output or print music in a slightly more human readable format that makes it easier to convert to the desired format.

 

Edit: Aha, the AKR raw format is slightly easier to parse than the AKG/AKL formats. One would still need to convert db 23 to B-1 etc and skip a lot of extra info but a little step closer to what we need.

Edited by carlsson
Link to comment
Share on other sites

Yeah, me too. :) The question is which tool that would be, if it exists or needs to be written. There should be more AY based trackers out there, plus of course Famitrackers, SID trackers etc. Actually something like GoatTracker might be possible to use, depending on how easy to parse the binary source files are. On the other hand I haven't studied it, so it might be just as binary tied to the built-in playback routine as the above program appears to be.

Link to comment
Share on other sites

27 minutes ago, YannAros said:

I'm not attached to any specific tool.

I'm mainly looking in a easy to put in place and as automated as possible workflow to generate Intellivsion Music Tracker files from a user firendly editor.

 

 

My goal was always to support that sort of interoperability, but I haven’t found a tool that generates output that aligns in a straightforward way to the Intellivision Music Tracker capabilities.

 

Also, since I am not a musician, I didn’t want to spend the trouble of building a converter for a tool nobody would use.

 

One tool that I had hoped for was Deflemask.  But turns out it is not open source and the developers pick and choose which platforms to support.

 

I made a case to support the AY-8914 of the Intellivision, and they seemed interested in doing so, but it is not clear when they will get around to it.

 

All that to say that if you or anybody has a preferred graphical tracker that they find useful (or a data format that they could export into), I could see into building a converter for it.

 

    dZ.

Link to comment
Share on other sites

I just checked Vortex Tracker. It has a mode to save as text:

https://bulba.untergrund.net/vortex_e.htm

 

[Pattern0]

....|..|B-1 1F.. B..1|B-2 2F.. ....|R-- 3F.. ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|F-1 4... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|C-2 .... ....|C-3 2... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|F-1 4... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....
....|..|--- .... ....|--- .... ....|--- .... ....

 

This looks promising, and something we could work with!

  • Like 1
Link to comment
Share on other sites

Well, you guys let me know if you think the Vortex Tracker itself is useful, and I’ll work on an converter for it.

 

I just didn’t wanna go through the trouble of building this sort of tool if nobody’s going to use the Vortex Tracker because they prefer a different one.

 

   dZ.

Edited by DZ-Jay
Link to comment
Share on other sites

I agree. First see if the editor is good and exactly what kind of content it outputs, then identify the format and how to convert it. We might come up with additional candidates, and since the as1600 assembler anyway will convert human readable music data to Intellivision binary, a conversion script might as well convert Z80 binary data to CP1610 binary data like in the first tracker linked to, although at first glance it seemed rather complex in its data format.

Link to comment
Share on other sites

3 minutes ago, carlsson said:

I agree. First see if the editor is good and exactly what kind of content it outputs, then identify the format and how to convert it. We might come up with additional candidates, and since the as1600 assembler anyway will convert human readable music data to Intellivision binary, a conversion script might as well convert Z80 binary data to CP1610 binary data like in the first tracker linked to, although at first glance it seemed rather complex in its data format.

Is the data format documented somewhere?  Legacy formats descending from XM, MOD, and FT2 are sort of trivial to convert, and are fully documented.

Link to comment
Share on other sites

Hm. Vortex Tracker saves files in ProTracker 3 format or text file, and exports SNDH (Atari ST) and with built-in ZX Spectrum player.

 

Arkos Tracker 2 saves files in own format AKS, and exports in assembly language formats AKG (generic), AKY, AKM (minimalist), AKL (lightweight), AKR (raw), YM, WAV, events only, AKX (sound effects) and samples.

 

I've got a feeling there are more tools out there, which we need to find, pinch and evaluate before we have settled what works best.

Link to comment
Share on other sites

I tried another very bare-bones like tracker called 1tracker by Shiru, but it only exports in VGM format. Otherwise it was straightforward to work with.

 

Sure there are tools like Fast Tracker, Pro Tracker etc as well that I overlooked, and if output from those programs is known how to handle, perhaps we don't need to look into tracker programs specifically meant for chip music.

Edited by carlsson
Link to comment
Share on other sites

That is the website for @Arnauld who developed the original version of Intellivision Music Tracker Library, improved upon by DZ-Jay and others during the development of the Voyage demo.

 

Back to 1tracker, I realized that if one saves the music in native 1tm format, it looks like this:

 

[Song]

0000 .. A-2... ...... ...... .....
0001 .. ...... ...... ...... .....
0002 .. A-3... C-5... ...... .....
0003 .. ...... ...... ...... .....
0004 .. E-3... B-4... ...... .....
0005 .. ...... ...... ...... .....
0006 .. A-3... A-4... ...... .....
0007 .. ...... ...... ...... .....
0008 .. A-2... ...... ...... .....
0009 .. ...... ...... ...... .....
0010 .. A-3... C-5... ...... .....
0011 .. ...... ...... ...... .....
0012 .. E-3... B-4... ...... .....
0013 .. ...... ...... ...... .....
0014 .. A-3... A-4... ...... .....
0015 .. ...... ...... ...... .....
0016 .. D-3... ...... ...... .....
0017 .. ...... ...... ...... .....
0018 .. A-3... D-5... ...... .....
0019 .. ...... ...... ...... .....
0020 .. A-2... C-5... ...... .....
0021 .. ...... ...... ...... .....
0022 .. A-3... B-4... ...... .....
0023 .. ...... ...... ...... .....
0024 .. D-3... ...... ...... .....
0025 .. ...... ...... ...... .....
0026 .. A-3... D-5... ...... .....
0027 .. ...... ...... ...... .....
0028 .. A-2... C-5... ...... .....
0029 .. ...... ...... ...... .....
0030 .. A-3... B-4... ...... .....
0031 .. ...... ...... ...... .....
0032 .. E-3... ...... ...... .....
0033 .. ...... ...... ...... .....
0034 .. B-3... B-4... ...... .....
0035 .. ...... ...... ...... .....
0036 .. B-2... A-4... ...... .....
0037 .. ...... ...... ...... .....
0038 .. B-3... G#4... ...... .....
0039 .. ...... ...... ...... .....
0040 .. E-3... A-4... ...... .....
0041 .. ...... ...... ...... .....
0042 .. B-3... B-4... ...... .....
0043 .. ...... ...... ...... .....
0044 .. B-2... C-5... ...... .....
0045 .. ...... ...... ...... .....
0046 .. B-3... B-4... ...... .....
0047 .. ...... ...... ...... .....
0048 .. A-2... A-4... ...... .....
0049 .. ...... ...... ...... .....
0050 .. A-3... C-5... ...... .....
0051 .. ...... ...... ...... .....
0052 .. E-3... D-5... ...... .....
0053 .. ...... ...... ...... .....
0054 .. A-3... E-5... ...... .....
0055 .. ...... ...... ...... .....
0056 .. E-3... F-5... ...... .....
0057 .. ...... ...... ...... .....
0058 .. D-3... E-5... ...... .....
0059 .. ...... ...... ...... .....
0060 .. C-3... D-5... ...... .....
0061 .. ...... ...... ...... .....
0062 .. B-2... B-4... ...... .....

 

I'm not sure if this tracker operates in terms of tracks and blocks, or just tracks one line at a time, but it is very close to the output we want.

Link to comment
Share on other sites

45 minutes ago, carlsson said:

That is the website for @Arnauld who developed the original version of Intellivision Music Tracker Library, improved upon by DZ-Jay and others during the development of the Voyage demo.

 

Back to 1tracker, I realized that if one saves the music in native 1tm format, it looks like this:

 

 


[Song]

0000 .. A-2... ...... ...... .....
0001 .. ...... ...... ...... .....
0002 .. A-3... C-5... ...... .....
0003 .. ...... ...... ...... .....
0004 .. E-3... B-4... ...... .....
0005 .. ...... ...... ...... .....
0006 .. A-3... A-4... ...... .....
0007 .. ...... ...... ...... .....
0008 .. A-2... ...... ...... .....
0009 .. ...... ...... ...... .....
0010 .. A-3... C-5... ...... .....
0011 .. ...... ...... ...... .....
0012 .. E-3... B-4... ...... .....
0013 .. ...... ...... ...... .....
0014 .. A-3... A-4... ...... .....
0015 .. ...... ...... ...... .....
0016 .. D-3... ...... ...... .....
0017 .. ...... ...... ...... .....
0018 .. A-3... D-5... ...... .....
0019 .. ...... ...... ...... .....
0020 .. A-2... C-5... ...... .....
0021 .. ...... ...... ...... .....
0022 .. A-3... B-4... ...... .....
0023 .. ...... ...... ...... .....
0024 .. D-3... ...... ...... .....
0025 .. ...... ...... ...... .....
0026 .. A-3... D-5... ...... .....
0027 .. ...... ...... ...... .....
0028 .. A-2... C-5... ...... .....
0029 .. ...... ...... ...... .....
0030 .. A-3... B-4... ...... .....
0031 .. ...... ...... ...... .....
0032 .. E-3... ...... ...... .....
0033 .. ...... ...... ...... .....
0034 .. B-3... B-4... ...... .....
0035 .. ...... ...... ...... .....
0036 .. B-2... A-4... ...... .....
0037 .. ...... ...... ...... .....
0038 .. B-3... G#4... ...... .....
0039 .. ...... ...... ...... .....
0040 .. E-3... A-4... ...... .....
0041 .. ...... ...... ...... .....
0042 .. B-3... B-4... ...... .....
0043 .. ...... ...... ...... .....
0044 .. B-2... C-5... ...... .....
0045 .. ...... ...... ...... .....
0046 .. B-3... B-4... ...... .....
0047 .. ...... ...... ...... .....
0048 .. A-2... A-4... ...... .....
0049 .. ...... ...... ...... .....
0050 .. A-3... C-5... ...... .....
0051 .. ...... ...... ...... .....
0052 .. E-3... D-5... ...... .....
0053 .. ...... ...... ...... .....
0054 .. A-3... E-5... ...... .....
0055 .. ...... ...... ...... .....
0056 .. E-3... F-5... ...... .....
0057 .. ...... ...... ...... .....
0058 .. D-3... E-5... ...... .....
0059 .. ...... ...... ...... .....
0060 .. C-3... D-5... ...... .....
0061 .. ...... ...... ...... .....
0062 .. B-2... B-4... ...... .....

 

 

I'm not sure if this tracker operates in terms of tracks and blocks, or just tracks one line at a time, but it is very close to the output we want.

To be honest, I am not so much concerned about the output format, as long as it is documented or we can reverse engineer it.

 

What I am more concerned about is having a tracker that supports -- to some extent at least -- the feature set of the Intellivision Music Tracker, which is itself a subset of the capabilities of some chip tune trackers out there (e.g., instruments, envelopes, drums, some effects, patterns, play lists, etc.).

 

The trick is to make music that exploits the capabilities of the tracker, not just put notes together.  That's why I defer the selection of the tracker to those who make music:  if there is a preferred or good enough tracker program out there that allows some of the features of the Intellivision Music Tracker to make interesting music with effects -- and that people would use -- then I am willing to spend the effort in making a converter -- whatever it takes. :)


It also allows us to expand the capabilities with Glissandos and other effects in the future, if the composing tool supports that already.

 

   dZ.

Edited by DZ-Jay
  • Like 1
Link to comment
Share on other sites

Yeah. I'll keep playing around and looking for options.

 

1tracker can divide music into logic blocks but doesn't seem to have a track structure. It also has 40++ different player routines of which the majority is for ZX Spectrum beeper. Most of those routines implement 2-8 virtual channels, some with PWM and envelopes that are interplexed on the speaker when played back. For instance the routine Stocker is an "advanced PWM-based engine that provides two channels of tone with user definable envelopes, detune, legato, slide up and down, and 5 drum sounds".

 

An instrument envelope may be up to 64 steps long and looks like 0a090b0a080c050201060a0a09 where each hex number is the volume 00-0f.

 

I'll see if I can find something even better, perhaps 3 channels of which one optionally handles drums, but except for the track/block structure this one might not be that bad after all. The closer the format is to what we already have in terms of tools, the less work it would be to rewrite them once we know what really works.

Link to comment
Share on other sites

Perhaps it’s time to start playing with Deflemask.  It does support NES and other platforms for chip tunes, and it offers ability to define instruments with envelopes and pitch effects.

 

Deflemask seems to be very close to what we want — it is just that it doesn’t support the AY-8914 capabilities specifically.

 

However, the developers seem to be interested in implementing it in the future.

 

In the meantime, we could use it to create songs targeted to one of the other platforms, and limit the features we use to those that can be translated to the Intellivision Music Tracker, like 3 or 6 voices, instrument envelopes, arpeggios, noise, etc.; and avoid the effects we don’t support.


I think that as a first step we could port one of the simple demos songs of the Intellivision Music Tracker to Deflemask, and see how we could replicate all its effects there.  That at least can give us an idea of how it could be used.

 

   dZ.

Edited by DZ-Jay
  • Like 1
Link to comment
Share on other sites

  • 2 years later...

I am currently looking for a solution to this as well since I am planning to use the Inty Tracker lib in my games. I have made several tracks using Goat Tracker in the past, so my first idea was to create a converter for goat tracker song files. The format is well documented and the structure is easy to understand. Also the definition of patterns, instruments, effects etc has quite some similarity to what the Inty Tracker needs.

Also SID files naturally have three channels, and you can use multiple SIDs in goat tracker for e.g. 6 voices ECS support. 

 

I will give it a try and keep you updated :)

Link to comment
Share on other sites

13 minutes ago, Eiswuxe said:

I am currently looking for a solution to this as well since I am planning to use the Inty Tracker lib in my games. I have made several tracks using Goat Tracker in the past, so my first idea was to create a converter for goat tracker song files. The format is well documented and the structure is easy to understand. Also the definition of patterns, instruments, effects etc has quite some similarity to what the Inty Tracker needs.

Also SID files naturally have three channels, and you can use multiple SIDs in goat tracker for e.g. 6 voices ECS support. 

 

I will give it a try and keep you updated :)


Heads up:  I'm currently working on the Intellivision Music Tracker 2.0 with support for (most) XM effects, and a new data format inspired by XM's.  The pattern data is still entered using macros, but they now follow the way XM trackers do:  note, instrument, volume, effect (C-4 -1 F ---"), one event per row, leaving blank anything in a row that does not change ("--- -- - ---").

 

I had hoped to have something ready by this month, but it may be sometime in summer.

 

Let me know if you would like to play around with it.

 

   dZ.

Link to comment
Share on other sites

15 minutes ago, DZ-Jay said:

 The pattern data is still entered using macros

I assume your are referring to the NOTE macro?


Will the rest of the definitions change (like envelopes, pitch, drums etc.)?

 

At the moment I have just started and go through loading a goat tracker file. But I would love to play around with what you've got already. Thanks for the offer!

Edited by Eiswuxe
Link to comment
Share on other sites

55 minutes ago, Eiswuxe said:

I assume your are referring to the NOTE macro?

 

Yes, the note macro.  In the last version I published (1.5 rev4),  I included a new type of macro called NPK (Note Packing) which allowed you to define each row individually (without having to compute the length of each), but it still followed the old NOTE() notation.  The new one looks like this:

 

        ; 3xx: Portamento To Note
@@3xx:  PATTERN.Begin(32)
            PATTERN.Row "C-4 -2 F ---"  ; 00 - 1
            PATTERN.Row "E-4 -2 F 304"  ; 01
            PATTERN.Row "--- -- - 300"  ; 02
            PATTERN.Row "--- -- - 300"  ; 03
            PATTERN.Row "--- -- - 300"  ; 04 - 2
            PATTERN.Row "--- -- - 300"  ; 05
            PATTERN.Row "--- -- - 300"  ; 06
            PATTERN.Row "--- -- - 300"  ; 07
            PATTERN.Row "--- -- - ---"  ; 08 - 3
            PATTERN.Row "--- -- - ---"  ; 09
            PATTERN.Row "--- -- - ---"  ; 10
            PATTERN.Row "--- -- - ---"  ; 11
            PATTERN.Row "--- -- - ---"  ; 12 - 4
            PATTERN.Row "--- -- - ---"  ; 13
            PATTERN.Row "--- -- - ---"  ; 14
            PATTERN.Row "--- -- - ---"  ; 15

            PATTERN.Row "E-4 -2 F ---"  ; 16 - 1
            PATTERN.Row "C-4 -2 F 304"  ; 17
            PATTERN.Row "--- -- - 300"  ; 18
            PATTERN.Row "--- -- - 300"  ; 19
            PATTERN.Row "--- -- - 300"  ; 20 - 2
            PATTERN.Row "--- -- - 300"  ; 21
            PATTERN.Row "--- -- - 300"  ; 22
            PATTERN.Row "--- -- - 300"  ; 23
            PATTERN.Row "--- -- - ---"  ; 24 - 3
            PATTERN.Row "--- -- - ---"  ; 25
            PATTERN.Row "--- -- - ---"  ; 26
            PATTERN.Row "--- -- - ---"  ; 27
            PATTERN.Row "--- -- - ---"  ; 28 - 4
            PATTERN.Row "--- -- - ---"  ; 29
            PATTERN.Row "--- -- - ---"  ; 30
            PATTERN.Row "--- -- - ---"  ; 31
        PATTERN.End

 

The format is:

Format:  NsO dI V Epp
Example: E-4 -2 F 304

N: Note (A..G)
s: Sustained (# or -)
d: Drum indicator (d or -)
I: Instrument number (1..127)
V: Volume (0..15)
E: Effect command (0..9, A..X)
p: Effect parameter

 

Any argument can be left unchanged with "-" in its place, so you only need to include changes, just like in a regular tracker.  (No more NUL or DRM event types!)

 

55 minutes ago, Eiswuxe said:

Will the rest of the definitions change (like envelopes, pitch, drums etc.)?

 

The instrument definitions remain the same, although I may extend the data format a little bit later on to support pitch detuning and envelope sustain levels, etc.  The DRUM() macro remains the same, so far, with the only difference that you do not have a limited sample size.  That is to say, you can define each drum to whatever length you want, just end the last line with a zero, or use a handy "DRUM_END" macro.  It looks like this:

@@808_kick:     DRUM($88D, $1A, 1, 1, $F)   ; ~51 Hz
                DRUM($88D, $00, 1, 0, $F)   ;   |   Basic TR-808 Kick, detuned by ~3 Hz
                DRUM($8AD, $00, 1, 0, $F)   ;   |
                DRUM($8AD, $00, 1, 0, $E)   ;   |
                DRUM($8BD, $00, 1, 0, $D)   ;   |
                DRUM($8BD, $00, 1, 0, $C)   ;   |
                DRUM($8CD, $00, 1, 0, $A)   ;   |
                DRUM($8CD, $00, 1, 0, $9)   ;   |
                DRUM($8DD, $00, 1, 0, $8)   ;   |
                DRUM($8DD, $00, 1, 0, $7)   ;   |
                DRUM($8ED, $00, 1, 0, $6)   ;   |
                DRUM($8ED, $00, 1, 0, $5)   ;   |
                DRUM($8F0, $00, 1, 0, $4)   ;   |
                DRUM($8FC, $00, 1, 0, $3)   ;   v
                DRUM($8FC, $00, 1, 0, $2)   ; ~48 Hz
                DRUM_END

 

I may change the format in the future to make it easier and more flexible, but that's like far outside my current concern.

 

55 minutes ago, Eiswuxe said:

At the moment I have just started and go through loading a goat tracker file. But I would love to play around with what you've got already. Thanks for the offer!

 

Sure thing.  Let me get a few things tightened up and I'll send you a PM with the new code and some information on how to use it.

 

Just be aware that it takes more memory to run this new version -- all those XM effects do not come for free (I tried!).

 

  -dZ.

Link to comment
Share on other sites

@DZ-Jay

 

Alright, thanks for clarifying this!

 

Can you say how much % of the available cpu time the playback routine needs per frame?

 

I read through the user manual. Man, this is such a detailed source of information, it must have taken ages to put this all together. Thank you very much!!!

 

I still got another question (for the moment) regarding the format:

Do you always need to specify six pattern-subsequences per pattern row, even if you are just using two voices for playback?

Like 

@@patterns:	DECLE	16, @@p000, @@pXXX, @@pXXX, @@pXXX, @@pXXX, @@pXXX

 

The documentation says that 

Quote

you must include patterns for exactly the number of channels configured. Otherwise, the tracker will not
work correctly and may cause the program to crash.

However, even when using "CALL SET_ACTIVE_CHANNELS(1)" I need to specify 6 patterns per row, otherwise the playback is not correct.

 

Seems to me like a waste of space, but I dont know the internal functionality of the playback routines 😅

Edited by Eiswuxe
Link to comment
Share on other sites

19 minutes ago, Eiswuxe said:

@DZ-Jay

 

Alright, thanks for clarifying this!


No worries.

 

19 minutes ago, Eiswuxe said:

Can you say how much % of the available cpu time the playback routine needs per frame?


The new upcoming one (2.0) or the existing one (1.5 rev4)?

 

19 minutes ago, Eiswuxe said:

I read through the user manual. Man, this is such a detailed source of information, it must have taken ages to put this all together. Thank you very much!!!


You are welcome.  Although I will say that, in retrospect, it is much more technical than it needed to be.  Back when I wrote it, I was not very familiar with the way traditional trackers worked and I wasn’t able to describe things in those common terms.

 

19 minutes ago, Eiswuxe said:

I still got another question (for the moment) regarding the format:

Do you always need to specify six pattern-subsequences per pattern row, even if you are just using two voices for playback?

Like 

@@patterns:	DECLE	16, @@p000, @@pXXX, @@pXXX, @@pXXX, @@pXXX, @@pXXX

 

Seems to me like a waste of space, but I dont know the internal functionality of the playback routines 😅

 

Well, you need to provide either 3 or 6, depending on the maximum number of channels, which is configured using a constant in the global configuration file.


That is just the way the playback routine works.

 

In the new version, I will probably make the number of enabled channels a song header field, so that it can read an arbitrary number of channels per pattern throughout the song.

 

And just to be clear, if you are not using any of the channels, you do not need to create sub-patterns for them, just point them to an empty pattern that consists of null events.

 

    dZ.

Link to comment
Share on other sites

5 minutes ago, DZ-Jay said:

The new upcoming one (2.0) or the existing one (1.5 rev4)?

Both would be nice, if there is a significant difference. My giana sisters game already hits the performance limit, so if anything steals more cpu time then I need to do more optimizing :D

 

7 minutes ago, DZ-Jay said:

I was not very familiar with the way traditional trackers worked and I wasn’t able to describe things in those common terms

I think thats not a problem. I myself have a rich tracker background as I started with Chris Hülsbeck's Sound Monitor on the C64. But since not all people know about trackers, I think its in fact good to not have tracker knowledge as prerequisites.

 

10 minutes ago, DZ-Jay said:

which is configured using a constant in the global configuration file

What is that constant? I could not find it in the demo songs :(

 

10 minutes ago, DZ-Jay said:

just point them to an empty pattern that consists of null events

yes, I already found that out. Thanks!

 

Here is a short sample of what I've got so far. Details in the description
 

 

Link to comment
Share on other sites

41 minutes ago, Eiswuxe said:

Both would be nice, if there is a significant difference. My giana sisters game already hits the performance limit, so if anything steals more cpu time then I need to do more optimizing :D

 


If you are tight on resources, then I would recommend not using 2.0, since I haven’t had a chance to optimize it yet.  😅

 

I believe version 1.5 has the resource requirements in the source code header comments, in the file “tracker.asm.”  If not, I can profile it for you later today.

 

Just know that it depends on the number of active channels and the complexity of patterns per channel.

 

Are you using IntyBASIC or Assembly?  If the former, you should avoid the MUSIC commands if you intend to use the IMT tracker, since they both consume about the same resources.

 

Also, let me know if you need help with optimization.

 

 

41 minutes ago, Eiswuxe said:

I think thats not a problem. I myself have a rich tracker background as I started with Chris Hülsbeck's Sound Monitor on the C64. But since not all people know about trackers, I think its in fact good to not have tracker knowledge as prerequisites.


I intend to re-write the document with a more clear description of how to make music.  At the time, my intention was to document the technology and data formats, based on my reverse-engineering effort.

 

41 minutes ago, Eiswuxe said:

What is that constant? I could not find it in the demo songs :(


Hmm … I’ll find the name other today.  It should be in the manual, in the global configurations section.  There is a configuration file with various assembly symbols, and lots of comments describing what they do.  I think it is called “global-config.asm,” or something like that.

 

The constant name is called TRK_ENABLED_6_CHN.

 

 

 

41 minutes ago, Eiswuxe said:

yes, I already found that out. Thanks!

 

:)

 

41 minutes ago, Eiswuxe said:

Here is a short sample of what I've got so far. Details in the description
 

 


Sounds good!  Is that IntyBASIC music, or IMT?

 

By the way, if you are using IntyBASIC, there is a tool I made to convert song data from IntyBASIC notation to IMT data format.


   dZ.

 

Link to comment
Share on other sites

1 minute ago, DZ-Jay said:

Sounds good!  Is that IntyBASIC music, or IMT?

Thats IMT. First I wanted to create a goat tracker -> inty music converter, since I use Inty Basic. Then I discovered IMT and the additional features like arpeggio (pitch) and drum kits are just what I needed :)

So I decided to do this goat tracker -> IMT converter.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...