Just wondering if anyone here is using MML (Music Maco Language) for creating their NES(nsf) music instead of using a tracker like famitracker or perhaps a modern daw?

As a programmer myself, the idea of being able to create music through codes while staying in the comfort of my favorite editor is something that's very enticing.

Aside from the obvious differences in workflow and the representation of music notes (which one can perhaps get used to overtime) what are some of the things that you liked or didn't like about MML compared to trackers? What would you say are the advantages(strength) and disadvantages(weakness) of MML? Which area does it excel in? or did it ends up being overly tedious and un-intuitive for you?----------------------------------------------------------------------------------------------

I searched a bit online, but there doesn't seem to be an over abundance of material on MML comapred to its counter part: famitracker, which, of course has a strong following in the community and a few fantastic and detailed youtube tutorials. However, for MML, these two seems to be the only available sources right?

Does anyone know of any other materials by any chance?------------------------------------------------------------------------------------------------------Now, when it comes to setting up MML, the primary steps seems to be:

1. Obtaining VirtuaNSF、 NSFplay2. Get ppmck. 09a being the latest pack I believe? -unzip and extra the files and use them to set up the enviornment

That's pretty much it right? (are there any utilities that are essentials when it comes to mml, ppmck? hoot? syntax color scheme, analyzer? )----------------------------------------------------------------------------------------------

*Lastly, all of these packages and software seems to be made for Windows, does anyone know if it's possible to set it all up in Linux? ^_^ If so, could someone perhaps show me how? Thanks in advance!*

By the way, I know a lot of the nes game's music were composed with MML in the past, but when it comes to modern chiptunes, what are some of the composers or musicians I can check out who use MML as their weapon of choice when it comes to music creation?

Last edited by therue on Sun Sep 04, 2016 3:29 am, edited 1 time in total.

It has lots of examples to learn from, and a built-in web interface for building and listening to the resulting MML. (Also a good place to find people to talk to about it.)

As for what the advantages/disadvantages are...

It has a lot of extra flexibility if you want to do some very specific/specialized stuff, but for most music this isn't really much of an advantage.

Since it's all text you could potentially have a mouse-free working environment, if that's important to you.

The lack of immediate feedback is a huge disadvantage compared to Famitracker. Being able to hear a sound right away, and hear it in context of the rest of the music as you're working is so important. It speeds up composing tremendously (i.e. you make better music in less time). This is the single reason I don't really use MML unless I have to.

I could never really get into trackers so I'm more for MML. I'm no musician but I can read sheet music, and MML is basically like writing sheet music but with symbols easily typed on a PC keyboard rather than stripes and tadpoles.

One problem with MML is that there is no Famitone for it. PPMCK is feature-rich but it seems to be mainly for making NSFs rather than homebrew development, and also you are restricted to NESASM. NSDL seems good but with that you are restricted to CC65/CA65.

In the end I decided it was a good idea to learn how to make my own sound engine, and it was very worthwhile. It shouldn't be too hard to make an MML interpreter for it.

One problem with MML is that there is no Famitone for it. PPMCK is feature-rich but it seems to be mainly for making NSFs rather than homebrew development, and also you are restricted to NESASM. NSDL seems good but with that you are restricted to CC65/CA65.

Pently also requires ca65 at the moment. Do you prefer ASM6? Others have asked me to add ASM6 support, but I haven't been able to work much on Pently due to other obligations. Or do you prefer a different assembler?

It is true ppMCK is meant for making .NSF and is not meant to make a game. But I think ppMCK can be compile on Linux it is a C code and is probably portable, although I have not tried it yet (try going into that directory and typing make and see if it compiles without errors). I have made some improvement of ppMCK, but have not tried it since I have this new computer (with Linux). I do not use syntax colours.

It is possible that many people will not want to use ca65 and will prefer ASM6; or in my case, I prefer NESASM.

I have also once made a music engine for a Famicom game and used Csound and CsoundMML, but that don't work so well. There is AmigaMML to make music output to .MOD/.XM formats, but that isn't actually suitable for NES/Famicom anyways. (But, possibly a program can be based on modified version of such things, to do something else.)

