FMDrive VST (YM2612) and SPSG VST (SN76489 PSG) MIDI 2 VGM Converter Tools !

Convert your FMDrive VST + SPSG VST Tracks to VGM

For VST FMDrive (Megadrive / Genesis FM Synth) and SPSG (PSG SN76489 chip) users


I never found the time to make some proper info and tutorials regarding the usage of these geeky tools so I decided to make a release of my custom package anyway and do tutorials later, at least it is usable with a bit of reading :D
The FMDrive MIDI, + SPSG MIDI compositions to VGM file converters are still beta but 99% stable.
The format do not support yet CSM or Special Channel Mode conversion but every other things works, including logging FM registers automation! same for PSG.
DAC PCM files are converted the same way.
That means that you can have a portable hardware compatible version of your composition and eventually listen to it on the console hardware itself...
Huge thanks to ValleyBell from VgmRip for the code works, source code and additional info are also available and open sourced directly at VGMRIP

What  is it?

Keep in mind these are not a "one click done" converters and that they need a bit of "geek power" in order to use them properly but you are probably kind o' nerdy anyway if you are reading this...

These are converters that will take MIDI data as input and specific soundchip parameters and output a compressed widely popular format for chiptune called VGM, While VGM is not really a "machine ready" code there are some converters that let you embed a VGM player into a ROM file, hence it makes your track playable on the real console.
The real advantage of this converter is that it will translate complex FM register automation from FMDrive that you did in your DAW into the VGM. This allows to translate pretty much any musical expression that you have recorded while performing in real time! which was something nearly impossible to translate properly using only trackers or machine code.

Converting Super PSG VST tracks - Midi to VGM -SN76489

Basically you will need a DAW that let you record the MIDI output from SPSG VST.
SPSG VST, once MIDI output enabled, will write MIDI data for Volume envelope and Pitch, including arpeggios and pitch envelope.
A text file is provided into the package with some more infos.
You have to use CC#7 for volume data to work with the converter. Pitch if any will be sent automatically via MIDI out

Here is a video that shows the process from scratch in Cubase, it should be similar in other DAWs, it is somewhat long but once you did it once you can save a template in your DAW to do things fast :D

Also ,contrary to what is in the video, there is no need anymore to write RPN parameters for pitch, you only need to write CC#6 value = 48 at the beginning of the MIDI track that is using some pitch (bend, vibrato or pitch envelope) (SPSG use the whole range to write pitch data)

SPSG 2 VGM small Tutorial Video

 Supported MIDI Controllers (MIDI CC#)

The converter will respond to:
CC7    Main Volume 

CC10    Pan

CC16    General Purpose #1    select Noise Mode
                0-63 - white noise
                64-127 - periodic noise

CC17    General Purpose #2    set PSG 3 frequency Noise Mode

(Noise Frequency controlled by PSG 3 Frequency)
                0-63 - disable

                64-127 - enable (in this case transpose the notes to -48 semitones, 4 Octaves lower, if you use SPSG)

 You will use mainly this setting on the converter:

disable GG (for GameGear) stereo if you plan to make a fusion with an FM only VGM in order to have a full Megadrive tracks (the PSG is mono only on the Megadrive) and use a Custom Clock if you have used something else in SPSG VST.

The MIDI channel mapping should be:

MIDI ch1 for PSG ch1
MIDI ch2 for PSG ch2

MIDI ch3 for PSG ch3
MIDI ch4 for PSG ch4 (Noise)

To sum up:

  • Make a track using one instance of SPSG per channel (not needed but makes thing clearer)
  • Respect the real limitation (3 mono channels at the same time + 1 noise channel) if you are recording from live input make sure to clean up your recorded note to avoid overlapping notes (Cubase again as a neat tool to do this) the converter will do this for you but you have no control over it... the only time you will be allowed to use chord in one channel only is by using the 2nd arpegiattor (MIDI arp in SPSG)
  • Once recorded, set each SPSG instance to MIDI out enable, Volume on CC#7
  • Open some MIDI tracks and set their input to be the corresponding instance of SPSG and fire play/record
  • Next merge the MIDI notes with the Volume/Pitch Data tracks you have just recorded
  • Make sure each channel is set to the correct MIDI channel and export the MIDI file
  • Load the MIDI file into the converter, adjust settings and click CONVERT :D
 You then have a PSG VGM that you could also later combine with and FM VGM (made with FMDrive VST) using the vgmmerge tool (see bellow)

Converting FMDrive VST tracks - Midi to VGM -YM2612

Basically you will need a DAW that let you record the MIDI output from FMDrive VST.
If you do not use registers automation you can go on, if you plan to do, you have to load first the GenMDM preset first (included into the converter pack), this is an INIT preset that will also map each controls to the appropriate MIDI Control Change number to use the converter.
A text file is provided into the package with some more infos.

I will make a video soon anyway!

1st Example without automation

So here we go, first fire your DAW and load 2 instances of FMDrive for a start.
Make sure to load the GenMDM preset first to replace the Init preset, the mapping will remain even if you change presets.
Now make a nice bass sound or import a tfi preset as a basis and tweak it, record a part, make sure it is mono. If you plan to have chords you have to split it onto multiple channels, one note per channel (there are some free MIDI plugins that would do that for you :) I will find the name and put a link here later)
Once done make sure to save your preset as a .tfi somewhere (you can save it in the converters TFI folder for example)

