AmigaMML and other tools

Discussion of development of software for any "obsolete" computer or video game system. See the WSdev wiki and ObscureDev wiki for more information on certain platforms.
Post Reply
raygrote
Posts: 18
Joined: Mon Oct 05, 2009 4:32 pm

AmigaMML and other tools

Post by raygrote »

Hey everyone,
I'm a bit of a chip music junky and I like collecting various software for old sound chips. I prefer MML (music macro language) for composing chip music. For those who don't know, MML is basically a system of notating music in a text file and then running that text file through a compiler to make the appropriate music file.

I've taken interest in AmigaMML as of late, having heard of it on this site. I'll probably be posting about that most on this thread, but I also encourage discussion of other tools for MML enthusiasts!
Last edited by raygrote on Fri Apr 20, 2018 8:58 pm, edited 1 time in total.
zzo38
Posts: 1096
Joined: Mon Feb 07, 2011 12:46 pm

Re: random MML tools discussion

Post by zzo38 »

I have used ppMCK, and I wrote AmigaMML (so if you have questions about it, you can ask me).

One other MML compiler I have heard of is SakuraMML, which outputs MIDI. However, it is in Japanese (and I am not very good at Japanese).

There is also CsoundMML, which produces a Csound numeric score.
(Free Hero Mesh - FOSS puzzle game engine)
raygrote
Posts: 18
Joined: Mon Oct 05, 2009 4:32 pm

Re: random MML tools discussion

Post by raygrote »

zzo38 wrote:One other MML compiler I have heard of is SakuraMML, which outputs MIDI. However, it is in Japanese (and I am not very good at Japanese).
I don't know any Japanese so if you know even a tiny bit, you're way ahead of me.

One of my friends who likes MML for midi work has used several of these types of tools. He started out with Zell which is in English, then moved to two Japanese ones called Mid2mml and PMML. I think all of those are almost complex enough to be a programming language. He has told me about macros he's made for all three of them, to easily achieve certain effects like arpegio, controller LFO, and other effects he likes to use in his work. I'm not so much a fan of MML for midi, though the MML route is certainly different and offers different possibilities.
zzo38 wrote:There is also CsoundMML, which produces a Csound numeric score.
I've heard of that, but haven't felt brave enough to tackle CSound. Maybe I'll get lucky and next time I look at it I'll magically make some strides. That's happened before with other things lol.
zzo38 wrote:I wrote AmigaMML (so if you have questions about it, you can ask me).
After some hunting on Google I did find the Windows version on your site. Doing a quick perusal of the readme, I understand a fair bit of it so that's encouraging. though I am a bit confused by some parts. Here are a few questions. Maybe it's better to talk about it on private message? Up to you.

First, I'll probably do more .xm writing than .mod because the former has more options. It looks like if I do this I'll have 20 channels (A-T). Is this correct?
Second, if I am using samples, must I use compatible .mod instruments exported from amigasam? So no extended .xm format stuff from open mpt, such as 16 bit samples or bidi loops or the like? I'm not complaining, just trying to figure out what I can do as a total newbie.
And last, are there any example mml files I could mess with to get a feel for how things are set up? Doesn't sound like this tool is well-known or used much, but I was hoping there was at least one existing thing written for it :)

Thanks.
zzo38
Posts: 1096
Joined: Mon Feb 07, 2011 12:46 pm

Re: random MML tools discussion

Post by zzo38 »

raygrote wrote:
zzo38 wrote:I wrote AmigaMML (so if you have questions about it, you can ask me).
After some hunting on Google I did find the Windows version on your site. Doing a quick perusal of the readme, I understand a fair bit of it so that's encouraging. though I am a bit confused by some parts. Here are a few questions. Maybe it's better to talk about it on private message? Up to you.

