And yet I couldn't agree more with Dbug
But I think we both had an Atari ST before having an Amiga, so our opinion might be a little biased :p
(although I don't like at all this 'war spirit' between machines)
And yet I couldn't agree more with Dbug
I'm not saying that the Amiga has horrible sound, just that the non merged stereo is horrible, specially with a headset: There's a reason why pretty much every single Amiga game or music disk you can find on Youtube has been remastered with correct stereo with each channel blending in the other side.chema wrote: I know a few who would hang you for this comment
Oh, you mean by program? Sure.ibisum wrote: ↑Wed Feb 20, 2019 2:09 pm>How would you use the mixer?
I'd set the levels of each Oric according to my needs as a musician according to the composition.
>I can see how having a user selectable global volume would be useful, but a user selectable mixing would be a headache for the programmer
A) I wasn't aware you're planning on having more than one programmer or user out there with OricExos hardware .. . B) Having a 4-part multitimbral Oric synth is really for us musicians/composers - thus having individual mix channels for each voice is highly valuable.
Oh but i can totally see the point of physical controls while creating something, heck, I bought a jog controller to make it easier to navigate in the timeline when making videos.Sorry for the confusion - I am actually *pro-* having actual physical controls, but this is because I'm a musician/composer and for me thats sort of a vital aspect of instruments these days. But, anyway, was just an idea ..
I'm just a software guy, all I know is that on the AY the volume from 0 to 15 on one channel results in a voltage from 0 to 1 volt, and that if you get the three channels together you end up getting from 0 to 3 volt... non linear because of the log volume values.
As your local Amiga fan, I must confess that the Amiga audio channel repartition is indeed a pain point.
Not much to optimize, except maybe:Please take a look at source on github - the compiled result is 190 bytes - any size optimizations are welcome!
I've to admit that hardware wise I've no idea how these things are done, obviously we want to avoid volume variance, but we also want to avoid truncation, and as I said earlier, I'd like the Exos to be able to run normal Oric software identical as normal, which means at the very least the master machine should play standard mono YM sound.Only ONE thing remains unclear for me - the audio mixer...
See: facebook.com/groups/CommanderX16/permalink/422154388535661/ [Closed Group]Ellen Larsson
Made a simplified schematic for a combined pan control and headphone output buffer/mixer.
Multiply the pink block by number of AY3 channels.
All values are noncritical beans.
Note that those cross-pots are digitally tapped (so called DPP:s). Commonly available and cheap packages come in duos, triads, and quads. Triads are nice since the AY-3 has three channels. On the other hand, a quad could be used to add a digitally controlled master volume fader to the output if you so wish.
It'd be more convenient from a programmers' point of view to limit the resolution to like 32 taps or even less, but it is actually cheaper to have a 7bit or even 8bit DPP chip so why not. That provides midi-like smoothness to the pan control. With a bit of search you can probably get a suitable chip up to the task for about a dollar. Another practical tradeoff is that logarithmic DPP:s (which would be ideal for audio) are a bit more expensive and usually only comes in dual chips (which adds more to the total in itself), but linear is fine. With a resolution this smooth, you can devise a response curve in software if you so wish.
Relative volume between AY3 and gameduino:
Some hard-wired R mix adjustments between the Gameduino outs and the AY-3 outs are in order. I just assumed a give or take 1:1 mix ratio, which is probably naive now that i think of it. The more ay-3 channels, the weaker they should be in comparison to the stereo out of gameduino. Also, i don't think we know the relative difference in amplitude between gameduino and ay3 at this point.
Anyway, so this gives the programmer full control to customize how AY3 channels are panned: All-mono (zx spectrum / sunsoft 5b style), hard panned "turbo" style, more modern/subtle, or even on the fly programmable for spatial effects.