Offline
ad-hell-aide

0x20 this has been mentioned as a test / experimental / undocumented register for sound functions, no idea how it works.





0x27 contains the set, reset, load flags for timers A and B, which apparently function alongside the YM2612 sound functions, but I'm not sure how these can be used. I believe that this will let you unlock a formant synthesis mode that could in theory be used for speech or complex wave synthesis.





0x2A is the value set for the DAC output for channel 6.
Set the DAC to ON, but don't play samples or waveforms. Instead, send a DC value directly to 0x2A. This will have different effects depending on the hardware you are using, and seems to be most pronounced with model 2 units.

More info here: http://little-scale.blogspot.com.au/200 … ional.html





0x2C seems to put the DAC into a "super loud mode", play around with the upper nibble to hear the effect.

More info here: http://forums.sonicretro.org/index.php?showtopic=28589
More info here: http://md.squee.co/wiki/YM2612#Register_.242C

Offline
ad-hell-aide

Delek and TmEE and nitro2k01 will know more!

Offline
little-scale wrote:

More info here: http://md.squee.co/wiki/YM2612#Register_.242C

Um, I'm childhood friends with one of the guys who run this wiki. Literally, I went to church with him for years and he was who got me into assembly programming and the Sonic hacking scene. I can get you his contact info, skype, IRC info and stuff if you'd like. He is currently working with Evanesco on a ton of projects (one of which is a custom sound driver). He goes by LazloPsylus, or Laz. He's not TmEE or Stealth, but he know them YM2612 and Motorola 68000 muchhhh better than I do.

Offline
FRANCE
little-scale wrote:

0x20 this has been mentioned as a test / experimental / undocumented register for sound functions, no idea how it works.





0x27 contains the set, reset, load flags for timers A and B, which apparently function alongside the YM2612 sound functions, but I'm not sure how these can be used. I believe that this will let you unlock a formant synthesis mode that could in theory be used for speech or complex wave synthesis.





0x2A is the value set for the DAC output for channel 6.
Set the DAC to ON, but don't play samples or waveforms. Instead, send a DC value directly to 0x2A. This will have different effects depending on the hardware you are using, and seems to be most pronounced with model 2 units.

More info here: http://little-scale.blogspot.com.au/200 … ional.html





0x2C seems to put the DAC into a "super loud mode", play around with the upper nibble to hear the effect.

More info here: http://forums.sonicretro.org/index.php?showtopic=28589
More info here: http://md.squee.co/wiki/YM2612#Register_.242C

Thanks for the infos!
0x27 seems to be the so called CSM mode smile
look at this video http://www.tudou.com/programs/view/IsH_CP_vNnM/ it seems to showcase the use of CSM for formant synthesis...
look at the last channels with only  sine waves that seems to play together the form the vocals...
It is coming from this place http://www.geocities.jp/submarine600/ht … voice.html there is some CSM programming info for the OPN/OPNA on the PC-8801...there is a zip file http://www.geocities.jp/submarine600/fi … 090729.zip that I do not understand well (you probably would better) but there seems to be PCM datas involved to (voice.dat) also the file csm88.z88 have some registers setting that could help you.

there is probably a good reason for the lack of use (if any?) of this mode on megadrive music smile

smile EDIT:
Google translate is my friend smile
reg 0x27 on CSM MODE seems to work like that:

Similar to CH3 Special Mode (adjustable F-NUMBERS) work for CH3 only.
The only difference seems to be the AUTOMATIC KEY ON/OFF of the 4 OP's ...in fact it is a kind of mimic of a DAC that plays back a PCM smile  CSM play the sound at regular intervals rewriting the 4 TL's and F-Numbers of the operators as well.
The interrupt seems to process at intervals of Timer-A.

Regarding Nemesis test on the YM2612:
Special mode is always active when CSM mode is active. CSM mode is only active when the mode bits are set to 10, NOT when they are set to 11. so we have to test the corresponding midi CC values that are working for the GENMDM

In order for CSM mode to have any effect, Timer A must be loaded. In other words, bit 0 of reg 0x27 must be set to 1. None of the other timer-related flags, including the reset and enable bits, nor the state of Timer B, have any impact on CSM mode whatsoever, and the act of changing the state of these settings at any time have no impact on the operation of the CSM mode, as long as the channel 3 mode, and Timer A load flag remain unchanged.

The effects of CSM mode:
When CSM mode is correctly enabled, each time Timer A expires, the following two steps occur, in the specified order:
1. Key-on is sent to all operators in channel 3
2. Key-off is sent to all operators in channel 3

In other words, key on occurs, immediately followed by key-off, at the instant Timer A expires.
The Attack Rate must be set to 31 otherwise you got no sound, because of the instant key off. TL and RR are the two only parameters which control the envelope under CSM mode.