First, I'll probably do more .xm writing than .mod because the former has more options. It looks like if I do this I'll have 20 channels (A-T). Is this correct?
Second, if I am using samples, must I use compatible .mod instruments exported from amigasam? So no extended .xm format stuff from open mpt, such as 16 bit samples or bidi loops or the like? I'm not complaining, just trying to figure out what I can do as a total newbie.
And last, are there any example mml files I could mess with to get a feel for how things are set up? Doesn't sound like this tool is well-known or used much, but I was hoping there was at least one existing thing written for it :)

Thanks.
I think public will be better than private messages, so that anyone who reads it can benefit, rather than only you and me.

Here is the current version: http://zzo38computer.org/prog/amigamml.zip It is recommended to use this current version instead of the old one. However, you must compile it yourself (whether you are on Windows or Linux). The program is public domain and you are free to modify it, suggest improvements, etc.

That thing about "amigasam" is only true for .MOD output (and amigasam is now deprecated); if using .XM, then you can use any .XI files. There is a included program "xisynth" for synthesizing them, although you can also download .XI files from other sources or export them using FastTracker or OpenMPT.

About having 20 channels, that is correct.

(It is also possible there are some errors in the documentation; if so, you can mention them and I will fix them. It is also possible there are bugs in the program itself; if so, mention those too.)

(Note: There used to be a Redmine server for AmigaMML, although it is no longer available; that is beyond my control though, since I did not use my own server for that. The download link above is my own server.)
(Free Hero Mesh - FOSS puzzle game engine)
raygrote
Posts: 18
Joined: Mon Oct 05, 2009 4:32 pm

Re: random MML tools discussion

Post by raygrote »

I have no idea where to start when it comes to compiling .c programs.
Edit: got some help and it's compiled and working!
zzo38 wrote:if using .XM, then you can use any .XI files. There is a included program "xisynth" for synthesizing them, although you can also download .XI files from other sources or export them using FastTracker or OpenMPT.
That's cool. I wasn't quite sure how that worked. Glad it can take an .xm instrument definition.
zzo38 wrote:The program is public domain and you are free to modify it, suggest improvements, etc.
As you can tell I am completely clueless on a developer front so my contributions to the project development are going to be limited, but I will certainly do what I can in regards to reporting bugs/errors.
raygrote
Posts: 18
Joined: Mon Oct 05, 2009 4:32 pm

Re: random MML tools discussion

Post by raygrote »

I hate to diverge this thread into AmigaMML exclusively, but I did get it working. I'm confused especially by the @E command for effects though. It isn't clear to me where to put what commands. I tried the arp effect with the $047 example in the documentation. When I try to use it, I either get no change, or an error.

Also in .xm modules in Open MPT it is possible to change the speed with the Fxx effects. So I could easily go from sixteenth notes to triplets for example. Is this possible here?
Thanks.
zzo38
Posts: 1096
Joined: Mon Feb 07, 2011 12:46 pm

Re: random MML tools discussion

Post by zzo38 »

raygrote wrote:I hate to diverge this thread into AmigaMML exclusively, but I did get it working.
Possibly you may wish to rename this thread, or a moderator may wish to split the thread in case someone (including you) has comments about other MML too.
I'm confused especially by the @E command for effects though. It isn't clear to me where to put what commands. I tried the arp effect with the $047 example in the documentation. When I try to use it, I either get no change, or an error.
Can you show your MML file here? Then we might be able to see what is wrong. One thing to note is that the command to activate the command envelope must be in lowercase (as @e rather than @E).
Also in .xm modules in Open MPT it is possible to change the speed with the Fxx effects. So I could easily go from sixteenth notes to triplets for example. Is this possible here?
You can specify #DIVISIONS 16 if you want sixteenth notes to work. (You can also specify #DIVISIONS 32 for thirty-second notes, and so on. However, you may also need #SPEED, as well as either #TEMPO or #METRO; if you don't, the amount of time one row takes up is unchanged, since #DIVISIONS only changes the note value of one row.) If you want to dynamically adjust the speed, one way to do so is to use the R command on the Z channel. (Note: since you can enter notes on multiple channels at once, it is possible to combine the A channel with the Z channel if you wish.)
(Free Hero Mesh - FOSS puzzle game engine)
raygrote
Posts: 18
Joined: Mon Oct 05, 2009 4:32 pm

