gopal_metro wrote:

Absolutely beautiful piece of software!  I'm a Mac user, but I think I'm going to pick this up just to support the cause!

Thank you for the amazing work, Aly!

thanks!
maybe a "parallel desktop" solution could work on mac, I have seen a couple of solution to run windows VST in OSX environment...
until I got a mac myself I kind test anything, btw: I am waiting for some people who have working crossover systems to send me test results...

yay! this is awesome smile
haven't tested it yet but does it loads midi files and perform operation based on the content?
for example I would need to take every midi notes in the midi file, analyze each note (0 -127) one by one.
Previously setting the PPQ to something like 960,
The goal is to write a square wave on the volume for every note, the square wave correspond to the note frequency + (some slight detuning)...

For every new note encountered I calculate the frequency in Hz to find the period and deduct the closer PPQ wait time
then for every note, while note on, I will add CC#7 (volume) 127, PPQ/2 wait time corresponding the period, 0 and so on until note off.

For a 440Hz note, this should adds 880 CC informations per second ( 440 times  value =127 and 440 times value =0).
Knowing that MIDI baud rate is 31250 and a MIDI CC is 3 bytes long + start and stop bit for every bytes,
this gives us 26 bits serially sent for every CCs and a max possibility of 1200 CCs per seconds (31250/26)
then to write a square waves on the volume CC a max frequency of 600 Hz (as their is 2 states per period and 2 MIDI CC messages are needed).
I think that baud rate limitation do not apply if you use MIDI internally in a DAW...

At 120 BPM a quarter note is equal to 2Hz, if PPQ is 960 this gives us 960 Hz max resolution for writing a square wave on the volume CC ((2Hz * 960)/2 states of the square wave).
If you slightly vary the CC modulation frequency from the actual note this will give you a kind of pulse width modulation especially if the sound source is a square wave too.
This is a technique I have used to make timer modulation on the Sega PSG square wave and the technique used for a long time on Atari ST (known as "SID" sound) because these chips had no pulse width control built in...
I have implemented this technique in my SPSG VST too.
Your program might do the job to convert any midi file or if it can't, as is, at least I can make a list of midi file per note that I can later import smile

looking forward to your answer.

Here are possible frequencies for BPM 120 and PPQ 1920.
BPM= 120
PPQ = 1920
(Square waves takes 2 PPQ waits per cycle)
---------------------------------------------------------------------
wait value (PPQ) >> frequency of modulation (Hz)
wait 1 PPQ = 960
wait 2 PPQ = 480
wait 3 PPQ = 320
wait 4 PPQ = 240
wait 5 PPQ = 192
wait 6 PPQ = 160
wait 7 PPQ = 137
wait 8 PPQ = 120
wait 9 PPQ = 107
wait 10 PPQ = 96
wait 11 PPQ = 87.3
wait 12 PPQ = 80
wait 13 PPQ = 73.8
wait 14 PPQ = 68.6
wait 15 PPQ = 64
wait 16 PPQ = 60
wait 17 PPQ = 56.5
wait 18 PPQ = 53.3
wait 19 PPQ = 50.5
wait 20 PPQ = 48
wait 21 PPQ = 45.7
wait 22 PPQ = 43.6
wait 23 PPQ = 41.7
wait 24 PPQ = 40
wait 25 PPQ = 38.4
wait 26 PPQ = 36.9
wait 27 PPQ = 35.6
wait 28 PPQ = 34.3
wait 29 PPQ = 33.1
wait 30 PPQ = 32
wait 31 PPQ = 31
wait 32 PPQ = 30
and so on...

iNFOTOXIN wrote:

Awesome, just bought a copy of your Super PSG VST too; Glad to see it'll get more useful (as soon as I get together a Windows laptop that is.) big_smile

As for the .vgm logging is there any info on how to do that? I'm intrigued by it, but like I said don't really understand.
It takes the data as it's played back and creates a .vgm? Including automation of parameters?

IIRC, When the logger is enabled via CC#114, GenMDM will stream the data as a MIDI message... using CC number, CC value and MIDI channel bytes as YM2612 address, data and page number.
The MIDI stream can then be converted into a header-less VGM log via a Max patch (available in the GenMDM tools).
Then you copy the dummy header at the beginning of the file followed by the vgm log.

I haven't tested the tool myself yet and I don't know if the VGM stream will log PCM samples too nor if the log is optimized.

I was working on a VGM converter update lately with Valley Bell (VGMRIPS) to convert the FMDrive (YM2612)VST and SPSG(PSG) VST MIDI output into VGM, including automation smile So far I have made a bunch of testing and report any corrections to Valley Bell that has already fixed the main issues.
As you probably know, FMDrive & SPSG can control GenMDM and compatibility will be even finer when Little Scale will fix some bugs.

Put it in a short way you will be able to make a track with FMDrive & SPSG in any DAW and convert to VGM with or without GenMDM.
then you can:
- bounce the accurate emulated audio as is
- stream to GenMDM in real time
- convert the song with the updated MID2VGM converter (including your own PCM samples!) or via GenMDM own logging

The tool will be available freely in a few weeks once every tests and fix will be done.

infos at http://www.alyjameslab.com
A VGM can then be converted into a ROM...

hope that helps smile

Audio demos here >> https://soundcloud.com/alyjameslab/wand … drive-spsg

36

(4 replies, posted in Sega)

Trackers alternative... FMDrive VST(YM2612) & SPSG VST (SN76489) smile http://www.alyjameslab.com
Output can be converted into VGM then into a ROM...
4. live playing can be achieved via GenMDM interface.
I have added new presets to my preset pack linked above too smile
6. FMDrive & SPSG Manuals are complete resources to familiarize.

Audio demos here >> https://soundcloud.com/alyjameslab/wand … drive-spsg

