|
ForumsSega Master System / Mark III / Game GearSG-1000 / SC-3000 / SF-7000 / OMV |
Home - Forums - Games - Scans - Maps - Cheats - Credits Music - Videos - Development - Hacks - Translations - Homebrew |
Author | Message |
---|---|
|
New FM tracker
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. |
|
|
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... |
|
|
Posted: Tue Nov 16, 2021 6:15 pm |
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. |
|
|
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. |
|
|
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. |
|
|
Posted: Wed Nov 17, 2021 10:20 am |
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. |
|
|
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. |
|
|
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. | |
|
Posted: Wed Nov 17, 2021 10:40 am |
definitely a good brainstorming! |
|
|
Posted: Wed Nov 17, 2021 10:41 am |
one could port that to modern computers and keep the same format? |
|
|
Posted: Wed Nov 17, 2021 10:42 am |
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). |
|
|
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... |
|
|
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. | |
|
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. | |
|
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. | |
|
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.
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. |
|
|
Posted: Wed Nov 17, 2021 3:46 pm |
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...) |
|
|
Posted: Thu Nov 18, 2021 8:00 am |
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. |
|
|
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}]} |
|
|
Posted: Thu Nov 18, 2021 12:03 pm |
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 |
|
|
Posted: Thu Nov 18, 2021 12:35 pm |
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) |
|
|
Posted: Thu Nov 18, 2021 12:36 pm |
Details, please! I'm sure many would love to use MoonBlaster on Emulicious easily :) |
|
|
Posted: Thu Nov 18, 2021 1:06 pm |
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. |
|