Forums

Sega Master System / Mark III / Game Gear
SG-1000 / SC-3000 / SF-7000 / OMV
Home - Forums - Games - Scans - Maps - Cheats - Credits
Music - Videos - Development - Hacks - Translations - Homebrew

View topic - New FM tracker

Reply to topic
Author Message
  • Joined: 05 Sep 2013
  • Posts: 19
Reply with quote
New FM tracker
Post Posted: Tue Nov 16, 2021 11:48 am
Hi SMS fans

Today I found this: https://www.reddit.com/r/chiptunes/comments/qfe3ku/0cclltracker_an_ym2413_fork_o...

It's a modification of another tracker in order to use YM2413 chip. I guess it will come handy to create FM music for our beloved console.
  View user's profile Send private message
  • Joined: 30 Jun 2016
  • Posts: 194
  • Location: Melbourne, Australia
Reply with quote
Post Posted: Tue Nov 16, 2021 4:41 pm
The dream is here!

The lack of SN76489 support isn't... perfect. But it's also how the Mark III's FM module worked, sooo...
  View user's profile Send private message Visit poster's website
  • Joined: 05 Sep 2013
  • Posts: 19
Reply with quote
Post Posted: Tue Nov 16, 2021 6:15 pm
Flygon wrote
The dream is here!

The lack of SN76489 support isn't... perfect. But it's also how the Mark III's FM module worked, sooo...


It seems there is a problem: the VGM format this tracker produces cannot be used with SMSdevkit currently. Maxim did a VGM player, I guess the music handling part could be isolated to a library to use it with SMSdevkit but it seems a VGM file would take too much ROM size.
  View user's profile Send private message
  • Joined: 25 Jul 2007
  • Posts: 716
  • Location: Melbourne, Australia
Reply with quote
Post Posted: Wed Nov 17, 2021 8:07 am
That's because currently there is no minified FM format and player for devkitSMS.

It probably wouldn't be too hard to make an FMLib for the FM chip, in the same way there is PSGLib for the PSG chip, basically a super-simplified midi format.
  View user's profile Send private message
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14687
  • Location: London
Reply with quote
Post Posted: Wed Nov 17, 2021 8:30 am
VGM is already very much like MIDI, but I’m sure a minimised version would be quite possible. There’s more gotchas with YM2413 - timing, parameter setup around percussion - and it’s harder to test, but I’m sure it’s possible.

PSGLib optimises a little more for speed vs size by putting everything into one data stream (chip commands, timing). I think splitting the streams and having a stream per register might work better for FM, even though it means some redundancy in the timing data and more work in the playback engine.
  View user's profile Send private message Visit poster's website
  • Joined: 05 Sep 2013
  • Posts: 3761
  • Location: Stockholm, Sweden
Reply with quote
Post Posted: Wed Nov 17, 2021 10:20 am
thatawesomeguy wrote
It probably wouldn't be too hard to make an FMLib for the FM chip, in the same way there is PSGLib for the PSG chip, basically a super-simplified midi format.


I think even a 'minimized' FM VGM would use a lot of space, given that there are way more hardware registers that could be updated at each frame, and that's why I basically never went further with any FMlib.
(you can compare with the size of a PSG VGM to get an idea...)

Sure, one could create a library that supports tunes larger than 16 KB by supporting paging but... well, that complicates matters of course.
  View user's profile Send private message Visit poster's website
  • Joined: 16 May 2002
  • Posts: 1355
  • Location: italy
Reply with quote
Post Posted: Wed Nov 17, 2021 10:24 am
A 2413 tracker is definitely welcome, even I wanted to make one, but I've been told there was no need to (because of Moontracker and Trilotracker), so I never did.

As for playback libraries, relevant discussion from some years ago, so nothing is lost.
  View user's profile Send private message Visit poster's website
  • Joined: 29 Mar 2012
  • Posts: 879
  • Location: Spain
