Search the Community
Showing results for tags 'Music Programming'.
-
Merry Christmas & Happy New Year, everyone! I've been working on a little project for the past several months and it is finally ready to be shared. Introducing the new and improved Intellivision Music Tracker v1.5. Just what is an "Intellivision Music Tracker"? It's a software library that allows you to play specially crafted music files in your own Intellivision games. These files are similar in nature to the classic tracker module (MOD) format employed in many old school platforms. Originally written by Arnauld Chevallier and released to the public domain many years ago, this new version includes many changes, enhancements, bug fixes, and fully comprehensive documentation. This entire project started as part of the demo Voyage: An Intv Journey. The original idea was to take Arnauld's tracker and enhance it to support the additional sound processor in the ECS, and fix a few latent bugs. I then took it upon myself to reverse-engineer the entire tracker and document in exhaustive detail the data format in order to add new features to it. The result is not only a comprehensive user manual and technical guide, but an improved and highly-optimized version of the tracker. Plus it plays some of the best kick-ass drums you've ever heard on an 8-bit sound chip. Below is a list of the most important features of the Intellivision Music Tracker: Pattern-based song sequencing, with support for an unlimited number of patterns. Supports up to six independent sound channels, updated and playing simultaneously. Full 6-note polyphony; 5-note polyphony, with one drum channel; or 4-note polyphony, with two drum channels. 64-point user-defined software envelopes. 4-step pitch effects (e.g., arpeggios). Vibrato effects configurable with 3 levels of depth. Simple programmable drum sound synthesizer. Supports up to 85 individual instrument definitions with independent envelopes, and pitch and amplitude modulation effects. Supports over 40 individual drum instrument definitions per song. Global master volume control. Dynamic active channel selection. (New!) And if all of that wasn't enough, in a fantastic twist of fate, this new version includes support for IntyBASIC integration, making it dead-simple to incorporate the tracker in your own IntyBASIC games! The standard distribution includes everything you need: Tracker v1.5 User Manual & Technical Guide. Tracker library and dependency modules. Interface modules for both Assembly Language and IntyBASIC programs. A global music definition file with useful predefined envelopes, effects, and drum sounds. Eight sample songs, including a cool drums solo showcasing the new drum sounds. Along with the standard distribution, I include below an "IntyBASIC SDK" project with an example program illustrating how to use the tracker from IntyBASIC. Current Revision #4 (2021-03-07) Tracker v1.5 User Manual & Technical Guide.pdf - User Manual trk-distro-rev4.zip - Standard Distribution trk-demo (IntyBASIC).zip - IntyBASIC SDK Project And for those who do not want to build or compile the project to check it out, below are some MP3s exported from the emulator playing the sample songs: butterfly-remix.mp3 - Flight Of The Butterfly - By @carlsson demo-remix.mp3 - Demo Song (Remix) - By @Arnauld drums-demo-808.mp3 - Drums Demo (Funk My Drum Machine) - By @DZ-Jay space-music.mp3 - Journey Through The Stars (Space Music) - By @carlsson voyage-remix.mp3 - Voyage Theme - By @carlsson beatit-remix.mp3 - Beat It (Remix) - By Michael Jackson (originally tracked by @Nyuundere, remixed by @DZ-Jay) One of my goals in documenting the data format so thoroughly was to enable the creation of MOD-to-Inty or MIDI-to-Inty programs to convert standard music files to the Intellivision Music Tracker format. I hope others will take inspiration of this project and contribute to this effort. Let us enrich the musical library of the Intellivision and expand the pool of musicians working on it. Many thanks to Arnauld Chevallier for the original software and for his many contributions to this community. Now, go make some cool music! Cheers! -dZ. Latest Version Release Notes: NEW: Instrument envelopes now recycle indefinitely, by backtracking a number of sample points from the end. The backtracking offset is configurable with a global constant. FIXED: Optimized the code for size and speed to compensate for additional code brought in by recent enhancements. FIXED: Changed the behaviour of "NULL" events that include instrument changes, to reset the channel counter. The old behaviour is believed to be a bug. FIXED: Included the latest version of IBN-to-IMT conversion tool. UPDATES: 2021-01-10: Updated attachments of library distribution to revision #1. 2021-01-22: Updated attachments of library distribution to revision #2. 2021-02-03: Updated attachments of library distribution to revision #3. 2021-03-07: Updated attachments of library distribution to revision #4.
- 42 replies
-
- 10
-
- intellivison
- trackers
-
(and 2 more)
Tagged with:
-
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.
- 1 reply
-
- 1
-
- intellivision
- music player
-
(and 3 more)
Tagged with:
-
I wanted to start an open discussion on music programming with the Atari 800XL home computer. This topic is for sharing Atari basic source code for music and sound effects as well as learning how to program chiptunes on your Atari at home. I hope here we can learn and experience more about programming in basic and help others write their own music projects with this classic system. Rock on! \m/
- 7 replies
-
- 3
-
- Music
- Atari 800XL
-
(and 3 more)
Tagged with: