LoginLogin

Why does SmileBASIC use MML instead of MIDIs?

Root / General / [.]

HTV04Created:
God, I've been talking about MIDIs a lot recently. I was just wondering, why does SmileBASIC use MML instead of MIDIs? Sure, MML is easier to edit, but MIDIs have WAY more features. Is it just because of the easy-to-edit part? Why doesn't SmileBASIC have MIDI support as an alternative? It would be a really nice addition. And what format does the default BGM use in SB4? I believe it was 3DS sequence format for SB3, but I wouldn't think that's being used now.

Because it's part of the traditional BASIC experience, especially in Japan. The Wikipedia page for MML goes into some detail here and there about its history, but I think this part sums it up nicely:
Modern MML originally appeared in Microsoft BASIC and was common in the early 1970s and 1980s on 8-bit and 16-bit era Japanese personal computers. The NEC PC-6001 included Microsoft BASIC and the Programmable Sound Generator in 1981. The MML was especially popular on NEC's personal computers, such as the NEC PC-8801. With the 2001 release of the mck (Music Creation Kit) software for compiling MML to play music on the Nintendo Entertainment System, awareness and use of MML increased. MML is presently popular among Japanese electronic musicians and musicians who create chiptunes as a way to write music for the Nintendo Entertainment System.
As for why SmileBASIC doesn't support MIDIs despite them having more features, well... MML being easy to edit is probably one aspect of it, but when we're talking about platforms like this, it's not always about what's most useful or has the most features. Part of the reason SmileBASIC exists is because of nostalgia from growing up with BASIC in the 1980s, and wanting to share that experience with others in the modern age. Because of that, one of the design goals has always been to feel like BASIC. There's a certain charm there that has to be preserved, even if it means leaving features on the table. That's why I don't see them, say, adding an elaborate type system, or ditching DATA statements, or adding support for music files like MIDI or MP3. Yeah, it'd be more powerful, but something would be lost in the process. SmileBASIC isn't just about letting you program on the Switch, but also providing a different kind of environment than modern computers offer.

Because it's part of the traditional BASIC experience, especially in Japan. The Wikipedia page for MML goes into some detail here and there about its history, but I think this part sums it up nicely:
Modern MML originally appeared in Microsoft BASIC and was common in the early 1970s and 1980s on 8-bit and 16-bit era Japanese personal computers. The NEC PC-6001 included Microsoft BASIC and the Programmable Sound Generator in 1981. The MML was especially popular on NEC's personal computers, such as the NEC PC-8801. With the 2001 release of the mck (Music Creation Kit) software for compiling MML to play music on the Nintendo Entertainment System, awareness and use of MML increased. MML is presently popular among Japanese electronic musicians and musicians who create chiptunes as a way to write music for the Nintendo Entertainment System.
As for why SmileBASIC doesn't support MIDIs despite them having more features, well... MML being easy to edit is probably one aspect of it, but when we're talking about platforms like this, it's not always about what's most useful or has the most features. Part of the reason SmileBASIC exists is because of nostalgia from growing up with BASIC in the 1980s, and wanting to share that experience with others in the modern age. Because of that, one of the design goals has always been to feel like BASIC. There's a certain charm there that has to be preserved, even if it means leaving features on the table. That's why I don't see them, say, adding an elaborate type system, or ditching DATA statements, or adding support for music files like MIDI or MP3. Yeah, it'd be more powerful, but something would be lost in the process. SmileBASIC isn't just about letting you program on the Switch, but also providing a different kind of environment than modern computers offer.
I definitely don't think MP3 support should be added. Not only would it take away from the BASIC experience, but it could also lead to piracy (because unless the servers detect what MP3s go through them, how will they know of an MP3 contains copyrighted music)? I just feel that MIDI support should be added. Yeah, I know MML has been a thing with BASIC for a while, but so many "modern" features have been added to SmileBASIC, so I would think that MIDI could fit in. And it's completely possible, SmileBASIC already has all the general MIDI instruments, all it needs is the STANDARD instruments (some of which are available as BEEP sounds, but sound weird on different octaves) and I believe a few others and it could completely work with MIDI. I think it would encourage more people to make music in SmileBASIC. MML isn't that complicated, but it is tedious to make music with without an MML tracker. Sure, MIDIs need a tracker too, but they allow for music to sound more vibrant, since they allow for instruments to make more than one sound on a channel. I very well think they could co-exist.

