Jump to content

Search the Community

Showing results for tags 'trackers'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • Atari Systems
    • Atari General
    • Atari 2600
    • Atari 5200
    • Atari 7800
    • Atari Lynx
    • Atari Jaguar
    • Atari VCS
    • Dedicated Systems
    • Atari 8-Bit Computers
    • Atari ST/TT/Falcon Computers
  • Classic Consoles
  • Classic Computing
  • Modern Consoles
  • Gaming General
  • Marketplace
  • Community
  • Community
  • Game Programming
  • Site
  • PC Gaming
  • The Club of Clubs's Discussion
  • I Hate Sauron's Topics
  • 1088 XEL/XLD Owners and Builders's Topics
  • Atari BBS Gurus's Community Chat
  • Atari BBS Gurus's BBS Callers
  • Atari BBS Gurus's BBS SysOps
  • Atari BBS Gurus's Resources
  • Atari Lynx Programmer Club's CC65
  • Atari Lynx Programmer Club's ASM
  • Atari Lynx Programmer Club's Lynx Programming
  • Atari Lynx Programmer Club's Music/Sound
  • Atari Lynx Programmer Club's Graphics
  • The Official AtariAge Shitpost Club's Shitty meme repository
  • The Official AtariAge Shitpost Club's Read this before you enter too deep
  • Arcade Gaming's Discussion
  • Tesla's Vehicles
  • Tesla's Solar
  • Tesla's PowerWall
  • Tesla's General
  • Harmony/Melody's CDFJ
  • Harmony/Melody's DPC+
  • Harmony/Melody's BUS
  • Harmony/Melody's CDFJ+
  • Harmony/Melody's General
  • ZeroPage Homebrew's Discussion
  • Furry Club's Chat/RP
  • PSPMinis.com's General PSP Minis Discussion and Questions
  • PSPMinis.com's Reviews
  • Atari Lynx 30th Birthday's 30th Birthday Programming Competition Games
  • 3D Printing Club's Chat
  • Drivers' Club's Members' Vehicles
  • Drivers' Club's Drives & Events
  • Drivers' Club's Wrenching
  • Drivers' Club's Found in the Wild
  • Drivers' Club's General Discussion
  • Dirtarians's General Discussion
  • Dirtarians's Members' Rigs
  • Dirtarians's Trail Runs & Reports
  • Dirtarians's Wrenching
  • The Green Herb's Discussions
  • Robin Gravel's new blog's My blog
  • Robin Gravel's new blog's Games released
  • Robin Gravel's new blog's The Flintstones Comic Strip
  • Atari Video Club's Harmony Games
  • Atari Video Club's The Atari Gamer
  • Atari Video Club's Video Game Summit
  • Atari Video Club's Discsuuions
  • Star Wars - The Original Trilogy's Star Wars Talk
  • PlusCart User's Bug reports
  • PlusCart User's Discussion
  • DMGD Club's Incoming!
  • DASM's General
  • AtariVox's Topics
  • Gran Turismo's Gran Turismo
  • Gran Turismo's Misc.
  • Gran Turismo's Announcements
  • The Food Club's Food
  • The Food Club's Drinks
  • The Food Club's Read me first!
  • The (Not So) Official Arcade Archives Club's Rules (READ FIRST)
  • The (Not So) Official Arcade Archives Club's Feedback
  • The (Not So) Official Arcade Archives Club's Rumor Mill
  • The (Not So) Official Arcade Archives Club's Coming Soon
  • The (Not So) Official Arcade Archives Club's General Talk
  • The (Not So) Official Arcade Archives Club's High Score Arena
  • Adelaide South Australia Atari Chat's General Chat & Welcome
  • Adelaide South Australia Atari Chat's Meets
  • Adelaide South Australia Atari Chat's Trades & Swaps
  • KC-ACE Reboot's KC-ACE Reboot Forum
  • The Official Lost Gaming Club's Lost Gaming
  • The Official Lost Gaming Club's Undumped Games
  • The Official Lost Gaming Club's Tip Of My Tounge
  • The Official Lost Gaming Club's Lost Gaming Vault
  • The Official Lost Gaming Club's Club Info
  • GIMP Users's Discussion
  • The Homebrew Discussion's Topics
  • Hair Club for Men's Bald? BEGONE!