Re: AmigaMML and other tools

Post by raygrote »

I edited the thread, so hopefully that'll suffice.
Here's my MML. It's nothing but a test just to make sure stuff works. In its current state it seems to work fine, but I don't know how to use the effects/other envelopes.

Code: Select all

#EXTENDED 1
#TITLE test
#DIVISIONS 16
#SPEED 6
#SIGNATURE 4,4
#TEMPO 120
@0 "test.xi"

A @0 o4 l8 c e g e c4
Let me know if I'm doing anything that looks weird; I'm pretty new to tracking in general so even though it's easier for me to work through it in text, I'm not used to some of the concepts.
And yeah I was thinking of changing speed in the middle of a song, so that in one part I could do strait notes and another I could do triplets for example. But I'll wait until I get more basics before I tackle that.
zzo38
Posts: 1096
Joined: Mon Feb 07, 2011 12:46 pm

Re: AmigaMML and other tools

Post by zzo38 »

raygrote wrote:Let me know if I'm doing anything that looks weird; I'm pretty new to tracking in general so even though it's easier for me to work through it in text, I'm not used to some of the concepts.
The 1 after #EXTENDED is unnecessary (although adding it is harmless), but the following code works to do the arpeggio like you wanted:

Code: Select all

#EXTENDED
#TITLE test
#DIVISIONS 16
#SPEED 6
#SIGNATURE 4,4
#TEMPO 120
@0 "test.xi"
@e0 | $047

A @0 @e0 o4 l8 c e g e c4
The | before $047 causes the arpeggio to be repeated on every row instead of only the first row of the note. (If you want, try it without and notice the difference.)
(Free Hero Mesh - FOSS puzzle game engine)
raygrote
Posts: 18
Joined: Mon Oct 05, 2009 4:32 pm

Re: AmigaMML and other tools

Post by raygrote »

Oh okay, that makes sense now. I wasn't quite sure how that worked, I thought you put the effect codes before or after the notes you wanted the effect to start on or something. But they're treated like patterns/envelopes. Interesting. I can see how that would be useful. Is there a limit on how many of those you can have in your MML? To my understanding in trackers you just put effects down on the rows that need them, they're not really envelopes in that sense.
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: AmigaMML and other tools

Post by tepples »

I think they behave like FamiTracker, which has separate "on" and "off" codes for each effect in contrast to the major module formats.

Is the Discord chat application or Discordapp.com website accessible to you? If so, you and I could go on the FamiTracker users' Discord server to request functionality in FamiTracker to improve its UI accessibility.
raygrote
Posts: 18
Joined: Mon Oct 05, 2009 4:32 pm

Re: AmigaMML and other tools

Post by raygrote »

Last time I tried it, it was workable for messaging, but I frequently missed messages or edited my old ones without meaning to etc. It was doable, but it was a bit of a struggle. I didn't try connecting to servers or anything like that because I'm not enough of a gamer to really make good use of that, but messaging wasn't impossible. I'd be willing to try again, I just have to recover my tag lol. Who knows, maybe things are different; I haven't touched it for about a year.

In any case, I do have some ideas for Famitracker we could discuss which are implemented in open MPT, and perhaps you have ideas too. I look forward to it!
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: AmigaMML and other tools

Post by tepples »

raygrote
Posts: 18
Joined: Mon Oct 05, 2009 4:32 pm

Re: AmigaMML and other tools

Post by raygrote »

I joined and logged in, though I'm not quite so sure where to go with not knowing much at all about Discord. Any pointers?
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: AmigaMML and other tools

Post by tepples »

The rules are in the "#welcome" channel.
General chiptune production discussion is in "#discuss".
Post individual works for feedback in "#workshop".
The older in "#resources".
Off-topic discussion is largely in "#lounge".
Post Reply