Regarding manual key on:
CSM mode only affects operators which are currently keyed off. If you were to manually key-on all operators in channel 3, then enable CSM mode, the CSM mode would have no effect until you sent a manual key-off event. If you never send a manual key-off, CSM mode will never take effect.

It seems to be a pain in the ass to program for speech synthesis but nice to try! and knowing formant frequencies is a +

I also have a couple of questions:
1- regarding the CH3 special mode F NUMBERS...could you provide me the lowest and the highest frequencies in HZ and(FNUMBER) that you can reach ? just to be sure I made it right in my FMDRIVE and for GENMDM compatibility smile 

2-regarding SSG EG... I see in the CC Chart101.txt that you have one CC enable function and one CC setting for the SSG shapes.
Isn't it normally available as a per operator basis ? so on one channel we should have 4 CC's for SSG on/off and 4 CC's for SSG shapes?
maybe you did not implement it yet... so i assume it's a global enable for all operators of the channel ?
anyway great job! thx again for the update smile

thx++

Last edited by Aly James (Jan 22, 2013 3:40 am)

Offline
FRANCE

Last but not least here is a proof of concept on FMDRIVE YM2612 VST controlling real sega megadrive hardware via the GENMDM..
I just put up a fake genmdm midi receiver to check incoming midi data and visually report changes on the screen while I am tweaking the FMDRIVE..
The sound you hear is from the FMDRIVE emulation engine not from the hardware, until I receive my genmdm smile
sorry for the clicks, pops and lags in the audio but my poor cpu cannot handle well live playing and video recording in HD...even for a lame 2bars loop...;)

Offline
ad-hell-aide

Aly looking fantastic!

The SSG-EG ON / OFF and MODE are global AFAIK, but I haven't read a good explanation of how it works (apologies! I was just very excited to make v101!)

Ch 3 special mode fnumber etc are the full range i.e. MIDI note 0 to whatever the max is (maybe MIDI note 100?) I'll check it out ASAP and get back to ya smile

Offline
matt's mind

can't wait for this VST!

(i don't know anything about this or how different the formats are.....  but is it possible we coule see this in AU form as well?)

Offline
FRANCE
kitsch wrote:

can't wait for this VST!

(i don't know anything about this or how different the formats are.....  but is it possible we coule see this in AU form as well?)

Sorry No Mac, No AU, No RTAS, WIN 32 VST Only
But do not give up, with little work, this solution might works for you
http://diaphone.blogspot.fr/2010/12/11.html
It seems to run VST windows .dll in AU using WINE on MAC, I could not test it myself 'cause I ain't got no Mr Jobs machine ...yet smile

Offline
FRANCE
little-scale wrote:

Aly looking fantastic!

The SSG-EG ON / OFF and MODE are global AFAIK, but I haven't read a good explanation of how it works (apologies! I was just very excited to make v101!)

Ch 3 special mode fnumber etc are the full range i.e. MIDI note 0 to whatever the max is (maybe MIDI note 100?) I'll check it out ASAP and get back to ya smile

smile No problem for now, I think it should not be to hard for you to add the SSG per operator function CC mapping to your teensy code.
I am uploading a quick video about SSG tweaking that shows the benefit of the per Operator function and later combining with Ch3 SPECIAL MODE,  I post it asap ++

Last edited by Aly James (Jan 23, 2013 12:08 am)

Offline
Nottingham, UK

Man, I cannot get over that interface. So slick!.

Last edited by ForaBrokenEarth (Jan 23, 2013 12:44 am)

Offline
FRANCE

smile The sega deserve it! one day I will buy another non working MD1 on ebay, ...(mad scientist voice ON: ..cut out the plastic circle and put a touch screen in it!!! ahahaaaa...well LOL

Last edited by Aly James (Jan 23, 2013 12:51 am)

Offline
ad-hell-aide

Aly James, how is the SSG mapped from register 90? I don't really know, and I couldn't find much info!

Offline
ad-hell-aide

As far as i can tell, register 90 only uses bits 0 - 3, with bit 3 setting whether or not SSG-EG mode is on. Do bits 0 and 1 set the op?

Offline
FRANCE
little-scale wrote:

As far as i can tell, register 90 only uses bits 0 - 3, with bit 3 setting whether or not SSG-EG mode is on. Do bits 0 and 1 set the op?

http://gendev.spritesmind.net/forum/vie … 13f0c8a706
check the SSG part for more info, I check my yamahas manuals ASAP smile

Offline
FRANCE

It appears to me that it is register
for CH1 to CH4:  90 94 98 and  9C for Slot 1 2 3 4 respectively 
for CH2 to CH5 : 91 95 99 and  9D  idem as above
for CH3 and CH6 : 92 96 9A and 9E

I can send you a  translated PDF of the YM2608 OPNA witch is the closest thing we go for the YM2612 smile

Offline
ad-hell-aide

ah yeah cool! totally different to what i was expecting lol