There are no results to display.

There are no results to display.


  • AtariAge Calendar
  • The Club of Clubs's Events
  • Atari BBS Gurus's Calendar

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start










Custom Status



Currently Playing

Playing Next

Found 11 results

  1. 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.
  2. As part of a collaborative project with game and chiptune musician @Nyuundere, I've prepared a set of remixes of his Intellivision tracks for the Intellivision game Sea Venture, released back in 2018. @Nyuundere recently released his video game soundtracks as compilation CDs, and he graciously asked me to remix the Sea Venture tracks using the Intellivision Music Track (IMT). Starting from @Nyuundere's original tracks written in a notation for the IntyBASIC music player, I converted them to the IMT format and rearranged them in interesting ways. The resulting tracks take advantage of the six channels available on an Intellivision expanded with the ECS computer module, and include all new instrument sounds and custom drums designed specifically for this project -- all beautifully played on two AY-3-8914 for maximum chiptune goodnes. There are seven remixed tracks in total in the Sea Venture Soundtrack compilation CD: Beat It - Michael Jackson Tainted Love (Mastermix) - Soft Cell Down Under - Men At Work We're Not Gonna Take It - Twisted Sister Take On Me - a-Ha Jessie's Girl - Rick Springfield Overtaken - Activision Anthology (GBA) I intend to prepare a music player ROM to share, but in the meantime, I've recorded simple videos for each track and posted them to my Vimeo channel. If you are interested in a copy of the Sea Venture Soundtrack compilation CD, you may contact @Nyuundere directly via PM. In any case, I include links to all the videos below, for your enjoyment. Sea Venture Soundtrack - The Remixes Beat It (Remix) Tainted Love Mastermix (Remix) Down Under (Remix) We're Not Gonna Take It (Remix) Take On Me (Remix) Jessie's Girl (Remix) Overtaken (Remix)
  3. Here is another Intellivision track from the collaborative project with game and chip-tune musician @Nyuundere. Tracked for the Intellivision Music Tracker, using the six channels available on an Intellivision expanded with the ECS computer module. Presenting, Twisted Sister's 1986 rock anthem, "We're Not Gonna Take It," as played by an Intellivision! Enjoy! -dZ. We're Not Gonna Take It Released by Twisted Sister in 1986. Originally tracked for IntyBASIC in three channels by @Nyuundere. Re-tracked and remixed for IMT in six channels by @DZ-Jay.
  4. As part of a collaborative project with game and chip-tune musician @Nyuundere, I've prepared a set of remixes of his Intellivision tracks for the Sea Venture game. @Nyuundere is releasing his recent videogame soundtracks as compilation CDs, and he graciously asked me to remix the Sea Venture tracks using the Intellivision Music Tracker. Starting from @Nyuundere's original tracks written in a notation for the IntyBASIC music player, I converted them to the IMT format and rearranged them in interesting way. The resulting tracks take advantage of the six channels available on an Intellivision expanded with the ECS computer module, and include all new instrument sounds and custom drums -- all beautifully played on two AY-3-8914. There are seven remixed tracks in total. The Intellivision has never sounded so good! I intend to prepare a music player ROM to share, but in the meantime, @Nyuundere has been gracious enough to upload a video showcasing one of the tracks -- indeed, my favourite one of the lot! Presenting, Tainted Love Mastermix, as played by an Intellivision! Enjoy! -dZ. Tainted Love Released by Soft Cell in 1981. Originally tracked for IntyBASIC in three channels by @Nyuundere Re-tracked and remixed for IMT in six channels by @DZ-Jay
  5. 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.
  6. 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.
  7. Yes, with the right tracker software. I just released an updated version of the Intellivision Music Tracker, which allows Intellivision programmers to play specially-crafted music files in their games. The song format is similar to the classic "XM" module from Fast Tracker II, but with all instruments synthesized in software. It also includes facilities to synthesize drum sounds to accompany your tracks. I included in this new distribution some very cool sample songs and a library of useful envelopes, effects, and drum sounds to use in your own songs. The software also comes with full documentation. If you are interested, check out the main topic thread in the Intellivision Programming forum: So ... want to hear the Intellivision play drums? Check out this kick-ass drum track I created to showcase the new drum sounds I created for the tracker: drums-demo-808.mp3 The drums are based on the sounds of the classic Roland TR-808 drum machine. I call the track, "Funk My Drum Machine." Not too bad for a sound chip with only square wave tones and no filters whatsoever. Enjoy! -dZ.
  8. 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.
  9. Please don´t hit me, I know, there exists tons of good stuff for RAM expanded ATARI´s up to 512k 😎, but can somebody tell me, which Tools, Programs or Demos using the advantage of the 1MB and especially the 2/4MB? Or has anyone of the Antonia owners already programmed something of their own that takes advantage of the 4MB? Thx., andY
  10. Introducing IBN-to-IMT: A program to convert music data from IntyBASIC Notation (IBN) to Intellivision Music Tracker format (IMT). Description: The program will translate a music module composed in IntyBASIC Notation (IBN), into the data format used by the Intellivision Music Tracker (IMT). The result is an assembly source file with the original song represented in the target format. The output file includes instrument definitions that attempt to reproduce the IntyBASIC sounds. By default, IBN-to-IMT will produce output to support 6 channels, following the default configuration of the Intellivision Music Tracker. It will also try to determine automatically the most optimal length of patterns to use, removing duplicate patterns across all channels. The default behaviour can be altered with command line options. How It Works: The crucial problem that IBN-to-IMT attempts to address is how to identify patterns, and how to determine an optimal pattern length in which to split the song data. The solution it employs is actually to apply brute-force. First, the program scans the original BASIC source file and identifies all the labels and music player commands, extracting a stream of note events (the song stream) and splitting them into channels. Any music subroutines encountered via the command "MUSIC GOSUB" are unrolled and included inline as part of the song stream. Throughout this entire pre-processing step, the volume and active instrument of each channel in the original source is tracked. Then, operating on each extracted channel in turn, the program splits the song stream repeatedly into patterns of various row lengths. At each split, it attempts to deduplicate re-occurring patterns across all channels, and computes an estimate of the size of the data needed to reproduce it. When all lengths are tested, the program compares the relative sizes of the data for each iteration, and chooses the smallest one. This is assumed to be the optimal length with a balance between rows and data size. The selected pattern split is then rendered in the Intellivision Music Tracker (IMT) format by emitting the sequence of reused patterns, the channel patterns, and their individual note event sub-patterns. Any patterns corresponding to a labeled section in the original, will include a comment with its corresponding label for reference. Caveats: You must ensure that the source file contains only song statements in valid IntyBASIC Notation (IBN). Variable song speed is not supported by the Intellivision Music Tracker. Therefore, the "MUSIC SPEED" command simply sets the speed for the entire song. The program works best when the original song is naturally organized into repeating groups of notes or musical passages of the same length. Because the implementation of the Intellivision Music Tracker synthesizer is different from that of the IntyBASIC music player, the instrument sounds will only be approximations. The commands "MUSIC STOP" and "MUSIC REPEAT" are interpreted as the end of the song. Therefore, any following statements will be ignored unless referenced in some other way. You should take care to ensure that control-flow commands such as "MUSIC JUMP" and "MUSIC GOSUB" follow a coherent and logical flow. Chaotic jumping around in your song may not translate correctly. Be very careful when exiting a subroutine prematurely via a "MUSIC JUMP" command. This may result in unbalanced "GOSUB/RETURN" pairs. Because pattern extraction occurs independently of label positioning, there is a chance that labels wil not line up with the start of a pattern. Consequently, determining the backtracking from the target of a "MUSIC JUMP" command may fail. In such event, the program will default to an end-of-song marker. Known Issues & Limitations: Error checking is superficial at best. (What can I say, I'm an optimist. And lazy.) Drum arguments are read and extracted, but completely ignored during processing. The control-flow command "MUSIC JUMP" is treated in a special way: If it points forward into the song stream, it will skip all notes until that point If it points backwards to a previously encountered label, it will signal the end of the song and set the target as the repeat offset for backtracking at the end of the sequence. If a target pattern cannot be determined for some reason, it will default to the end-of-song marker. The performance command "MUSIC SPEED" will override the actual speed of the entire song, not just of the following sections. How To Use: For details on how to use IBN-to-IMT and for a comprehensive description of its features and available options, please see the User's Manual included with the program. Requirements: IBN-to-IMT is implemented as a Perl script. Therefore, you need an installation of the Perl programming language in your computer. On Mac, Unix, or Linux systems, Perl is usually included automatically in the standard operating system distribution. For Windows PCs, you may need to download one and install it. There are many distributions out there, most of them free for non-commercial use. One I've used in the past is ActivePerl from ActiveState. Acknowledgements: This program would not have any reason to exist if it were not for the fabulous work by Arnauld Chevallier (@Arnauld) and Oscar Toledo (@nanochess), respective authors of the original Intellivision Music Tracker and IntyBASIC. I would also like to thank @Nyuundere and @First Spear for suggesting the idea for this tool, and for providing sample files from their own personal repertoires on which to test. Most of my initial testing was done on a few sample IBN files I found in this forum, which happen to be published by @First Spear. Download: IBN-to-IMT is now included as part of the Intellivision Music Tracker distribution package. You are encouraged to get the latest version of the tracker from its dedicated thread. Nonetheless, below is the conversion program on its own, along with a copy of the user's manual. trk-utils.zip ibn2imt-manual.txt UPDATES: 2021-03-04: Updated attachments to latest version (from trk-distro-r4).
  11. Reviving this old question about how to handle very long notes with fast envelopes in the Intellivision Music Tracker. To recap, the problem is that the tracker has no bounds checking in its envelopes, so if a note extends for too long, the envelope pointer will overflow to somewhere else in the data, which is most likely another envelope or trash. This is even more pronounced after I added very fast envelopes in the last tracker revision, which advance on every tick. I would appreciate if anybody has any suggestions on how best to resolve this issue. The problem can be split into two parts: First, there's the design component: how should the tracker handle very long notes? Should envelopes loop, backtrack, or just end? Second, there's the technical component: how to make this work within the constraints of the current implementation. For the first part, I can think of three possible solutions: Envelopes that include a backtracking offset, as suggested by @carlsson in the past. The idea is that when the synthesizer reaches the end of the envelope, it will use this offset to backtrack and repeat. This would allow for more flexible instrument design, but it may be over-complicate the implementation. It may also break previous songs. Envelopes that recycle automatically to a set point. This is what IntyBASIC currently does, which seems in tune with how real instruments work: once an amplitude level is reached, it is sustained until the note is released. This would be a bit less flexible than allowing arbitrary backtracking, but seems that it should be easier to implement. It would also be fully-backwards compatible with existing songs. Require very long envelopes, say 128 sample points instead the current 64. The problem is that envelopes require one data word per each sample point, so an extra 64 points will require 16 additional data words, per envelope. With lots of envelopes in use, this can get costly fast. I think #3 is not really an option. It is actually the way it works today (since the 64-point length is not enforced), but it leads to bloat. Plus, there is never a guarantee that a long enough note will not overflow the envelope. My experience suggests that this sort of problem is hard to identify. I think #1 is a good thing to have, but perhaps arbitrary offsets are not strictly necessary, and perhaps not worth the processing cost. After all, IntyBASIC proves that a static backtracking offset is perfectly adequate. Plus it sort of mimics the typical ADSR (Attack/Decay/Sustain/Release) envelope scheme, where the "Sustain" amplitude is maintained indefinitely until release. What do you think? Any feedback is welcome. -dZ.
  • Create New...