Jump to content
IGNORED

Sound effects interupt music Why does that happen?


daldude

Recommended Posts

Why do all official non home brew Intellivision games except Bump 'n' Jump have that problem where any time a sound effect plays it will interrupt any music that is playing? I always hated it when a sound effect would intrupt the music in Thunder Castle especially the power up music that was real cool and showed off how awesome Intellivision's music was. DK Arcade doe not have this problem, you can get the hammer and still hear all the sound effects and on the elevators board it would play all the sound effect of Mario Walking the springs bouncing and falling and Mario jumping and even getting a bonus item without interrupting any of the other sounds. Even sound effects would interrupt each other, in He Man every time you fire the laser or drop a bomb you did not hear the sound of the of the Wind Raider engine.In Astrosmash every time you hit a rock it interrupts the sound of you gun firing but the spinners don't do this and their sounds are not even interrupted by the sound of a rock exploding. Skiing when you hit a flag it interrupts the sound of your guy sliding down the mountain for a quarter second,.Burger Time every time you walk over a bun it interrupts the music, Space Armada did not have the problem either it would play all sound effects without one interrupting another Space Patrol did not have this problem and it is another Home Brew and it even had 3 part musical harmony and was able to play all sound effects without interrupting any other sounds or the music.

Link to comment
Share on other sites

It all comes down to voice usage and voice priority. The Intellivision can do 3 voices + noise. If you do more, one of the voices will drop out, and the new sound will take its place. Voices can be prioritized so you choose which will remain and which will go.

 

Space Patrol took advantage of the ECS computer expansion module, which gave you 3 more voices + noise (because it had its own sound chip).

 

Not sure without checking on DK, but most likely each sound used was only a single channel (like the hammer music), so nothing canceled out.

Link to comment
Share on other sites

I believe part of the issue with the earlier Intellivision games is that the music sub-system of the EXEC, and the programming techniques to exploit it, weren't as sophisticated as in later games. Although you could program each channel individually, it was also possible to play music with a single "instrument" that used all three voices to shape the sound. I would imagine that the latter would be easier, and in most cases, more effective, since it sounded richer and more "musical" than the beeps and blips of playing a single square wave tone without modulation.

 

Eventually, better techniques were developed to re-use and mix channels in complex ways. Keep in mind that home-brews now can take advantage of 30 years of collective experience in making not only Intellivision Games, but all video games in general. We know what works and what doesn't, and we know how to add that extra "polish" that makes a game shine.

 

I can imagine that somewhere along those 30 years, it was recognised that cutting a sound so abruptly when another one played, wasn't acceptable any more.

 

-dZ.

  • Like 2
Link to comment
Share on other sites

It all comes down to voice usage and voice priority. The Intellivision can do 3 voices + noise. If you do more, one of the voices will drop out, and the new sound will take its place. Voices can be prioritized so you choose which will remain and which will go.

 

Space Patrol took advantage of the ECS computer expansion module, which gave you 3 more voices + noise (because it had its own sound chip).

 

Well, it also comes down to programming model more generally. dZ gives a pretty reasonable description of the EXEC-based games up above.

 

Space Patrol has simultaneous SFX and music with or without the ECS attached. It uses a hybrid dynamic/static allocation scheme to ensure the music keeps playing and SFX sound reasonable in both configurations. During the main game, music gets channel A on the main PSG, drum track gets channel A on the ECS, and sound effects duke it out for the other channels. Certain sound effects (such as the 'slide whistle' alien sound, and the bass note of the tank's jump effect) are only allowed to play if the ECS is present, just so they don't swamp everything. Occasionally, SFX are allowed to take over the entire PSG (the tank dying sound effect, for example), and other times music is allowed to take over the entire PSG (the intro, interstitial and game over music bits, for example).

 

There's more detail and the occasional funny comment in the source:

 

My other game is a little more crude. All of the music and sound in that game were effectively "samples", stored as a sequence of PSG register values vs. time. Because I didn't need more than one sound effect at a time, but that sound effect could take 1 to 3 channels, I had a very simple priority scheme. I developed a MIDI to PSG tool to convert the music, allocating sound channels from A to C. I tried in software to identify what was melody vs. what was accompaniment to shift melody toward channel A. I wrote the sound effects manually, and used channels starting from C. I tried to keep the music down to 2 channels most of the time and sound effects down to 1 channel, with a few SFX taking over 2 or 3 channels. A simple priority scheme favored SFX over music on each channel, but, importantly, always kept time for the music. So, SFX could borrow channels, but it didn't otherwise disrupt the music. If you have a copy of that game, go to the sound test screen, start the title-screen music and mash various sound effects into it. The channel-borrowing behavior is much more noticeable than with the in-game music, as I didn't limit the title screen music's channel allocation.

 

Expanding on what dZ said above: EXEC based music and sound effects is "single threaded.". You can play music, or you can play a single sound effect. You can't do both at the same time. The result is pretty awful when games try to make it work by 'pausing' the music to play sound effects. For example, I usually have to turn the volume down when playing Buzz Bombers because sound effects keep messing with the rhythm of the music, and a fast, even rhythm is what defines Flight of the Bumblebee. (If it muted the music and still kept time, it wouldn't be so bad.) I hated it so much, I made sure my games didn't have that issue. :-)

