+DZ-Jay Posted February 2, 2021 Share Posted February 2, 2021 (edited) Hello, In my aim to make the Intellivision Music Tracker useful and increasing its appeal to IntyBASIC programmers, I want to make sure it at least offers at a minimum any critical features that the IntyBASIC music player has. One thing that was missing, and that some have already asked me about, is the ability to disable channels in the tracker so that you can use them for sound effects. Unfortunately, the Intellivision Music Tracker messes with all PSG channels during playback, even if it's just to re-assert silence. I added a simple enhancement that allows the programmer to configure the tracker at runtime to leave some PSG channels untouched. It works by organizing the channels into a prioritized list, and only using the number of channels requested, starting from the one with the highest priority. In order to emulate something like "PLAY SIMPLE" in IntyBASIC, I chose to assign the lowest priority to the third channel of each PSG. The priority list then looks like this: A (Main PSG) - Highest priority B (Main PSG) D (ECS PSG) E (ECS PSG) F (ECS PSG) C (Main PSG) - Lowest priority +-----------+-----------+ | MAIN PSG | ECS PSG | +---+---+---+---+---+---+ | A | B | C | D | E | F | +---+---+---+---+---+---+ | 1 | 2 | 6 | 3 | 4 | 5 | +---+---+---+---+---+---+ So, for example, if you are only using the main PSG without the ECS, and you request 2 active channels, the tracker will use "A" and "B" and leave "C" untouched. Likewise, if you plan to take advantage of the ECS extra PSG to play additional music channels, you can request 5 active channels and the tracker will use "A", "B", and the three ECS channels, and still leave "C" untouched. That allows you to predictably reserve "C" for sound effects, and still take advantage of the extra sound channels of the ECS for the tracker, just like when using "PLAY SIMPLE" in IntyBASIC. However, in contrast to "PLAY SIMPLE," you are not constrained to just reserving one or two channels; you can configure the tracker to use anywhere from 1 to 5 channels, disabling the rest and reserving them for external use. All you need to do is use the macro "SET_ACTIVE_CHANNELS(n)" where "n" is the number of channels to use. The default is 6, letting the tracker use them all. ' Enable 5 channels for tracker use. ' This reserves channel "C" for other things. SET_ACTIVE_CHANNELS(5) ' The song will start playing immediately. CALL TRKLOADSONG(VARPTR MYSONG(0)) (Obviously the feature is available using the native Assembly Language interface of the Intellivision Music Tracker as well.) The full set of channel priority configurations are as follows: +------------------------+-----------+-----------+ | | MAIN PSG | ECS PSG | +------------------------+---+---+---+---+---+---+ | SET_ACTIVE_CHANNELS(n) | A | B | C | D | E | F | +------------------------+---+---+---+---+---+---+ | 1 | X | - | - | - | - | - | +------------------------+---+---+---+---+---+---+ | 2 | X | X | - | - | - | - | +------------------------+---+---+---+---+---+---+ | 3 | X | X | - | X | - | - | +------------------------+---+---+---+---+---+---+ | 4 | X | X | - | X | X | - | +------------------------+---+---+---+---+---+---+ | 5 | X | X | - | X | X | X | +------------------------+---+---+---+---+---+---+ | 6 | X | X | X | X | X | X | +------------------------+---+---+---+---+---+---+ LEGEND: [ - ] => Inactive [ X ] => Active One important thing to note is that, because channels "A" and "D" are the only ones in which the tracker supports drums, we may want to keep those at a higher priority, or else you lose the ability to use drums when using less than the full set of channels. What do you guys think? I know it is a useful feature to be able to reserve some channels for non-tracker use, but is this a good interface? Would it be helpful, or is it too confusing? Is the priority order too wonky? Any feedback will be welcomed! -dZ. Edited February 2, 2021 by DZ-Jay 1 Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted February 2, 2021 Author Share Posted February 2, 2021 By the way, playing drums instruments using noise in the "A" or "D" channels may get in the way of your sound effects, in much the same way that "PLAY SIMPLE" without the "NO DRUMS" option would. The good thing is that, contrary to IntyBASIC, the Intellivision Music Tracker doesn't play drums automatically; it only plays drums you create in your patterns, and only uses the noise generator as instructed by your drum instrument definitions. To avoid any interference from the tracker, just don't play any patterns with drum instruments that use noise. -dZ. 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.