Reply with quote
Post Posted: Wed Nov 17, 2021 10:26 am
I won't say a tracker is not needed, especially as all the musicians I know say that using a MSX tracker is a NO-GO.
  View user's profile Send private message
  • Joined: 05 Sep 2013
  • Posts: 3761
  • Location: Stockholm, Sweden
Reply with quote
Post Posted: Wed Nov 17, 2021 10:40 am
Tom wrote
As for playback libraries, relevant discussion from some years ago, so nothing is lost.


definitely a good brainstorming!
  View user's profile Send private message Visit poster's website
  • Joined: 05 Sep 2013
  • Posts: 3761
  • Location: Stockholm, Sweden
Reply with quote
Post Posted: Wed Nov 17, 2021 10:41 am
kusfo wrote
I won't say a tracker is not needed, especially as all the musicians I know say that using a MSX tracker is a NO-GO.


one could port that to modern computers and keep the same format?
  View user's profile Send private message Visit poster's website
  • Joined: 16 May 2002
  • Posts: 1355
  • Location: italy
Reply with quote
Post Posted: Wed Nov 17, 2021 10:42 am
kusfo wrote
all the musicians I know say that using a MSX tracker is a NO-GO.
That's what I said, too, but I've been told that "it works so well", so I didn't feel like writing a new tracker just to see it unused.

If the time comes, I'll still be up to write converters if needed (e.g. from XM).
  View user's profile Send private message Visit poster's website
  • Joined: 05 Sep 2013
  • Posts: 3761
  • Location: Stockholm, Sweden
Reply with quote
Post Posted: Wed Nov 17, 2021 10:49 am
the trouble here is that the problem is threefold:
- have a tracker that musicians want to use
- the tracker should save (or at least export) to a compact format
- there should exist a replay library for that format with low memory/CPU footprint

I think MoonBlaster at the moment qualifies well enough for the second and the third, so a new tracker (or a converter) that could export (convert) to that format would be nice...
  View user's profile Send private message Visit poster's website
  • Joined: 29 Mar 2012
  • Posts: 879
  • Location: Spain
Reply with quote
Post Posted: Wed Nov 17, 2021 10:56 am
Actually, na_th_an already offered to do a converter, but we didn't have at the time a windows tracker suitable. Maybe now we can do from this new one to moonblaster format.
  View user's profile Send private message
  • Joined: 16 May 2002
  • Posts: 1355
  • Location: italy
Reply with quote
Post Posted: Wed Nov 17, 2021 11:02 am
I have less free time now that I work as a teacher in a high school, but if conversion from/to XM is involved at any point I'll gladly help.
  View user's profile Send private message Visit poster's website
  • Joined: 29 Mar 2012
  • Posts: 879
  • Location: Spain
Reply with quote
Post Posted: Wed Nov 17, 2021 1:36 pm
I'm not an expert on XM, but we can try to see how well it can match with moonblaster format.
  View user's profile Send private message
  • Joined: 01 Feb 2014
  • Posts: 844
Reply with quote
Post Posted: Wed Nov 17, 2021 2:29 pm
Trying to shoehorn any format into the one used by MoonBlaster would be a huge challenge, if it's possible at all. In any case I'm really not sure if it's worth the effort, as MoonBlaster is quite restricted in a lot of ways.

kusfo wrote
I won't say a tracker is not needed, especially as all the musicians I know say that using a MSX tracker is a NO-GO.


I could totally understand that, as MSX emulation is particularly fiddly to get up and running. However, in the meantime Calindro has made it possible to run MoonBlaster within Emulicious, and setting that up isn't really any more difficult than running a tracker native to Windows. That's not to say there aren't good reasons for not wanting to use MoonBlaster in the first place, but it being MSX software definitely isn't one of them.
  View user's profile Send private message
  • Joined: 29 Mar 2012
  • Posts: 879
  • Location: Spain