The MP3 format has been obsolete for at least a decade. It's not a particularly good compression system and iirc there are a lot of legal problems with using it. As for using sampled audio for music, well, It uses a lot of memory and doesn't give you much control. Plus, how are you going to transfer the data to SB? and we have PCMSTREAM, anyway. MIDI to MML converters exist.

The MP3 format has been obsolete for at least a decade. It's not a particularly good compression system and iirc there are a lot of legal problems with using it. As for using sampled audio for music, well, It uses a lot of memory and doesn't give you much control. Plus, how are you going to transfer the data to SB? and we have PCMSTREAM, anyway. MIDI to MML converters exist.
I know, but as I mentioned before, SmileBASIC is missing some of the instruments for full MIDI support.

The MP3 format has been obsolete for at least a decade. It's not a particularly good compression system and iirc there are a lot of legal problems with using it. As for using sampled audio for music, well, It uses a lot of memory and doesn't give you much control. Plus, how are you going to transfer the data to SB? and we have PCMSTREAM, anyway. MIDI to MML converters exist.
I know, but as I mentioned before, SmileBASIC is missing some of the instruments for full MIDI support.
You can find more MML instruments here: Secret MML Instruments Hope it helps

The MP3 format has been obsolete for at least a decade. It's not a particularly good compression system and iirc there are a lot of legal problems with using it. As for using sampled audio for music, well, It uses a lot of memory and doesn't give you much control. Plus, how are you going to transfer the data to SB? and we have PCMSTREAM, anyway. MIDI to MML converters exist.
I know, but as I mentioned before, SmileBASIC is missing some of the instruments for full MIDI support.
SB should support all of the standard General MIDI instruments. Obviously it doesn't support the complete MIDI standard for control messages etc. but it shouldn't need to; most basic MIDI files should convert and require minimal editing. TODO someone who knows more about general MIDI than I do should probably verify their claim. Doesn't seem fully compliant but bank 0 instruments all seem to be there (https://en.m.wikipedia.org/wiki/General_MIDI_Level_2)

The MP3 format has been obsolete for at least a decade. It's not a particularly good compression system and iirc there are a lot of legal problems with using it. As for using sampled audio for music, well, It uses a lot of memory and doesn't give you much control. Plus, how are you going to transfer the data to SB? and we have PCMSTREAM, anyway. MIDI to MML converters exist.
I know, but as I mentioned before, SmileBASIC is missing some of the instruments for full MIDI support.
SB should support all of the standard General MIDI instruments. Obviously it doesn't support the complete MIDI standard for control messages etc. but it shouldn't need to; most basic MIDI files should convert and require minimal editing.
It does, but percussion instruments like drums aren't present except through their secret BEEP sounds, which don't pitch correctly.

The MP3 format has been obsolete for at least a decade. It's not a particularly good compression system and iirc there are a lot of legal problems with using it. As for using sampled audio for music, well, It uses a lot of memory and doesn't give you much control. Plus, how are you going to transfer the data to SB? and we have PCMSTREAM, anyway. MIDI to MML converters exist.
I know, but as I mentioned before, SmileBASIC is missing some of the instruments for full MIDI support.
SB should support all of the standard General MIDI instruments. Obviously it doesn't support the complete MIDI standard for control messages etc. but it shouldn't need to; most basic MIDI files should convert and require minimal editing.
It does, but percussion instruments like drums aren't present except through their secret BEEP sounds, which don't pitch correctly.
Actually, @128 and @129 are drum sets. They aren't in the beep sounds. If you want to know what pitches play what, look at the help page for MML that explains how @ works.

The MP3 format has been obsolete for at least a decade. It's not a particularly good compression system and iirc there are a lot of legal problems with using it. As for using sampled audio for music, well, It uses a lot of memory and doesn't give you much control. Plus, how are you going to transfer the data to SB? and we have PCMSTREAM, anyway. MIDI to MML converters exist.
I know, but as I mentioned before, SmileBASIC is missing some of the instruments for full MIDI support.
SB should support all of the standard General MIDI instruments. Obviously it doesn't support the complete MIDI standard for control messages etc. but it shouldn't need to; most basic MIDI files should convert and require minimal editing.
It does, but percussion instruments like drums aren't present except through their secret BEEP sounds, which don't pitch correctly.
Actually, @128 and @129 are drum sets. They aren't in the beep sounds. If you want to know what pitches play what, look at the help page for MML that explains how @ works.
Thank you so much! I forgot this existed. Don't know why to MIDI converter I used didn't support that instrument, though. I check the help section for MML and it seems like everything's there.