There is a contradiction with the original concept of ZX Next. Using YM8930 instead of the third AY891x would probably make sense if it was originally planned. But in the ZX Next, the first two AY were originally positioned to play TurboSound music, while the third AY was positioned as an auxiliary chip for voicing shots and other sounds. But as a rule such sounds are realized through DAC. Here and there is a contradiction, because YM8930 not being able to reproduce sounds through the DAC. When using the YM8930 as the third chip, You will have to declare a change in the concept of sound reproduction in the ZX Next, and the inability to use the DAC in the third chip.
Re: Musical potential of the NEXT.
Posted: Wed Jan 23, 2019 3:22 pm
by Alcoholics Anonymous
No one is suggesting using an exact 8930 in place of the 8912 - the discussion is about how the 8912 can be enhanced without taking up a lot of extra space and without losing compatibility. The 8930's extensions of the 8912 make sense: each voice gets its own envelope, the counters are higher resolution and duty cycle can be varied. Putting that in in a way that maintains 8912 compatibility and tries to be as compatible as possible with the 8930 would open access to (the very limited) 8930 music library; one current device for the msx is using 8930 chips in its design.
That is not the only enhancement being talked about here. The other is a wavetable that would allow each AY instance to change its waveform arbitrarily to triangle, sine wave, whatever. If the wavetable is shared by all AY instances and is large enough it could be used to play sampled instruments or sampled audio under control of the AYs themselves. Audio systems in the PC Engine, MSX SCC cartridges had small 32-byte wavetable(s) to define a waveshape played as instrument.
This is just idle discussion at this point but enhancing the AYs in some meaningful way does seem attractive to me personally. The audio is the only thing that hasn't really been enhanced too much in the zx next; multiple AYs isn't really a step forward and dac audio is a trivial addition.
As you suggest, it could be that an enhancement would be too large to put in all three AYs and maybe just one or two could be enhanced.
Re: Musical potential of the NEXT.
Posted: Wed Jan 23, 2019 4:45 pm
The exUSSR community has extensive experience in the development of sound systems for the ZX Spectrum. TurboSound and TurboSound FM systems are our developments. Experience in the development of these sound systems has shown that it makes no sense for ZX Spectrum to create an iron system that does not have ready-made music content. In the future, we took into account our mistakes, and then for ZX Spectrum cloned other people's music systems that have their own music content. To date, we have adapted the sound systems SamCoupe (SAA1099), MSX Moonsound (YMF278) for ZX Spectrum. Both systems use their original ports and therefore do not require reworking of the existing content. Currently, we are developing several more sound systems compatible with MSX and Sega. For ZX Next, all these sound systems will not be available because the architecture of this computer is not an Altwasser. You can of course continue to ignore the exUSSR community's experience by inventing your own sound systems that don't have ready-made content, but it's a waste of time and your efforts are doomed to fail. We have already passed this way.
You can of course continue to ignore the exUSSR community's experience by inventing your own sound systems that don't have ready-made content, but it's a waste of time and your efforts are doomed to fail. We have already passed this way.
You may have noticed that the entire zx next project is doomed to fail:
layer 2 : no sw
lores : no sw
timex modes : limited sw
sprites : no sw
new display mode : no sw
ulanext : no sw
three AYs : limited sw
dma : limited sw
fat filesystem : limited sw
.. and so on
There are two big differences between the past experience you describe and what is happening with the zx next project. One of them is that separate new hardware requires adoption before anyone will write software for it. The other is no one will buy it unless there is software written for it. People also have to see it as sufficiently compelling to actually want it; you can see this happening in sales of retro hardware now. divmmc sells well while other things tend to be niche.
In contrast, there will be about 3500+ zx nexts in people's hands after the kickstarter is fulfilled. The enhancements have created enthusiasm among former commercial spectrum games programmers and a chunk of technically competent people from the community so that they are writing new sw using the new features. I can speak personally to this - had this been a plain zx model I would not be very interested. It is the "next" part of zx and a nostalgiac "what if" that is firing the imagination. Interest in enhanced audio is not only being expressed here; it's being expressed by these same people who write software.
Of course for many others, the zx next is only about getting a nice case and doing the same old thing on real hardware rather than an emulator. That's fine too but it is not what drives interest from the small portion of the community that is able to and actively develops things.
With regards to sound, adding an fm chip might be nice but they are just too big. Other suggestions have been SID and the SAA chip. The SID is using up enough gates that it probably cramps the zx next hw roadmap and it might be better used in a c64 core anyway. I wouldn't say the SAA chip is much of a step up from 3xAY and again maybe it's better for a sam core.
Adding an SAA chip to the ZX Spectrum is a matter of five minutes. With open source (
At least 600 songs and a few demos. And it works great.
Any user of MiSTer or Uno will confirm this.
Yes it is but do you think it actually improves the sound at all over 3 x AY? I don't think it does.
We want to maintain compatibility with turbosound so there has to be at least two AYs or AY compatibles. There is currently software and software under development that uses all three AY chips so we have to have good reason to change compatibility with that third AY. Most (if not all) of the people using all three AYs at the moment might be conducive to changing the third AY to something else if there would be a good reason to do it. However, the third AY also gives us compatibility with some expansions for other retro machines that also have three AY chips.
For example there is a CPC expansion that has three AY chips and there is a PC tracker written for it that can compose for three AY chips:
There is already a player for this tracker in the zx next repo and there is an example 9-channel song in there called "v8.aky".
The native next music tool is NextDaw, which is an exception music creation tool. It is not a tracker but more like a modern daw tool which is something completely new for the spectrum:
Not only is it a great tool, it runs on the next itself. This one also composes for 3 AY chips. The author is also one of the people pushing for enhancement of the AY so he would be ok with improving the sound but the SAA doesn't really do that over 3xAY IMO.
An improved AY 8930 that maintained compatibility with the AY8912 would improve sound output and would produce better sound than an SAA I believe. You would get independent envelope control on all channels and variable square wave duty cycles that people do now in software (and call "sid music"):
However, as BlackCat pointed out, I do recognize that there isn't much out there for the AY8930 except for ancient PC hardware that almost never used functionality beyond the AY8912 and a brand new music interface for the MSX.
However the addition of a wavetable would be a compelling feature to use, just as the sprite hw currently is. I wouldn't be worried that people wouldn't use it. The wavetable opens up the possibility to have the AYs generate arbitrary waveforms like triangles, sines and sample instruments. This was done in 80s hardware for machines like the PC Engine. Such a thing might also be able to play sampled music without cpu intervention or dma involvement. On the next you can play sampled music with the dma but there is only one channel and it takes the dma away from other tasks. The roadmap does include multiple dma channels specifically so that dma audio does not take the dma away from other purposes but having the AYs do it instead is an interesting idea. Additionally, if the AYs are able to generate sine waves, they can be used for things like sampled sound effects and speech synthesis running on a 50Hz interrupt. There is speech synthesis available at 50Hz now on AYs but the reproduction quality is variable because the AYs are only able to generate square wave tones which contains a lot of extra harmonics over a plain sine wave.
I couldn't find a youtube video with 50Hz speech synthesis on the AY (I have written such a thing for the spectrum though), but here is the same tool running on an MSX SCC chip which is able to do sine waves through its 32-byte wavetable:
It's using the same synthesis method at 50Hz on one AY chip.
The AY compatible route keeps the 3xAY advantages that are there now, not to mention the fact this would be incremental enhancement of the AY which would fit into the spectrum next idea; that's why I favour it at the moment.
By the way, I have posted to this thread that it is.
'TSFM may be software emulation if you can output the sound of "Raspberry Pi Zero" accelerator board from the EAR terminal or HDMI terminal of ZXSpectrum Next board.'
The sound of the application on the "Pi" accelerator board is played back from the "mini HDMI terminal" or the "PWM port of the GPIO interface" of the accelerator board. Since "Raspberry Pi Zero" does not have a pin dedicated to PWM, it is necessary to assign two GPIO pins as a PWM interface (Alt 0= #12 #13) (Alt 5= #18 #19).
(BCM2835 GPIO functions (from Embedded Linux Wiki)https://elinux.org/RPi_BCM2835_GPIOs)
Since the pins allocated on the "Pi" accelerator board are limited, we want the FPGA to implement sound acquisition from the PWM pin to the main board at an early stage.
I n fact, the I2C serial bus was implemented as an interface from the main board to the "Pi" accelerator board.
(And there was a discussion thread to transfer the application from the main board to the Pi and execute it on the Pi side. "Pi accelerator I2C"https://www.specnext.com/forum/viewtopic.php?f=6&t=1286)
For example, transfer a Video frame decoded by an application on the accelerator board from the accelerator board to the "Layer 2" video memory on the main board using DMA. I think that it is desirable to implement an 8-bit parallel interface in such a scene. (In the case of an actual machine, parallel IO port is expanded using I2S expander chip)
Re: Musical potential of the NEXT.
Posted: Thu Feb 07, 2019 5:35 am
by Alcoholics Anonymous
The hardware spi interface on the pi0 turned out not to be as useful as expected so it's very likely that the pi will need a uart connection to allow reasonable communication with the pi running linux. Beyond that there is a lot of leeway on how things end up. I don't know if this will be settled before the cased are manufactured, although I would expect the cased nexts to ship such that linux can be run on the pi and the next communicating with it.
A layer 2 dma to transfer a pi-generated display to layer 2 is an idea. Another that was tossed about was the pi generating a layer 3 that fed into the next's display generation in real time. This would be a sort of reverse tkpie but it would also mean the pi would have to be involved in realtime video generation which would slow it down for a significant portion of time.
Re: Musical potential of the NEXT.
Posted: Thu Feb 07, 2019 2:12 pm
Although I would welcome the implementation of YM2203 (I like the FM synthesis part of it), I also like the idea of modified AY-3-8930 implementation which Alcoholics Anonymous mentioned here
Besides that, I would suggest another improvement that might not (hopefully) costs so much effort: customisable panning of all AY/YM channels through some OUT commands.
Today if you want to do some nice stereo effects, you have to use at least two (or all three) channels, which is really a waste of channels.
If there will be possibility to set stereo balance of the channel by some OUT, that would help a lot with that.
Let's say 0 would be sharp left, 128 in the center and 255 on the sharp right and values between that would be as you can imagine somewhere between the sharp stereo separation. OUTing value from 0 to 255 could bring nice "fly" effect of sounding signal from left to right
Default ABC/ACB stereo separation for legacy software could be simply set by these OUTs during the boot according to user's configuration.
What do you think about that? I already proposed this to Victor back in 2017. He liked that idea, but at that time there was so many changes that this probably fell in the abyss of oblivion Now it looks like it's time to blow up the dust out from the idea...