Reply with quote
Post Posted: Wed Nov 17, 2021 3:46 pm
Kagesan wrote
but it being MSX software definitely isn't one of them.


It's. It's not a native modern desktop app, so no mouse, t's hard to extract the disk files to share the compositions, keyboard mapping it's not obvious to a non msx user....
I make a standalone zipped directory with emulicious, moonblaster and blank disk files for my music, and he found it almost impossible to use properly.
I don't have as much problems, but I lived through Amstrad an PC apps back in the day...(I actually proposed him to do the compositions on paper and I would have put them in Moonblaster...)
  View user's profile Send private message
  • Joined: 25 Jul 2007
  • Posts: 716
  • Location: Melbourne, Australia
Reply with quote
Post Posted: Thu Nov 18, 2021 8:00 am
sverx wrote
thatawesomeguy wrote
It probably wouldn't be too hard to make an FMLib for the FM chip, in the same way there is PSGLib for the PSG chip, basically a super-simplified midi format.


I think even a 'minimized' FM VGM would use a lot of space, given that there are way more hardware registers that could be updated at each frame, and that's why I basically never went further with any FMlib.
(you can compare with the size of a PSG VGM to get an idea...)

Sure, one could create a library that supports tunes larger than 16 KB by supporting paging but... well, that complicates matters of course.


This may be a misunderstanding on my part but isn't the advantage of an FM synth that it does most of the heavy lifting internally so that only basic messages need to be sent (instrument setup, note on/off etc). One of the reasons SN76489 is so verbose is because volume envelopes and effects have to be simulated by multiple register writes because it's not natively supported in hardware.
  View user's profile Send private message
  • Joined: 05 Sep 2013
  • Posts: 19
Reply with quote
Post Posted: Thu Nov 18, 2021 11:22 am
Last edited by Cyttorak on Thu Nov 18, 2021 12:09 pm; edited 1 time in total
What about the json format the tracker can export and import? Here an example of a very simple song with just a pattern:

{"channels":[{"chip":"OPLL","subindex":0},{"chip":"OPLL","subindex":1},{"chip":"OPLL","subindex":2},{"chip":"OPLL","subindex":3},{"chip":"OPLL","subindex":4},{"chip":"OPLL","subindex":5},{"chip":"OPLL","subindex":6},{"chip":"OPLL","subindex":7},{"chip":"OPLL","subindex":8}],"detunes":[],"dpcm_samples":[],"global":{"detune":{"cents":0,"semitones":0},"engine_speed":0,"fxx_split_point":32,"linear_pitch":false,"machine":"ntsc","vibrato_style":"new"},"grooves":[],"instruments":[{"chip":"OPLL","index":0,"name":"test","patch":14},{"chip":"OPLL","index":1,"name":"New instrument","patch":[1,33,0,0,0,240,0,15]}],"metadata":{"artist":"","comment":"","copyright":"","show_comment_on_open":false,"title":""},"sequences":[],"songs":[{"bookmarks":[],"frames":1,"highlight":[4,16],"rows":64,"speed":6,"tempo":150,"title":"New song","tracks":[{"chip":"OPLL","effect_columns":1,"frame_list":[0],"patterns":[{"index":0,"notes":[{"note":{"inst_index":0,"kind":"note","value":48},"row":0},{"note":{"inst_index":0,"kind":"note","value":48},"row":8},{"note":{"inst_index":0,"kind":"note","value":48},"row":16},{"note":{"inst_index":0,"kind":"note","value":48},"row":24},{"note":{"inst_index":0,"kind":"note","value":53},"row":32},{"note":{"inst_index":0,"kind":"note","value":53},"row":40},{"note":{"inst_index":0,"kind":"note","value":53},"row":48},{"note":{"inst_index":0,"kind":"note","value":59},"row":56}]}],"subindex":0},{"chip":"OPLL","effect_columns":1,"frame_list":[0],"patterns":[],"subindex":1},{"chip":"OPLL","effect_columns":1,"frame_list":[0],"patterns":[],"subindex":2},{"chip":"OPLL","effect_columns":1,"frame_list":[0],"patterns":[],"subindex":3},{"chip":"OPLL","effect_columns":1,"frame_list":[0],"patterns":[],"subindex":4},{"chip":"OPLL","effect_columns":1,"frame_list":[0],"patterns":[],"subindex":5},{"chip":"OPLL","effect_columns":1,"frame_list":[0],"patterns":[],"subindex":6},{"chip":"OPLL","effect_columns":1,"frame_list":[0],"patterns":[],"subindex":7},{"chip":"OPLL","effect_columns":1,"frame_list":[0],"patterns":[],"subindex":8}],"uses_groove":false}]}
  View user's profile Send private message
  • Joined: 29 Mar 2012
  • Posts: 879
  • Location: Spain