Now do the same with the other instance of FMDrive, do whatever you want but make sure it is mono.

You should now have 2 tracks and have saved 2 tfi presets.

Now it is time to configure the presets for the converter, for that you will use 2612edit.exe
Basically you will have the option to attach your presets to MIDI patch numbers, in GM MIDI the first patch is named : Acoustic Grand Piano so let's say you have saved a preset called Ch1.tfi you need to attached that .tfi preset to Acoustic Grand Piano (MIDI program 1) so when the converter will process your exported MIDI ans see Midi Program 1 attached to a channel it will use the .tfi preset.
It is a bit hard to understand at first but very easy in use.

Process like this >> 2612edit.exe>> import instrument from file>> select TFM/VGI instrument(*.tfi,*.vgi)>> go to your preset folder double click on the .tfi and click OK

 Next select the mapping for Acoustic Grand Piano and select your tfi preset that is already loaded into the bank.

 Next repeat the process and import your second preset into the bank, then select the second MIDI instrument "Bright Acoustic Piano" and map it to your second freshly imported tfi preset.

 Next save this bank as Instruments.gyb (overwrite the existing one) this bank will be used by MIDI2VGM.

Now it is time to set up your MIDI file in your DAW.
Basically at this point you have 2 FMDrive channels with MIDI notes, save your song just in case.
Now for a cleaner view open 2 new MIDI only tracks and copy the MIDI notes part of each FMDrive channel to its respective MIDI channel.
At this point you can get rid of the FMDrive VST instances.
You should only have 2 MIDI tracks left.
Let's adjust the MIDI parameters of the MIDI channels, set one to output on MIDI channel 1 and the other to MIDI channel 2, set the first track to the first MIDI program 1 (or 0 depending on the MIDI implementation of your DAW) and the second track to MIDI program 2 (or 1 if the first was 0)
By doing this, if you are still following, the first program will be mapped to the first tfi preset and so on, this is the mapping we did in 2612.exe

(If you have used any pitchbend make sure to add CC#6 with a value corresponding to the pitchbend range set in FMDrive for that track/channel) basically add a MIDI event at the beginning of the channel: CC#6 value= 12 (if pitchbend was 12 semitones)
This is also a good time to verify any PAN parameter.

Now you are ready to export the MIDI file, once done copy the MIDI file in the same folder as midi2vgm.exe then launch midi2vgm.exe and load your MIDI file.

Set it like so: GenMDM Controllers ticked, volume slider to 127.
Select your MIDI file and first make sure no channels have overlapping notes by clicking on "Force Note Off if..."
Now click Convert and...WAIT it IS SLOW that's Vintage ahaha :)

Done, the VGM should be next to your original MIDI file.

2st Example with automation 

Remember to first load the GenMDM preset before creating any sound! (you could also simply MIDIlearn manually the parameters you are planning to use using the provided MIDI CC MAP in the converter pack...)
Make sure you save your sound as a tfi preset BEFORE you applied any automation, this will make sure your starting point is still the same. 
Now let's use the same track or make another one but let's record some registers automation, like Modulator operators levels :), write some crazy automation or use the FMDrive GUI and move sliders while recording automation.
Once done, repeat the process above.

PS: remember that using automation will create a lot of busy state for the real hardware YM2612 so stay gentle if you plan to use it alongside a lot of PCM samples and the whole 5 channels.

3rd Example with DAC and PCM samples (.Wav)

You can use the DAC channel to have samples playing, again think of it as mono, one sample at the time.