Edited by intvnut
  • Like 5
Link to comment
Share on other sites

When we did Bump and Jump for the Atari 2600, we only had 2 sound channels available, and we wanted to play two channels of music and have sound effects.

 

So we (we means Jeff Ratcliff, who actually wrote the sound routines) pretended that we had the two channels available for music all the time, and updated all the music position variables accordingly. When we had to make a sound effect, we would grab a sound channel and set a flag saying "Sorry this channel is in use". The music driver would compute all the values to send to the sound chip, but when it got time to write to the sound chip, it would check for the availability flag, and if the channel was in use it wouldn't write any values.

 

The result was that the music always advanced properly, but if one or two sound effects were happening, you couldn't hear the music track. Most of the time, this created the illusion that the music was always playing, but the sound effects sometimes drowned it out. (We kept the sound effects loud and short to enhance this effect...)

  • Like 10
Link to comment
Share on other sites

 

Well, it also comes down to programming model more generally. dZ gives a pretty reasonable description of the EXEC-based games up above.

 

Space Patrol has simultaneous SFX and music with or without the ECS attached. It uses a hybrid dynamic/static allocation scheme to ensure the music keeps playing and SFX sound reasonable in both configurations. During the main game, music gets channel A on the main PSG, drum track gets channel A on the ECS, and sound effects duke it out for the other channels. Certain sound effects (such as the 'slide whistle' alien sound, and the bass note of the tank's jump effect) are only allowed to play if the ECS is present, just so they don't swamp everything. Occasionally, SFX are allowed to take over the entire PSG (the tank dying sound effect, for example), and other times music is allowed to take over the entire PSG (the intro, interstitial and game over music bits, for example).

 

There's more detail and the occasional funny comment in the source:

 

My other game is a little more crude. All of the music and sound in that game were effectively "samples", stored as a sequence of PSG register values vs. time. Because I didn't need more than one sound effect at a time, but that sound effect could take 1 to 3 channels, I had a very simple priority scheme. I developed a MIDI to PSG tool to convert the music, allocating sound channels from A to C. I tried in software to identify what was melody vs. what was accompaniment to shift melody toward channel A. I wrote the sound effects manually, and used channels starting from C. I tried to keep the music down to 2 channels most of the time and sound effects down to 1 channel, with a few SFX taking over 2 or 3 channels. A simple priority scheme favored SFX over music on each channel, but, importantly, always kept time for the music. So, SFX could borrow channels, but it didn't otherwise disrupt the music. If you have a copy of that game, go to the sound test screen, start the title-screen music and mash various sound effects into it. The channel-borrowing behavior is much more noticeable than with the in-game music, as I didn't limit the title screen music's channel allocation.

 

Expanding on what dZ said above: EXEC based music and sound effects is "single threaded.". You can play music, or you can play a single sound effect. You can't do both at the same time. The result is pretty awful when games try to make it work by 'pausing' the music to play sound effects. For example, I usually have to turn the volume down when playing Buzz Bombers because sound effects keep messing with the rhythm of the music, and a fast, even rhythm is what defines Flight of the Bumblebee. (If it muted the music and still kept time, it wouldn't be so bad.) I hated it so much, I made sure my games didn't have that issue. :-)

What games have you made ? What game are you referring to when you say

 

"My other game is a little more crude. All of the music and sound in that game" were effectively "samples", stored as a sequence of PSG register values vs. time."?

 

and what game are you referring to when you say

"If you have a copy of that game, go to the sound test screen, start the title-screen music and mash various sound effects into it."?

Edited by daldude
Link to comment
Share on other sites

What games have you made ? What game are you referring to when you say

 

My other game is a little more crude. All of the music and sound in that game" were effectively "samples", stored as a sequence of PSG register values vs. time."?

 

and what game are you referring to when you say

:If you have a copy of that game, go to the sound test screen, start the title-screen music and mash various sound effects into it."?

4-tris
Link to comment
Share on other sites

What games have you made ? What game are you referring to when you say

 

"My other game is a little more crude. All of the music and sound in that game" were effectively "samples", stored as a sequence of PSG register values vs. time."?

 