iNFOTOXIN wrote:

Firmware v103 is out.

Not really quite sure what the updates mean just yet, because I know nothing...

It should enables raw .VGM log...
the great news is also that Seb, just took my debug test list and will soon update again to enable correct D2R register handling (important part of the ADSR envelopes) and some weirdness on the special mode and PSG side smile
https://twitter.com/alyjamestwitt/statu … 1698532354

So, FMDrive (Megadrive/Genesis) and SPSG (PSG) VST ...VGM conversion! available in a few weeks smile I am currently debugging the tool with Valley Bell (VGMRIPS) and so far it works fine.
VGM can then be turned into ROM files to play on the console (Sega Megadrive or Master System).
Here is some previews :
>> (.VGM links in tracks description)
https://soundcloud.com/alyjameslab/wand … drive-spsg

https://soundcloud.com/alyjameslab/big- … sg-vst-now

SPSG related here >> http://chipmusic.org/forums/topic/12578 … -extended/

SPOILER: nice news about to hit...:)

40

(2 replies, posted in Sega)

Put it to the test with this short vgm test... smile
http://www.alyjameslab.com/tempdata/FMDrive_Test_10.vgz
It should output a buuuuuuuuuuuuuunnnnch of preset files as almost all registers are updated constantly...
This is actually made by testing FMDrive VST registers conversion option added to the latest Valley Bell's Mid2VGM ! (unreleased yet).
VGM2PRE works perfectly so far!

And for the sake of previous post completeness here is a zip file with:
SPSG OUTPUT (MD Filter, SMS Filter)
GENMDM ADSR ONLY .WAV
GENMDM ADSR + PITCHBEND "BUG" .WAV
SPSG OUTPUT logged VGM .vgm
SPSG OUTPUT MD ROM .bin
http://www.alyjameslab.com/tutorials/PSG_GENMDM.zip

DUNGEONMASTER wrote:

I know this is a topic we've already discussed, but will this be able to adjust the ADSR, functions on GENMDM? So far ive only been able to affect the expression/velocity commands. If your VST can do it, I'm sure to donate sooner then later.

Yeah, it works for ADSR smile
because SPSG sends volume data over MIDI and you can assign any CC# (CC#11 for GenMDM, CC#7 for Mid2VGM etc..)
SPSG also sends pitch envelope and arpeggio via MIDI Pitch bend Messages,
However pich envelope and arpeggio do not work with GenMDM because GenMDM rewrites velocity data over pitch change and doesn't handle pitchbend resolution sad
It works better with the SN76489 MIDI interface http://chipmusic.org/forums/topic/11015 … -usb-midi/ which I have modified the code to handle everything correctly smile (still improving this before releasing the source code...)

You can also play the data on the hardware by converting SPSG output to VGM then write a ROM file without needed GenMDM.

The MD filter also emulate the Megadrive / Genesis filtering accurately (it also emulate SMS and unfiltered output).
Here you can see an audio log of SPSG data with arpeggiator ON (same pitch, +1 oct, same pitch) and same thing with GenMDM arpeggiator OFF.

There is some nice stuff to implement and little stuff to correct on the GenMDM side, I hope Seb will continue the project at some point in the future...it has been a while since I heard anything from him about GenMDM.

I will also release some great infos about converting FMDrive YM2612 and SPSG PSG data to VGM soon! the tool is almost ready smile

Yep, After I will complete my last scheduled project (Linn Lm-1 Drum Machine VST with direct EPROM binary loading features...) I will start to familiarize with OSX and try to port these (I never had a mac since ^-^) so it should be around summer 2014.

If there is some interest in here ( seems strange that nobody is interested in the LFSR noise real-time bit modulation feature...)
I will demonstrate some hardware capabilities in video soon smile
if not I will probably make a successful thread about "what was your grandma doin' last week?" ...y'all understand smile smile smile

Look at this electronics doll-house! beautiful, the concept is nice too.

Updated, it's OUT NOW smile

Might be of interest for GENMDM owners,
I will release my new SUPER PSG VST on DEC 17, it is a features beast and can also output its data via MIDI..., basically it means that you can control the PSG with it in the same way you can with FMDrive VST! and use it as patch creator, controller for the GENMDM controlled PSG.
There is some limitations in terms of data transfer speed via GENMDM but overall it can works fine.

Here is the specific thread http://chipmusic.org/forums/topic/12578 … ded-synth/
There is also a manual that explain all the features in details and what can be done with GENMDM...
The manual is also a nice resource to learn more about the PSG smile

Here it is! FB01 FM (YM2164) Module whole banks patch rip for FMDrive! or VGMM (.tfi format)
http://www.alyjameslab.com/addons/FMDri … _BANKS.zip

This FM sound-chip was built in in the CX5M Yamaha CX5M Music Computer. Basically it's an MSX computer compatible with all MSX software and games but with the addition of an add-on sound module incorporated into the design of the computer, known as the SFG-01, it will be embedded into the FB01 MIDI compatible module later on.
By the way you can even mess with the FB01 via the Blue MSX emulator... smile

This patches are YM2151 compatible but also YM2612, they are pretty classic but really nice with velocity sensitive input.

Now here is a PCM samples dump archive I have found for a bunch of Megadrive games, the author of this compilation should be credited but I have unfortunately no infos...:
http://www.alyjameslab.com/addons/FMDrive_MD_PCM.zip

Soon I will also add my modified version of oerg866 VGM PCM data Dumper (sound added when searching/extracting and basically skip the registers extraction part) to dump your own samples from VGM files smile

You are also invited to visit the SUPER PSG VST thread here http://chipmusic.org/forums/topic/12578 … ded-synth/ as I have released the manual and some new infos like release date smile