Re: OricExos - making the impossible
Posted: Mon Feb 18, 2019 2:42 pm
I want this so bad it hurts. Lets turn this system into a multi-timbral polyphonic synthesiser!
Defence Force forums
https://forum.defence-force.org/
Yep, just like Blake's Orac .
All 4 sound output are "as is" - standalone without mixing. The 4 speakers will be attached with wires and proper connectors to every board (next to the purple/white wires which connect the master reset button on the picture). If anyone has an idea for something better - now is the right time to share it .
The only important thing is to not split the channels of any of the YM to do stereo per chip: That would make it difficult to replay sample sounds.iss wrote: ↑Mon Feb 18, 2019 7:33 pm All 4 sound output are "as is" - standalone without mixing. The 4 speakers will be attached with wires and proper connectors to every board (next to the purple/white wires which connect the master reset button on the picture). If anyone has an idea for something better - now is the right time to share it .
My idea was to try to extend Fabrice's mini2ym player to use 12 channels, it's gives a large number of music to try, because there are not so many YM musics using more than 2 YM chips.
Do you have some pseudo-code formula to describe the mix?iss wrote: ↑Mon Feb 18, 2019 7:33 pm The video mixer has two modes:
- direct connection:
= every Oric draws 1/4 of the screen (hm, quadrant or band - which will be faster for update?) with all known limitations;
= available are 5 levels per color i.e. theoretically 5*5*5 = 125 different colors but not all combination are possible;
- R-2R ladder: 16 levels per color or 16*16*16=4096 total colors but not all combination are possible.
The ideal would just be a standard stereo female headphone jack, can easily connect that to my videocapture card or audio input on my speakers.
Ok, and how do you switch from one mode to the other, how many cycles does that take, can I change every line, multiple time per scanline, etc... without generating snow or effects like that? Or should that be just on a per-frame thing?iss wrote: ↑Mon Feb 18, 2019 8:58 pm I think the pseudo-code formulas to describe the mix are:
Direct connect:
- Fast mode:
Ro = RI0 or RI1 or RI2 or RI3
Go = GI0 or GI1 or GI2 or GI3
Bo = BI0 or BI1 or BI2 or BI3
- Low color mode:
- Ro = 1/4*RI0 + 1/4*RI1 + 1/4*RI2 + 1/4*RI3
- Go = 1/4*GI0 + 1/4*GI1 + 1/4*GI2 + 1/4*GI3
- Bo = 1/4*BI0 + 1/4*BI1 + 1/4*BI2 + 1/4*BI3
High color mix (ladder):
- Ro = 1/2*RI0 + 1/4*RI1 + 1/8*RI2 + 1/16*RI3
- Go = 1/2*GI0 + 1/4*GI1 + 1/8*GI2 + 1/16*GI3
- Bo = 1/2*BI0 + 1/4*BI1 + 1/8*BI2 + 1/16*BI3
i.e. Xo = 8/16*XI0 + 4/16*XI1 + 2/16*XI2 + 1/16*XI3 or the value varies from 0/16 to 15/16 with step 1/16 .
Ha-ha, this starts to be crazy even for me
Code: Select all
;--------------------------
extadr = $380
;--------------------------
; hold the extension status
; extadr + bit 0 - ram/rom switch
; extadr + bit 1 - on/off pp buffer
; extadr + bit 2 - in/out pp buffer
; extadr + bit 3 - mixer switch
Code: Select all
ram/rom pp buffer pp buffer direction mixer A/B
STA $380 - rom off out A (direct) <--- default status after RESET
STA $381 - ram off out A (direct)
STA $382 - rom on out A (direct)
STA $383 - ram on out A (direct)
STA $384 - rom off in A (direct)
STA $385 - ram off in A (direct)
STA $386 - rom on in A (direct)
STA $387 - ram on in A (direct)
STA $388 - rom off out B (ladder)
STA $389 - ram off out B (ladder)
STA $38A - rom on out B (ladder)
STA $38B - ram on out B (ladder)
STA $38C - rom off in B (ladder)
STA $38D - ram off in B (ladder)
STA $38E - rom on in B (ladder)
STA $38F - ram on in B (ladder)
Ok, that's actually cool, it's as fast as it can be, and does not require any register, which means that technically one could generate code that does special effects, inserting the right page 3 access to trigger the various effects.iss wrote: ↑Mon Feb 18, 2019 10:01 pm ; extadr + bit 0 - ram/rom switch
; extadr + bit 1 - on/off pp buffer
; extadr + bit 2 - in/out pp buffer
; extadr + bit 3 - mixer switch
Important is the WRITE operation, the value in register A doesn't matter (can be any).
The change is immediate and can be done at any time - simply the mixer has nothing in common with ULAs.
Ermmm.. this may be a stupid suggestion, but what about adding a mixer to the setup for the audio channels? I built one of these recently, its quite decent for the task:All 4 sound output are "as is" - standalone without mixing. The 4 speakers will be attached with wires and proper connectors to every board (next to the purple/white wires which connect the master reset button on the picture). If anyone has an idea for something better - now is the right time to share it .
There are no stupid questions, so I have one myself: How would you use the mixer?ibisum wrote: ↑Tue Feb 19, 2019 8:25 pmErmmm.. this may be a stupid suggestion, but what about adding a mixer to the setup for the audio channels? I built one of these recently, its quite decent for the task:All 4 sound output are "as is" - standalone without mixing. The 4 speakers will be attached with wires and proper connectors to every board (next to the purple/white wires which connect the master reset button on the picture). If anyone has an idea for something better - now is the right time to share it .
https://syntherjack.net/portable-audio-mixer/