Jump to content

Commander X16 audio capabilities


xanthrou
 Share

Recommended Posts

The X16 has 331 Mega, which is one better than the Neo-Geo. 😉

But seriously, the Neo-Geo has a YM2610, which is a very different sound chip. It only has 4 FM voices instead of 8, but it has 11 additional voices using other sound generation methods. The NG also has a Z80 with dedicated RAM for handling sound, so in most cases you'd have to give it up to that old Arcade standard (or home console for the absurdly wealthy).

  • Like 1
Link to comment
Share on other sites

8 hours ago, SlithyMatt said:

The X16 has 331 Mega, which is one better than the Neo-Geo. 😉

But seriously, the Neo-Geo has a YM2610, which is a very different sound chip. It only has 4 FM voices instead of 8, but it has 11 additional voices using other sound generation methods. The NG also has a Z80 with dedicated RAM for handling sound, so in most cases you'd have to give it up to that old Arcade standard (or home console for the absurdly wealthy).

Let's mention that there are 3 SSG square wave channels, 1 noise generator channel and 7 ADPCM ones in YM2610.

 

The VERA PSG+PCM, based loosely on SID, has 16 channels of noise, triangle, pulse (not just square, since it has multiple duty cycles) or sawtooth (and ability to be used as PCM), depending on how you use it, plus you can dynamically change the sound waves quickly, much like SID, which is much more channels than SSG, noise and ADPCM combined.

 

Neo-Geo has 15 channels, X16 has overwhelmingly 26 channels, an absurdly large number of sound channels for an 8-bit home computer.

 

By the way, what is 331 Mega?

Link to comment
Share on other sites

21 hours ago, SlithyMatt said:

Neo-Geo has a YM2610, which is a very different sound chip. It only has 4 FM voices instead of 8, but it has 11 additional voices using other sound generation methods. 

Mind you that these 11 channels are 3 square wave channels, a noise generator channel and 7 ADPCM channels. (one is around 65 kHz, other six are circa 18kHz).

 

In VERA however, we have PSG and PCM. But not only that, they are 16 channels, more than the 11 ones. And since it's based loosely on SID, you can use pulse (with variable duty cycles), triangle, sawtooth and noise channels and like SID, you can dynamically change the waves, giving an illusion of more than actual channels.

Neo-Geo may have 15 channels, but X16 has 26, an overwhelming number of sound channels for an ordinary 8-bit home computer for general use.

Link to comment
Share on other sites

As was mentioned on another thread, while the X16 has a lot of options, the ability to use them all is a bit hampered due to memory and speed constraints. If the X16 had a Z80 and dedicated sound memory like the NG to manage all of this stuff, it would definitely win, hands down. The simplicity of having a single chip do all the sound and effectively a second computer to run it makes the NG take the edge, in my opinion. Better direct comparisons are to the Sega Genesis/Mega Drive or the Super NES/FamiCom

  • Like 1
Link to comment
Share on other sites

11 hours ago, SlithyMatt said:

As was mentioned on another thread, while the X16 has a lot of options, the ability to use them all is a bit hampered due to memory and speed constraints. If the X16 had a Z80 and dedicated sound memory like the NG to manage all of this stuff, it would definitely win, hands down. The simplicity of having a single chip do all the sound and effectively a second computer to run it makes the NG take the edge, in my opinion. Better direct comparisons are to the Sega Genesis/Mega Drive or the Super NES/FamiCom

That's entirely true and I am not disagreeing with you at all. I'm just pointing out what the X16 offers, where you won't find in Neo-Geo. 

Just to let you know that X16 sound can be tough as well, not like your average Commodore machines.

For some, with the 26 channels and 128 kilobytes of VRAM and 256 color modes, some people would call X16 'the Neo-Geo of 8-bit home computers'.

We can do that with the magic of expansion cards, but I doubt it would be supported by a lot of programs.

Edited by xanthrou
  • Like 1
Link to comment
Share on other sites

A lot of folks have proposed concepts for co-processor expansion cards, but I agree, it's unlikely anything will get widespread support like the AdLib and SoundBlaster standards did for PCs.

I like the idea of:

8 hours ago, xanthrou said:

the Neo-Geo of 8-bit home computers

but maybe add "at a fraction of the cost". The NG home console retailed at $650 in 1990, which would be the equivalent of $1287 today.

  • Like 1
Link to comment
Share on other sites

5 minutes ago, SlithyMatt said:

but maybe add "at a fraction of the cost". The NG home console retailed at $650 in 1990, which would be the equivalent of $1287 today.

I apologize. I totally forgot the possible cost of X16.