i found this http://deadbeef.sourceforge.net/portable.htmldeadbeef is a popular linux music player and upon testing, it does seems to play nsf file so that's good, but when it comes music players for nsf, do accuracy matter? is that why custom players such as nsfplay was created? because it's able to more accurately play the nsf files than the commercial players and able to detect and accurately play all the pitches?

played a sing in both deadbeef in linux and NSFplay in windows.. NSFplay seems so much clearer.is it possible to run NSFplay in linux via Wine?

Last edited by therue on Sun Sep 04, 2016 4:30 am, edited 1 time in total.

MML is for music MACRO language, not micro, because it uses macro in order to register instrument sounds.

I like MML better than trackers. It's more flexible and all, and is basically platform independant. You'd in theory just need to change macros and you'll be ready to play the same song on another platform. Also, if you want say a channel to echo another channel (play the same melody with a delay), with MML it's trivial, but with a tracker... welcome to hell.

MML is also the sole format that allow you to compose with a different tempo for different tracks, or to have not all tracks looping at the same time. It also allow you to control more directly the memory of what's in the music replayer, much like programming in assembly.

By using named instruments in Pently, I've left the multi-platform option open. The prospect of a port to Super NES is why I pushed for a 65C02-style SPC700 instruction macro pack in ca65, so that I could share song and pattern interpretation code between NES and Super NES versions. But you'd still have to change channel names in arrangements of a piece for different sound chips.

A 2-channel echo in Pently looks like this:

Code:

at 9:1play melody_a with flute on pulse2at 9:1:3play melody_a with quiet_flute on pulse1

This waits for measure 9 beat 1, starts a pattern on pulse channel 2, waits until 3 rows after the start of the beat, and starts the same pattern on pulse channel 1 with a different instrument.

A 1-channel echo looks like this:

Code:

at 9:1attack on pulse2play fanfare_b with staccato_horn on attackat 9:1:3play fanfare_b with echo_horn on pulse2

Independent looping per channel in Pently was inspired by the short drum track loops in the ground, Starman, and water themes of Super Mario Bros. And it saves a lot of space, which was important for the NROM-128 games for which I originally developed Pently. A loop can also be interrupted, which makes drum fills practical.

Bregalad wrote:

MML is also the sole format that allow you to compose with a different tempo for different tracks

One problem with MML is that there is no Famitone for it. PPMCK is feature-rich but it seems to be mainly for making NSFs rather than homebrew development, and also you are restricted to NESASM. NSDL seems good but with that you are restricted to CC65/CA65.

Pently also requires ca65 at the moment. Do you prefer ASM6? Others have asked me to add ASM6 support, but I haven't been able to work much on Pently due to other obligations. Or do you prefer a different assembler?

I'm an ASM6 guy. I have tried ca65 and don't really mind it at all, but since all my projects are in ASM6 I don't like to have to switch to different assemblers all the time. Also I like the simplicity of ASM6, and it's the one I'm most comfortable with.

The lack of immediate feedback is a huge disadvantage... Being able to hear a sound right away, and hear it in context of the rest of the music as you're working is so important. It speeds up composing tremendously (i.e. you make better music in less time). This is the single reason I don't really use MML unless I have to.

I'm going to second this, because you don't realize just HOW important it is until you don't have it.

This feature is when you do not want to tracks to be kept in sync obviously. This happens rarely, but if you want to do it, you can. With a tracker you can't.

The most obvious use is to include sound effects such as birds tweet in a music, and you don't want your birds tweet exactly at the same place in music every loop for instance. Not useful on NES, but definitely useful on platform with more sound channels.

The lack of immediate feedback is a huge disadvantage compared to Famitracker. Being able to hear a sound right away, and hear it in context of the rest of the music as you're working is so important. It speeds up composing tremendously (i.e. you make better music in less time). This is the single reason I don't really use MML unless I have to.

I always wondered how well something like this could be worked into a text editor specifically customized for use with (a specific variant of) MML.

Who is online

Users browsing this forum: No registered users and 3 guests

You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot post attachments in this forum