Best tracking method for sound code (not necessary NES)

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Best tracking method for sound code (not necessary NES)
by on (#7287)
I've heard and seen that sound codes for modern games machines (like the PSX) often have a release time when a note cuts off, and scince you have a new note starting just after this one, a single software music channels split into two hardware channels, and mixing all together, all notes won't be assigned to hardware channels as they are in software, but they'll be asigned dinamicly to hardware channels.
Some SNES games, such as Tactics Ogre and the SNES verison of Dragon Quest I & II does that also, this can be easily studied with the Super Jukebox player.
Of course, due to the fact that the NES only have 4 channels, and due to the fact that the only two that are hardwarely similar are the two square channels, this makes that stuff not worth it for the NES. But the MMC5 has 2 additional square channels, making 4 in total. Would it be interesting musically to have a dynamic channel assigner with release times for the MMC5 ?
I tried to figure out musically what was the best. I kind of love FF series music, and noticed that the seventh one (PSX) doesn't use a such method, while the nineth one (PSX) uses it, making the music sound more "real". Also, Tactics Ogre (SNES) has outstanding music quality for the SNES console. However, release times are musically a non-sense, because you won't be able to play two notes at the same times with most instuments. In every intrument that came in my head, only piano, organ and harp are able to play more than one single note at the same time, but that doesn't exaplain why release times should exists. When you stop release a piano key, the sound will stop pretty much immediatly, exept for very high notes.
Scince release times doen't exist with real music, why would computer music sound better with them ??? That's a nonsense !

PS : Some will think that I'm getting offtopic, but this subjects interest me in music in general, and yeah, I still want to ask if someone has comments, tips or anything.

by on (#7291)
Release times are because it takes a nonzero amount of time to stop the airflow through a woodwind or brass instrument, the vibration in a string, etc. Release times are realistic because often, notes are cut a few frames before the next note because they're tongued (on woodwind instruments) or not played legato (on string instruments).

Release times are also for when your hardware doesn't support reverb.

by on (#7306)
Yeah, and here is a big difference between release times and reverb. NES hardware doesn't support reverb, but PSX does, so it goes the opposite way. Effectively, a song sound much better with reverb. SNES supports echo, not reverb however, and I think the only difference is that feed-back will randomly change in reverb while it will be constant in echo. Maybe a SNES software could change the echo parameters periodically to obtain a better echo quality.
I think the "right" way to track music is to cut a note a bit before it's end, in % of the note's lenght. I play the trumpet, and I often have to short notes, the song will sound much dinamicly. The factor in % can be set to somthing like 50% (stacatto), 90% (normal) and 100% (legato).
However, begin the release time at the same time the next note begins on a parallel channel is wrong, exept for simulating echo/reverb, that almost all chips (exept NES) suports.
On the NES, a good way to simulate echo is to cut the note immediatly to a low volume value, not to let it decrease slowly. Unfortunately, every time you play legato notes, you'll have to use another channel if you want any echo, but for stacatto notes change the volume at the middle time of a notes works quite well.

by on (#7460)
What you describe is sometimes called dynamic channel allocation, basically presenting virtual channels which are mapped dynamically to physical channels, allowing previous notes to decay after new ones are started. The Namco 106 sound chip adds 8 identical wave-table channels to the NES, plenty for what you describe.

by on (#7474)
Effectively that could be done trough a N106 chip.
I was also rather asking myself why this method has been invented at all scicne it is a non-sense musically to decay a note after a new one has started, that's not what you'll do trough a real instument (exept harp maybe ?).

by on (#7479)
.. or anything that sings pling or boing, like an acoustic guitar, or a piano, or even a big hi hat. It's a good 'invention' for use in virtual instruments.

by on (#7481)
Usually, instruments such as Harp and Guitar, or Piano with pedal, are splited in more than one single track anyway to get arpeggios, it isn't realy relationned with release times. However, this is a nonsense for wind instruments, and in most cases for string instruments, exept for arpegios, but in that case you'll split it in many channels.
And about percussion instruments, I think that they work pretty much differently than wind/string, once hit the instument has it's own decay time regardless of how long you want it to play. But if you hit it again, it will re-attack so the old note does not matter for the following sound.
But, I agree that timani or snare rolls doesn't sound very good on a single channel, it seems much better to split in 2 or 3 channels, so yeah release times matter with snare/timpani rolls. But is that enough ?

by on (#7530)
I imagine virtual channel allocation was developed because it yielded pleasing sounds as compared to manual channel allocation, or at least more conveniently. It might not be appropriate in the area of accurate simulation of other instruments, but it is a benefit to the instrument that is the "sound chip" itself, and to people for whom the only important aspect of music is its effect on the listener.

by on (#7544)
True, but virtual channel allocation is still not all that useful on an NES, where only two of the five channels can substitute for each other, except in the special case where a sound effect overrides a note in the music.

Famicom, on the other hand...