and what game are you referring to when you say

"If you have a copy of that game, go to the sound test screen, start the title-screen music and mash various sound effects into it."?

Another Sound effect that only plays when the ECS is attached is the Buzz sound when you jump which is cool because that is what Moon Patrol does in the arcade I thought that was so cool that the game had such a detail to being as close to the game it was inspired to as it could get to even include what most people do not even notice about the game.

By "Drum Track" I assume you mean the Percussion or Hi-Hat Cymbal part of the music?

Link to comment
Share on other sites

Another Sound effect that only plays when the ECS is attached is the Buzz sound when you jump which is cool because that is what Moon Patrol does in the arcade I thought that was so cool that the game had such a detail to being as close to the game it was inspired to as it could get to even include what most people do not even notice about the game.

By "Drum Track" I assume you mean the Percussion or Hi-Hat Cymbal part of the music?

 

That's what I meant by the "bass note" portion of the the jump sound effect. And yes, by drum track, I mean the cymbal-like steady percussion track.

 

The arcade machine has 2 PSGs and an ADPCM sound chip for the explosion sound effects. The Intellivision just has 2 PSGs. So, you can get pretty close sound-effect wise until the explosions show up. If you listen closely to the arcade machine, the explosions sound an awful lot like a sample of someone making an explosion sound with their mouth, distorted a bit.

 

 

What games have you made ?

 

I only have two cartridge releases of my own, but my work has been in several others to varying degrees.

 

 

What game are you referring to when you say

 

"My other game is a little more crude. All of the music and sound in that game" were effectively "samples", stored as a sequence of PSG register values vs. time."?

 

 

My other game? I've developed a peculiar amnesia to it. It was so long ago, after all. ;-)

Link to comment
Share on other sites

 

That's what I meant by the "bass note" portion of the the jump sound effect. And yes, by drum track, I mean the cymbal-like steady percussion track.

 

The arcade machine has 2 PSGs and an ADPCM sound chip for the explosion sound effects. The Intellivision just has 2 PSGs. So, you can get pretty close sound-effect wise until the explosions show up. If you listen closely to the arcade machine, the explosions sound an awful lot like a sample of someone making an explosion sound with their mouth, distorted a bit.

 

 

 

I only have two cartridge releases of my own, but my work has been in several others to varying degrees.

 

 

 

 

My other game? I've developed a peculiar amnesia to it. It was so long ago, after all. ;-)

the two things that i notice a difference in from the arcade is first the explosion as you stated. the second difference i notice in the game is jumping and shooting. When you jump you can only shoot up not forward. Not sure if the arcade even had stuff you could hit when you jumped and shot forward? I am assuming it is a system limitation. No complaints here as it is the only game i play every single day. One day i will finish beating one of these stupid planets. :D you did a great job on implementing the sounds and music. Love the music with the ecs enabled.
Link to comment
Share on other sites

the two things that i notice a difference in from the arcade is first the explosion as you stated. the second difference i notice in the game is jumping and shooting. When you jump you can only shoot up not forward. Not sure if the arcade even had stuff you could hit when you jumped and shot forward? I am assuming it is a system limitation. No complaints here as it is the only game i play every single day. One day i will finish beating one of these stupid planets. :D you did a great job on implementing the sounds and music. Love the music with the ecs enabled.

 

Yes, it's a system limitation. I don't have a way to display the bullet further off the ground, as the bullet is made from background cards, not sprites.

 

Still, I made sure it didn't affect game play. You can actually shoot forward when you're off the ground by 1px, 2px or 3px, but not more than that. So, you can still fire forward when you're near enough to the ground to actually hit one of the rocks or space plants, even if your wheels aren't quite on the ground. This makes certain maneuvers a bit easier (such as firing as you jump over a crater, to clear a rock from the other side). Without that, you'd need to be 100% certain to launch the bullet off before you jumped, and that's maybe a bit much to ask.

 

The relevant code for the curious. 32*4 means "more than 4px off the ground". Full function here: http://spacepatrol.info/src/engine/tank.asm

            MVI     JHGT,   R2      ; Are we jumping?
            CMPI    #32*4,  R2      ;
            BGE     @@leave         ; Yes:  Don't fire.

And I forgot I'd put a Wil Wheaton joke in the code... (Never mind that I botched the spelling.)

            MVO     R0,     HBDATA  ; \
            MVO     R1,     HBCNT   ;  |__ "Ensign, fire at Will!"
            MVO     R2,     HBROW   ;  |
            MVO     R3,     HBCOL1  ; /
            MVII    #28,    R1
            MVO     R1,     HBCNT2  ;
            CLRR    R0
            MVO     R0,     HBKOS
Edited by intvnut
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...