Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for other instrument formats part 2 #71

Open
7 of 13 tasks
freq-mod opened this issue Mar 27, 2019 · 23 comments
Open
7 of 13 tasks

Support for other instrument formats part 2 #71

freq-mod opened this issue Mar 27, 2019 · 23 comments
Assignees

Comments

@freq-mod
Copy link
Contributor

freq-mod commented Mar 27, 2019

Since OPN instrument format support was brought back, it seems that there are more formats that could be supported here:

  • VGI (created for VGM Music maker, very close to TFI, specs: https://vgmrips.net/wiki/VGI_File_Format
  • S98 (info and specs: https://vgmrips.net/wiki/S98_File_Format, supports both 2608 and 2612)
    BambooTracker formats, specs are provided with a source code:
    • BTI
    • BTI 1.4.0+
    • BTM
    • BTB
  • YM2608 VGMs
  • YM2151 VGMs and S98s
  • MML text formats
  • PMD .FF file format
  • YM2203 VGMs
  • YM2608 Tone Editor .bank files
  • PMD .M(2) song data files

examples.zip

@jpcima
Copy link
Collaborator

jpcima commented Mar 27, 2019

S98 is already supported in the importer, having 2612 and 2608.
In principle it supports OPL chips too, let me know if you have some.

EDIT and OPM, for which we can implement OPN2BankEditor its own support

@freq-mod
Copy link
Contributor Author

freq-mod commented Mar 27, 2019

Ah, I forgot that there is a support for S98 already, sorry about that.

EDIT and OPM, for which we can implement OPN2BankEditor its own support

Isn't OPM supported already? Do you rather mean, in context of YM2151 chip support?

@jpcima
Copy link
Collaborator

jpcima commented Mar 27, 2019

Isn't OPM supported already? Do you rather mean, in context of YM2151 chip support?

YM2151 instruments have a potential to translate to the OPN because of similarity.
What I mean: it's an idea to import YM2151 from the VGM and S98.

Btw, @Wohlstand has just merged the VGM for YM2608.

@freq-mod
Copy link
Contributor Author

As for 2151, I can't find any .s98 log of any OPM music, only VGMs.
Right now, YM2151 VGMs are actually recognized by a bank editor (i.e. no error comes up) but editor doesn't see any instrument inside it

@jpcima
Copy link
Collaborator

jpcima commented Mar 28, 2019

For this, the VGM importer needs to handle the opcode 0x54, and transmit this to a simulated OPM chip.
It's similar to RawYm2612ToWopi in the principle, except not implemented at the moment.

This was referenced Mar 28, 2019
@freq-mod
Copy link
Contributor Author

BTI works fine (as of now it reads FM instruments only) but it would be neat to support BTM modules import as banks, if it would be possible.

@jpcima
Copy link
Collaborator

jpcima commented Apr 15, 2019

Yes definitely, I've wanted to do this too after BTI was added.
Also Rerrah has released the new specification 1.2.0 which makes it needed to update BTI for this.

@freq-mod
Copy link
Contributor Author

freq-mod commented May 2, 2019

I forgot about it, but YM2151 VGM/VGZs now work! The only things left are BTI v1.2 and BTMs, that will also solve "Add support for OPNA-specific bank / instrument file formats are also can be used here" task from #46 I think.

@farvardin
Copy link

MML support would be great to be able to use OPN2BankEditor as a sound editor for this format.

This tool (dmf2pmd.py) https://gist.github.com/Pigu-A/a51a4f3b83a238579e225e06098ba4e7 can already convert from a Deflemask module into MML, including instrument support.

@freq-mod
Copy link
Contributor Author

I have some problems with importing FM instruments from a certain batch of YM2151 VGMs - bank editor recognizes them as legit VGMs, but doesn't see any instruments in it, yet they're clearly there.
example - 07 Easy To Go [Stage 1 Manhattan City].zip

@jpcima
Copy link
Collaborator

jpcima commented Aug 31, 2019

@Papiezak Correct, it seems this VGM is incorrectly read. I'm going to check it.

@farvardin I totally forgot of MML also because of doing other things.
Are there collections of samples of these? (and the other text formats)

@jpcima
Copy link
Collaborator

jpcima commented Aug 31, 2019

@Papiezak Fixed VGM at commit a0126bc

@freq-mod
Copy link
Contributor Author

freq-mod commented Aug 31, 2019

Are there collections of samples of these? (and the other text formats)

mmltexts.zip
Here are examples of several mml formats:

  • PC-9801 PMD (OPN/OPNA)
  • PC-9801 FMP (OPN/OPNA)
  • Sega Mega Drive XPMCKC (OPN2)
  • Sharp X68000 MDX NOTE.X (OPM)
  • Sharp X1 NRTDRV (OPM)
  • FMDrive VST's own text format (OPN2)

P.S: thanks for the fix.

@jpcima
Copy link
Collaborator

jpcima commented Aug 31, 2019

It's neat, thanks for these.
I've got to check if my parser is able to handle the whole set of these.

@farvardin
Copy link

Nice samples papiezak!

Here is also a working example of one of my tune, with full source and compilation process, if you need to try with pmd98, just type make compile and make play (there is also a player, using wine):

http://garvalf.online.fr/var/upload/temp/pmd98_201907.zip

@freq-mod
Copy link
Contributor Author

freq-mod commented Aug 31, 2019

just type make compile and make play

@farvardin, yeah, but DOSbox is needed to compile the track... but it works nevertheless.

@jpcima
Copy link
Collaborator

jpcima commented Aug 31, 2019

It's very interesting. Thanks for sharing it.

Another thing about VGM I just remembered; it's the support of dual FM chips.
It's an element of VGM specification which @Wohlstand has implemented in OPNMIDI-based midi2vgm: there exist a secondary opcode which calls the second chip, and this VGM import doesn't handle it.

VGMrips has some arcade systems with dual chip configuration.

@jpcima
Copy link
Collaborator

jpcima commented Sep 1, 2019

Many text formats are implement in the PR #82.
I am apparently able to load PMD instruments from all of the samples.

The functionality is found under the "Convert" drop-down.
It adds the conversions in both directions, and it uses the system clipboard.

@freq-mod
Copy link
Contributor Author

freq-mod commented Sep 1, 2019

Thanks for all the great work @jpcima!
There is one small catch though - in some .mmls there are PMD instuments of following format:
@12 4 7 21 4 2 4 2 40 0 12 3 0 0 24 12 4 6 2 0 0 4 7 0 1 21 4 2 4 2 35 0 6 7 0 0 24 12 4 6 2 0 0 2 3 0 1
They aren't imported properly in bank editor, paramenters are wrongly interpreted.
OPNI of how this instrument should be - @12.zip

@jpcima
Copy link
Collaborator

jpcima commented Sep 1, 2019

@Papiezak it has 4 excess numbers in comparison to PMD samples I examined.
Is this another variant? maybe it's a OPM form of PMD ?

@freq-mod
Copy link
Contributor Author

freq-mod commented Sep 1, 2019

@jpcima, no, it's from an OPNA song

@freq-mod
Copy link
Contributor Author

freq-mod commented Jun 3, 2020

@jpcima, sorry to report, but .BTI instruments import don't work anymore.
Newest .bti spec is 1.4.0, trying to import it throws error about bad file format.

@Wohlstand
Copy link
Owner

Wohlstand commented Jan 10, 2021

At MML (the MML2VGM) the instrument name is supported:

'@ L4 0 "<Instrument Name Here>"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Maybe later
Development

No branches or pull requests

4 participants