Quote

A lot of folks have proposed concepts for co-processor expansion cards, but I agree, it's unlikely anything will get widespread support like the AdLib and SoundBlaster standards did for PCs.

Due to X16 having exceptional sound and graphics. (Unrelated to the topic, but it might be likely for expansion cards with 3D polygon rendering to have a bigger attention to X16 power users/overkillers than the rest of expansion cards)

Link to comment
Share on other sites

I think someone is going to made a SID card, just given how often it gets mentioned. I think while the X16 might be underpowered for something like an SB16, a GUS style card is something I expect to see as well. Namely a card which has its own RAM and hardware playback capability so all the X16 has to do is load samples, and then trigger them. I was always fond of the GUS (and co-processor / hadware accelerated solutions in general). That being said, I am indeed excited about the onboard sound the X16 will have since it turns it into a really nice modern chiptune tracker, or so is my hope. I am a bit worried about the CPU requirements to get the most out of the VeraSound but we'll see!

Another card I'm sure we'll see is one which offers MIDI support. That'd be another route to high quality audio (albeit externally) though I'm mostly excited about it for the possibility for MIDI sync, allowing me to integrate the X16 into my growing collection of "chiptune synths" as it were (MB SID, MB FM, GB, and NES currently).

Edited by m00dawg
grammar
  • Like 1
Link to comment
Share on other sites

I really like the idea of a GUS-like card. It would be ideal if the X16 sound system accepted an internal aux input, but the card could just have a built-in mixer and the X16 audio output could be patched in externally. That's definitely something I'd consider supporting in XCI, letting the developer specify longer and higher fidelity samples for their sound effects for GUS support.

Link to comment
Share on other sites

1 hour ago, m00dawg said:

I think someone is going to made a SID card, just given how often it gets mentioned. I think while the X16 might be underpowered for something like an SB16, a GUS style card is something I expect to see as well. Namely a card which has its own RAM and hardware playback capability so all the X16 has to do is load samples, and then trigger them. I was always fond of the GUS (and co-processor / hadware accelerated solutions in general). That being said, I am indeed excited about the onboard sound the X16 will have since it turns it into a really nice modern chiptune tracker, or so is my hope. I am a bit worried about the CPU requirements to get the most out of the VeraSound but we'll see!

Another card I'm sure we'll see is one which offers MIDI support. That'd be another route to high quality audio (albeit externally) though I'm mostly excited about it for the possibility for MIDI sync, allowing me to integrate the X16 into my growing collection of "chiptune synths" as it were (MB SID, MB FM, GB, and NES currently).

The GUS is a great idea (plus I would like to add a speech synthesizer chip in there, just in case), but how would the X16 have a SID card? I mean, isn't VERA PSG based on that? If we added SID, it's basically VERA with 19 channels instead of 16.

Edited by xanthrou
Link to comment
Share on other sites

6 minutes ago, xanthrou said:

The GUS is a great idea (plus I would like to add a speech synthesizer chip in there, just in case), but how would the X16 have a SID card? I mean, isn't VERA PSG based on that? If we added SID, it's basically VERA with 19 channels instead of 16.

I know that the SID has analog filtering and ADSR settings, while the PSG is all digital & has no ADSR unless emulated at a CPU cost by manipulating the volume.

I'm not a SID enthusiast by any stretch, but I know that SID enthusiasts reckon that it is not just a generic chiptunes sound chip.

Link to comment
Share on other sites

Just now, BruceMcF said:

I know that the SID has analog filtering and ADSR settings, while the PSG is all digital & has no ADSR unless emulated at a CPU cost by manipulating the volume.

I'm not a SID enthusiast by any stretch, but I know that SID enthusiasts reckon that it is not just a generic chiptunes sound chip.

Well, that makes sense.

Link to comment
Share on other sites

Bruce beat me to it and more succinctly but just to share my thoughts on how you'd add sound.

