Path: utzoo!utgpu!water!watmath!clyde!rutgers!ames!amdahl!dlb!dana!rap From: rap@dana.UUCP (Rob Peck) Newsgroups: comp.sys.amiga Subject: Re: stereo sound (and Dynamic Drums) Summary: get-any-channel works that way ... may be harder to do it right. Keywords: sound channel allocation MIDI Message-ID: <299@dana.UUCP> Date: 25 Jan 88 20:10:37 GMT References: <5899@utcsri.UUCP> <2793@masscomp.UUCP> Distribution: na Organization: Dana Computer, Inc., Sunnyvale, CA Lines: 54 In article <2793@masscomp.UUCP>, rad@masscomp.UUCP (Bob Doolittle) writes: > mentioned this), all music packages for the Amiga to which I've had > exposure do a very poor job of utilizing the stereo. I use the Mimetics > Pro MIDI Studio. Even if I only lay down 2 tracks (using 2 voices), > when I play it back the tracks jump from right to left between notes. > I've heard the same problem holds for Deluxe Music Construction Set. > This effect can really ruin an otherwise reasonable sounding piece. I > presume that these packages are simply allocating a free channel on a > note-by-note basis, rather than being intelligent about channel > allocation. > > I've never programmed the sound - can anybody think of a good reason why > software is written this way? Is it really so hard to do right? > You are correct as to the effect that you are hearing, one can only hope that the authors of these programs see your posting (or better still, you might consider writing to them directly and point out the problem... send a copy of your otherwise delightful music piece as an example and ask WHY they made it do this. One would assume that individual tracks would automatically be assigned to individual channels of the audio, at least until one goes past the four available real channels, and even then individual tracks should STILL stay on the same channel. Musicraft, (now known as SONIX) does the same thing for the Amy keyboard when it is being played individually, notes jump from channel to channel.... some of this is a necessary byproduct of trying to have four notes going simultaneously, each of which has an ADSR waveform associated with it. You may be running into the same problem. What I'd look for is an option to be added to the program, in a preferences sort of thing, that would assign tracks to left-side or right side, then use pre-emptive scheduling of the notes. Then the note that is farther down the ADSR waveform gets cancelled after there are more than 2 notes going at a time in a left or right channel. But then, again, one might consider how BAD this might sound (of course nowhere near as bad as having the image jump from one channel to another). The only way out that I can see is to make the software even more complex internally, and to simulate multiple hardware channels using single hardware channels as a base (adding interrupt routines, dynamically adding up waveform components and fully double buffering the sound waveforms for each real hardware output channel). Unfortunately, this method eats up some bits of precision along the way (2 waves, each at max volume, could only be added together at half-max volume otherwise take a chance on clipping), but it might be worth the effort to try it. [side note to owners of the original ROM Kernel manuals - this technique there was known as Double-Duffering (grin) ... one of the few typos that folks pointed out to us, but in LARGE print]. Someone (maybe me) will eventually hack the AudioTools to add emulation of multiple hardware channels. Would be nice. Rob Peck ...ihnp4!hplabs!dana!rap