You can use the same samples you are using in FMDrive with the DAC function. So let's make a drum track with FMDrive using the DAC, import 2 samples into SLOT1 and SLOT2, let's say kick and snare, make a beat.
Save this as MIDI with the channel set to 10 (see above)
now copy your .wav samples you used into FMDrive into the DAC folder of the converter and edit the DAC.ini file with a text editor and use this code: ( the H24, H26 are Hexadecimal notation for MIDI notes btw)
; Bass Drum H
File = DAC\YourKickFileName.wav
Freq = 0

; Snare Drum M
File = DAC\YourSnareFileName.wav
Freq = 0

Now convert your MIDI file with mid2vgm.exe, it is by default set to search for DAC on channel 10 and disabling channel 6 FM part (you now about this if you know YM2612) 

To sum up you can use all of the above together to convert a full blown 5 FM channels + 1 DAC channels track.

 Again I will make some video for it, I know it is not the easiest thing but you should make it work with a bit of use.

Please do not ask for much support as it is a free set of tools and I am MEGAAAAAAAAAAAAAAAAAA (say it reaching a very high note)  busy, so if any questions make sure you tried everything before sending mails :D


Merging FM & PSG

You can merge the FM part made with FMDrive VST and the PSG part made with SPSG VST to make a complete Sega Megadrive Song, the tool in use is vgmmerge.exe, it will merge both VGM.

To edit your VGM files (naming etc) use VGMtool.exe
(infos inside)

 More info will come next regarding how to play a VGM onto the real console...
That was a long post!

AlyJamesLab 2016 Some upcoming infos

First post of 2016, time to speak again to the world...
Expect some a series of blog posts in the upcoming hours :D


ANALOG SATURATION is good to your earhole :)

Analogue warmth seems to be the Holy Grail in these digital days. But why does it hold such appeal, what does it do the sound?

As I was working on a new OBERHEIM OB-X emulation tailored to my musical needs, I though about bringing into the party some analog code I have made earlier for the VSDSX VST (Simmons Drum Synth accurate emulation) and start tweaking on it...this really brings some extended harmonics and compression to the sound.
Later I decided to push the volume hard into saturation territory before and after the CEM filter stages...This was very nasty sounding and it becomes the main extended feature of the upcoming OB-Xtreme VST...You can push it hard :)

If you stay gentle on the volume, this is a part of what is so called "warmth" sounding.
Analog world is not perfect, vintage electronics components aren't either.
Humans ears like more what is not perfect, this is a fact.
The tape is also a good example of pleasant saturation and high frequencies compression.
Ton of parameters are in effect in an analog system which induce a lot of non-linear modulations to the sound.
One of those effect is for example a Diode Clipping that will generate mostly third harmonic with a smaller amount of fifth, and lesser amounts of each additional higher odd-order harmonic. If a sound containing rich harmonic content like a digital saw oscillator is feeding a filter with a slightly saturated content it really gives the bass a nastier pleasant sound.
look at what a diode clipping does to a sine wave depending on the volume...

So back to the upcoming OB-Xtreme VST.

It is a cut down version of an OB-X with less options than the original (there is already some VSTs for that), however the main characteristic features are there and it bring to the party a more analog sounding engine with the help of 2 controllable saturation stages, a FAT mode which is basically a polyphonic unison mode (8x8 Voices!) and an optional separate output for each of the 8 voice card.
The separate outputs are taken before the emulated CEM VCF (which is configured as a State Variable Filter 12 Db/Octave ) filter stage. This gives the user the opportunity to experiment different mixing and FX for each note of a chord...
I will make a proper post when OB-Xtreme VST will be released, which is pretty soon :)

FMDRIVE VST + SPSG VST SEGA Original FM Synthesis and Square Waves Goodness Music playlist!

The VSDSX SIMMONS DRUMS, the world 1st legendary accurate Simmons Drum Brain VST

The Legendary Hexagonal Simmons Electronic Drums

You probably already heard a Simmons drum synth without even knowing it... wondering what was used to produce that huge drum sound?

