Search the Community
Showing results for tags 'music player'.
Found 4 results
I am considering adding a glissando or portamento effect to the Intellivision Music Tracker, and I would like to know how this sort of thing has been implemented in other trackers. Can anybody provide any details on how it works in any other tool they've used in the past? Any guidance or suggestions would be greatly appreciated. -dZ.
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.
Hello everyone! There are quite a few musicians already making some great tunes on the Intellivision using IntyBASIC, but I want to invite them to give the Intellivision Music Tracker a chance. Not because it's better (IntyBASIC is great!) or easier (the tracker is a lot harder!), but because I think it offers some truly remarkable capabilities that allow for more expressive and nuanced compositions. To ease the transition from IntyBASIC Notation (IBN) to the tracker format (IMT), I've created a program that converts music data from one to the other, called IBN-to-IMT. The idea is that anybody can take an IntyBASIC song, convert it into the tracker format, and from there extend it and alter it with additional instruments, channels, patterns, effects, etc. I wanted to illustrate this process myself, so I asked @Nyuundere for a sample of one of his tunes. In the end I wanted to showcase his song transformed with all sorts of bells-and-whistles and give him and others an idea of what can be done. He graciously agreed, and I went to work. Having secured his permission, I will now share the results with everyone. The song chosen for this demonstration is Beat It by Michael Jackson, tracked originally by @Nyuundere for the IntyBASIC Music Player, transformed and remixed for the Intellivision Music Tracker by yours truly, @DZ-Jay. Original IBN: First, here's the original song, as tracked by @Nyuundere. I took the liberty of annotating it by hand, just to provide context on how each part relates to their corresponding sections in the transformed file. beatit-ibn.mp3 beatit-ibn.bas Transformed IMT: Second, here's the converted song, as processed by IBN-to-IMT. I also annotated the file by hand, so that anybody could follow the provenance of each pattern to the original IBN source. Notice that the instruments are merely approximations (although rather close) and that there is no percussion. IBN-to-IMT does not translate the percussion sounds from IntyBASIC, so it is left to the user to add drum and percussion sounds in the final IMT version. That said, the drums capabilities of the Intellivision Music Tracker are much more sophisticated and one of its key differentiators, so this is something you would probably do in any case. beatit-imt.mp3 beatit-imt.asm IMT Remix: Third, with the converted song on hand, I proceeded to create a cool remix by extending the song, changing the instrument sounds, and adding a proper drums track. I based the structure of the song and the drum sounds on the original Beat It track from Michael Jackson's album Thriller. I tried to reproduce the original drums track, complete with handclap accents, and used a "buzzy" bass sound to take the place of the guitar. As with the others, the source includes annotations relating each channel and section to their original counterparts. beatit-remix.mp3 beatit-remix.asm beatit-remix.rom I took the liberty of extending the remix to use the full six channels available with the ECS -- but even when played without the expansion module, it still retains the same feel; only that the extra drum accents and instrument overlay effects are missing. beatit-remix-3ch.mp3 Beat It - Remix.mp4 Information on the Intellivision Music Tracker and the IBN-to-IMT conversion tool can be found in their respective discussion threads: Intellivision Music Tracker IBN-to-IMT: Converting IntyBASIC songs to tracker format Thanks again to @Nyuundere for going through the trouble of tracking the song originally for IntyBASIC, and for begin so gracious in sharing it with me. -dZ.
Wow, after 5 years of being a member of this forum I finally managed to actually code an Atari thingy Made a little sound routine for the mighty TIA, which fixes the "detune problem". This is achieved by re-implementing the TIA waveforms in software, and controlling playback with 16-bit pitch accuracy. All AUDC waveforms except 2,3 and E are supported, playback rate is approx. 10 KHz. The player takes 100% CPU time so it isn't suitable for use in games or demos, unfortunately. If you've followed last year's Silly Venture VCS music competition, you will have heard the player in action on the entry named "Tunabit", which took 2nd place. Anyway, I'm now releasing the source code, as well as an XM converter that can be used to convert music composed with a specially crafted XM template. Disclaimer: I'm only a beginner-level 65xx coder so please tell me if you spot any bugs/possible optimizations/etc. github download (includes win32 converter + xm template) tunabit.bin