Reply with quote
Post Posted: Thu Nov 18, 2021 12:03 pm
Kagesan wrote

I could totally understand that, as MSX emulation is particularly fiddly to get up and running. However, in the meantime Calindro has made it possible to run MoonBlaster within Emulicious, and setting that up isn't really any more difficult than running a tracker native to Windows. That's not to say there aren't good reasons for not wanting to use MoonBlaster in the first place, but it being MSX software definitely isn't one of them.


I wanted to say that Calindro just told me you can mount folders in Emulicious (I was using msx disk images), so my musician and I were being really cumbersome regarding our process :-P
  View user's profile Send private message
  • Joined: 05 Sep 2013
  • Posts: 3761
  • Location: Stockholm, Sweden
Reply with quote
Post Posted: Thu Nov 18, 2021 12:35 pm
thatawesomeguy wrote
This may be a misunderstanding on my part but isn't the advantage of an FM synth that it does most of the heavy lifting internally so that only basic messages need to be sent (instrument setup, note on/off etc). One of the reasons SN76489 is so verbose is because volume envelopes and effects have to be simulated by multiple register writes because it's not natively supported in hardware.


True, but you might anyway reprogram the whole thing each frame. The old thread linked by Tom contains some data about a few tests I ran back then, basically the YM2413 VGMs are too big to be used as a base for a conversion/compression scheme similar to the one that PSGlib uses.

Tracked tunes is likely the only real option, here. A Windows/Linux/Mac MoonBlaster based tracker would be a good option here because the export format is compact and the replay routines available already (sure, it would require more CPU cycles than playing a PSG tune but that's expected)
  View user's profile Send private message Visit poster's website
  • Joined: 05 Sep 2013
  • Posts: 3761
  • Location: Stockholm, Sweden
Reply with quote
Post Posted: Thu Nov 18, 2021 12:36 pm
kusfo wrote
I wanted to say that Calindro just told me you can mount folders in Emulicious (I was using msx disk images), so my musician and I were being really cumbersome regarding our process :-P


Details, please! I'm sure many would love to use MoonBlaster on Emulicious easily :)
  View user's profile Send private message Visit poster's website
  • Joined: 14 Apr 2013
  • Posts: 623
Reply with quote
Post Posted: Thu Nov 18, 2021 1:06 pm
sverx wrote
kusfo wrote
I wanted to say that Calindro just told me you can mount folders in Emulicious (I was using msx disk images), so my musician and I were being really cumbersome regarding our process :-P


Details, please! I'm sure many would love to use MoonBlaster on Emulicious easily :)

For Disk B select a folder (Options->Emulation->MSX->Disk B). The emulated MSX will have 2 disks. Disk A will be the loaded disk (Moonblaster disk in this case) and Disk B will be mounted as the folder you selected for Disk B.
So when you put files into the selected folder, they will be visible in the emulated MSX on disk B.
And when yoh save files to disk B, they will appear in the folder.
  View user's profile Send private message Visit poster's website
Reply to topic



Back to the top of this page

Back to SMS Power!