The Simmons hexagonal shaped electronic drums were all over the place, on countless records and live shows during the 80s, used by artists and bands like Genesis, King Crimson, Jean michel Jarre, Prince, Herbie hancock, Pink Floyd etc... The sound was not especially realistic but it was not the goal...the goal was to be huge and versatile. Invented by Dave Simmons, the most famous drum brain called the SDSV or SDS5 was a drum synthesizer, bringing synthesis into the drummer hands.
Often used abusively to generate only those pewww pewww tom tom sounds, the SDSV module produced a wide range of sounds. With a great punch and sensitivity, a truly unique and cult sound, it can be used for almost everything. The SDSV successor called SDS7 bring some digital low-fi samples in the game and a bunch of additional features like bend direction or FM modulation for a broader range of possible sounds.
The SDSV is an historical piece of gear that has a place in the sound of the 80s and is still used today as a secret weapon. Only around 5000 of these things are out there so don't count on finding a working one easily or for cheap. The machine was made by a true innovator that later unfortunately lost his Simmons company. As there were no accurate VST for this legend out there...
I had to make the VSDSX! dedicated to Dave Simmons.

The VSDSX VST, which stands for Virtual Simmons Drum System eXtended,  provides the closest experience to the real thing, it models accurately  the analog character of the sound generation, internal circuitry, clocks and counters that read EPROM memory, feed the 8bit DAC which decodes the hihat and cymbal EPROMS data in realtime.
It models the SSM2044 filters with fine tuning control over a lots of internal circuitry resistors. CV, trigger shapes and VCA response can also be tuned to produce a wide range of sounds, and punch/response, this also emulates how the module will react if triggered with pads, Simmons pads or sequencer...Separate outputs for your DAW, velocity handling etc...
You will obtain that legendary powerful analog punch! On top of the cake, one voice can load your own external EPROM data like on a real SDS1 (EPROM based) pad...This opens up onto a whole new range of sound, still being processed by the circuitry.

VSDSX provide a huge synthetic drum sound by itself and can also be used with great efficiency in drum layering. By using it with the VLINN LM1 VST  it can really bring a nasty funky sound!

You can find some reverse engineering and technical infos at www.alyjameslab.com and also download the free .pdf manual at the website.

You can find some nice audio demos for VSDSX VST here:



The VLINN LM1 DRUMS, the world 1st legendary accurate LINN LM-1 Drum Machine VST

Here it is my VLINN LM1 DRUMS VST is out :)

The Linn was THE killer drum machine in town back in the 80's.
It was also the first that include real drum samples! The Linn LM-1 Drum Computer was created by Roger Linn. He used samples of acoustic drum sounds recorded on the fly with some basic hardware. The fact that they were recorded raw with a custom made ADC makes them cut better in a mix than anything available at the time, they sounded so great that they become an alternative to the analog drum sounds of the 80's drum machines.. to this day the unique sound of that machine is highly regarded and only using samples of an LM-1 output cannot reproduce the wide range of sounds this machine can produce. The DAC in use in here and he whole circuitry stands next to the samples characters in that unique sounding team.
The LM-1 is an historical piece of gear that has a place in the sound of the 80's era. Only around 500 of these things are out there so don't count on finding a working one easily or for cheap. It has been used by major acts like: Prince, Phil Collins, Thompson Twins, Stevie Wonder, Gary Numan, Depeche Mode, The Human League, Jean-Michel Jarre, Vangelis, John Carpenter, Todd Rundgren,The Art of Noise... The Machine was made by a musician for musicians and I tried to stick to that standard :) So as there were no accurate VST for that legend out there...
I had to make the VLINN!

The VLINN LM-1 DRUM VST provides the closest experience to the real thing because it is not based on samples, instead it accurately models the clocks and counters that reads EPROMS memory feeding the AM6070 DACs to decode the EPROMS data in realtime, models the CEM 3320 filters with tweakable control over the CV pulses shapes to let more or less transient pass through unfiltered or completely bypass them, special hihat circuitry and VCA providing different hihat sound on each trigger and decay control, separate tuning for all voices with already a wider range without tweaking the electronics...separate outputs for your DAW, velocity handling etc...You will maintain that raw sound at every tune! On top of the cake 7+1 voices can be replaced with external EPROM data like on a real machine...Opening up a whole new range of sound, still being processed by the circuitry.

The VLINN use DAC AM6070 emulation to decode the EPROMS content in real time, a specialized DAC back in the days that was able to encode/decode ยต-Law companded data. A form of compression enabling a 12bit range out of 8bit storage.

OPAMP bandwidth little high loss had been removed from the VLINN emulation, this is a design choice I have made as it improves slightly CPU performances without, you can get rid of the extra top end if needed with a few Db roll off but this is useless, take in account that Linn LM1's were usually processed to console channel strips with EQ etc...

Also please check the website and VLINN manual for explanation on the internal 48 PPQN resolution of the LM1 sequencer and why it influences the groove.

The VLINN use the exact AM6070 DAC data decoding scheme.