The SID would have to be housed on an expansion card which would need to include some means of buffering communication from the SID to the X16 system bus. This is because the SID cannot run at 8MHz (and is at least one of the reasons why there isn't an on-board SID option). The current proposal for expansion card communication is by way of memory addresses, much like how one interfaces with the VERA and YM2151.

While I'm not a devout SID fanatic, I would say that VeraSound is definitely not a SID and is fairly far removed from it in my opinion. Verasound lacks an analog filter and envelopes. SID only has 3 channels of course and the Vera's 16. Vera is sort of its own thing - I don't think it really is comparable to any sound chip. As Bruce mentioned, it is actually pretty simple and will require a lot more CPU horsepower than the SID would otherwise required. The 16 channels is exciting! But the flexibility may be limited to software support, at least as of the current design.

Link to comment
Share on other sites

32 minutes ago, m00dawg said:

Bruce beat me to it and more succinctly but just to share my thoughts on how you'd add sound.

The SID would have to be housed on an expansion card which would need to include some means of buffering communication from the SID to the X16 system bus. This is because the SID cannot run at 8MHz (and is at least one of the reasons why there isn't an on-board SID option). The current proposal for expansion card communication is by way of memory addresses, much like how one interfaces with the VERA and YM2151.

While I'm not a devout SID fanatic, I would say that VeraSound is definitely not a SID and is fairly far removed from it in my opinion. Verasound lacks an analog filter and envelopes. SID only has 3 channels of course and the Vera's 16. Vera is sort of its own thing - I don't think it really is comparable to any sound chip. As Bruce mentioned, it is actually pretty simple and will require a lot more CPU horsepower than the SID would otherwise required. The 16 channels is exciting! But the flexibility may be limited to software support, at least as of the current design.

While I am not an expert in hardware, nor do I have resources for all that, I made a rough draft/sketch of how our expansion card would look like. I would some day show you how would it look like.

So, we have GUS-like setup for playing back samples, sound effects and voice samples, a speech synthesizer chip, a Z80, dedicated sound RAM and a SID. (with a middleman chip to talk to with 65C02)

On non sound-related features, I might add CP/M compatibility (which is what Commodore did with 128, so several KayPro and Osborne files would be read and write to from X16) and some BASIC enhancements, mainly commands for graphics. (a la C128)

How does it sound?

Edited by xanthrou
Link to comment
Share on other sites

One thing that I want to add to the SID vs. Vera PSG discussion is the fact that AFAIK the SID used analog(ish) oscillators. At least I can tell that they sound decent even at high pitches. Whereas the Vera PSG suffers from pretty bad aliasing when playing high pitched sounds. It's less noticeable for triangle waves than for pulse waves, fortunately. The PSG offers qualitatively much less than a SID (apart from direct volume control which the SID didn't have in that form) but quantitatively much more!

  • Like 1
Link to comment
Share on other sites

48 minutes ago, m00dawg said:

Verasound lacks an analog filter and envelopes. 

I'm not an expert on sound AT ALL, but I do remember that the SID envelopes made things like gunshots and explosions very easy.

 

Link to comment
Share on other sites

6 minutes ago, rje said:

I'm not an expert on sound AT ALL, but I do remember that the SID envelopes made things like gunshots and explosions very easy.

Yes. This is true for the NES as well and why I tend to think "less is more" when it comes to the number of VeraSound channels. As in if we have to sacrifice channels to get some hardware nice to haves, I think it would be worth the trade-off. Of course I'll be content with whatever we end up with but things like buzz noise, hardware envelopes even if rudamentary, and a loop trigger on the DPCM (for being able to use "drawable" chiptune sounds) would make the VeraSound a spiritual successor to the soundchips found in the NES, GB, and TG16 while still being appropriately chippy.

Kliepatsch has a good point about the aliasing too. I wonder if a simple analog low-pass filter on the audio output stage is within reason. For fixed frequency, a simple RC filter would probably do.

Link to comment
Share on other sites

33 minutes ago, m00dawg said:

I wonder if a simple analog low-pass filter on the audio output stage is within reason. For fixed frequency, a simple RC filter would probably do.

Unfortunately, a simple analog LP filter wouldn't do the trick, the audible frequency range is contaminated right from the start. No filter will help there. Only buffers with clean waveforms for different frequencies, or oversampling would help. But I think we won't see anything of that happening. Let's face what we've got and try to make the best out of it. 🙂 Triangle waves still sound decent at high pitch, and by layering two or three of them (like a short overtone series) and modulating their amplitudes we will be able to create nice sounding high pitched sounds. (Or even less than that might suffice!)

44 minutes ago, rje said:

I'm not an expert on sound AT ALL, but I do remember that the SID envelopes made things like gunshots and explosions very easy.

 

True. If the SID had an overall volume parameter additional to the attack, decay, sustain and release parameters, it would be truly siuperior to the VERA. Because then the volume control of the SID would sound better, require less CPU and would be easier to operate and still provide enough flexibility. But because the SID lacks a volume control per voice, it seems to be rather hard to "mix" tunes. This is where the direct volume control of the PSG comes in handy.

Edited by kliepatsch
Link to comment
Share on other sites

Certainly I would trade off some channels for ADSR, but I only know the VERY first thing about FPGA design (substantially less than the bit I know about the SID), and I certainly don't know whether 8 ADSR channels would be available for the slices and gates used by 16 simple tone generator channels.

And of course the OPM has ADSR, and the PCM is well suited to things like gunshots.

Presuming the PSG design is locked in place, one thing you do when you have an abundance of one resource and are short of another is you look at how to use more of the first to economize on the second. So, for instance, I wouldn't be surprised to see approaches that use each channel for a distinctive sound, all of them turned on at zero volume and that plays entirely by manipulating the volume registers. You can do that fairly quickly for a sequence of PSG channels by selecting the first volume address and setting the VERA increment to four bytes.

And with that many channels, following @kliepatsch, you can may be able to gang noise channels together at slightly different frequencies for a fuller electric snare.

And, also following @kliepatsch, the Achilles heel for this kind of sound generator is low frequencies, where the PCM can benefit from the fact that low frequencies can rest in the middle of the soundscape and you may be able to get away with a lower frequency playback.

Edited by BruceMcF
Link to comment
Share on other sites

All good points. Kliepatsch, curious, how do you think the VERA compares to, say, a real NES (if you're heard one)? The NES DCPM _definitely_ has some aliasing on the DPCM. I found the squarewaves to be pretty decent though ironically the triangle of the NES is where I tend to hear tons of aliasing (I think this makes sense given how the NES generated the triangle compared to how the Vera does).

Also good points Bruce! Clever idea for considering volume here. The one thing I would say is part of what makes interesting sounds isn't a volume gate but how parameters change over time. So if we want to make a bassdrum using a square (common trick for chiptune music), we would want to manipulate the pitch and/or PWM. Both require changing things fairly rapidly so turning the volume off or on won't be all that is required. In fact even simple things like quick stabs or plucks tend to have automation.

At it's core, really the Vera is more like 16 oscillators. So in a conventional synthesizer, it's the VCOs, but we have to implement the VCAs, LFOs, Envelopes, all in software.

I think some of the concepts in Kliepatsch's Concerto could be applied here. I hadn't thought of using multi-timbral sounds in my tracker development originally but find Concerto's approach quite interesting. It could be one way to help lighten on the load on the CPU. For instance, instead of thinkings about VeraSound as 16 voices, we could instead think of it as 8 voices that each have two oscillators. This means at least some automation can be shared across two voices. That cuts the number of envelopes by half (up to). Though each real voice still needs to be modulated and that still means lots of calls to the Vera - those don't go away, just the amount of time spent evaluating envelopes does.

Link to comment
Share on other sites

23 minutes ago, m00dawg said:

All good points. Kliepatsch, curious, how do you think the VERA compares to, say, a real NES (if you're heard one)? The NES DCPM _definitely_ has some aliasing on the DPCM. I found the squarewaves to be pretty decent though ironically the triangle of the NES is where I tend to hear tons of aliasing (I think this makes sense given how the NES generated the triangle compared to how the Vera does).

I can't say too much about it. I have listened to a few chiptune pieces made with the NES on YouTube, also displaying the waveforms. And I have also noticed the "aliasing" of the triangle waves. I think, technically, it's not aliasing. It's bit reduction. The NES triangle waveform looks like a stairstep pattern on the oscilloscope views. This seems to be more noticeable when the triangle plays at low frequencies, when the stairstep pattern (which is similar to another triangle wave on top of the actual one) shifts into the audible frequency range... The fact that it's just a low bit depth and not aliasing has the result that the unwanted overtones at least are multiples of the base frequency, so they don't get on one's nerves as easily ... sorry, that is probably a bit too technical for this thread 😅

Anyway, I would also like to comment on the CPU usage by the VERA. I was estimating the CPU usage that the Concerto sound engine would be using at its current update rate, which is fairly high (the update rate). I was always considering the worst case, when there were 16 individual voices, each playing 3 envelopes, 1 LFO and, what in fact uses the most CPU (!): the modulation routing. And an 8 MHz 65C02 will handle that, and even leave a bit of headroom. As @m00dawg pointed out, most of the time you won't be using all those modulation stuff at the same time. That's why I am not too worried about CPU usage (yet! 😛 more complexity to come!).

The part that takes up the most CPU in Concerto is the modulation routing, because modulation sources (such as envelopes) are multiplied with the modulation depth in each tick for each routing. The less of these routings are assigned, the less CPU power is used. This multiplication could be avoided altogether with a different modulation architecture ... possibly removing some of the flexibility, but going at a much lower CPU usage.

Edited by kliepatsch
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.

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.

 Share

×
×
  • Create New...

Important Information

Please review our Terms of Use