Offline
Los Angeles, CA
spriteful wrote:

Dumb question- do you think your planned software will be able to play each note as it is entered?

Hopefully.  I'm sure I can figure out how other trackers are doing it with a given library by just looking through source.

Phase 0 of development really is going to get a usable GUI that will spit out MML. The GUI programming and the up-front design work is probably going to be the most time-intensive.

Offline
Los Angeles, CA

Here's a link to the Google Code repository I'll be holding the code in. You can keep up-to-date on changes by looking at commits for now. If anyone wants to contribute, feel free to fork a repo and send me pull requests when you've got something to submit.

http://code.google.com/p/mml-tracker/

Offline

ok... so this is legit... nice.

Offline
Chicago IL

this sounds awesome!

i got some questions though:

is the tracker going to change structure depending on what you're working in? (like module properties in FT, more / less channels, instruments specifically for each chip, etc)
how is the tracker going to handle writing 4op instruments for the genesis / mega drive?
i got more but its way too early haha

good luck! i  hope to use this someday

Offline
Los Angeles, CA

Basic idea is as follows: there are two "rows" to the tracker's UI. The first UI is the sequence list and the instrument list. Each sequence is defined as a pattern per channel. Instrument list is just a number followed by a user-defined name (and possibly the name of the chip you're using); double-clicking on the instrument in the instrument list brings up an instrument editor. Second "row" is the tracker grid. The number of channels and the instrument editor change based on the chip being tracked.

Presumably the 4op configuration will be handled in the YM2612's instrument editor.

I'm slowly but surely figuring out Qt. This is my first serious foray into GUIs; I've worked with MVC frameworks in a web setting, but I mostly spend my time on the command line and I'm starting to figure out why :-D

Offline
Russia, Moscow

I have similar idea for long time, even explained it somewhere on IRC recently. However, in my concept there is no MML, but VSTi-like modules instead. I.e., single UI program interface (allows to have different GUIs), and all the tracker logic related to sound generation, pattern data interpretation, instrument editing, is in external module(s). It is a lot of work even in simplest form (I've considered text mode based UI for start), so it is still plans for far future.

Offline
Los Angeles, CA

Hmm ... that approach also makes a lot of sense. In order for MML generation to work, I think a similar approach might be necessary (encapsulate the platform-specific MML outputting logic along with sound generation, instrument editing, etc.) For something like this where I'm doing it in my spare time, I'm not necessarily going to go for full modularity, but having each platform's logic conform to some well-defined interface is definitely a must.

Offline
Los Angeles, CA

DOOOO ITTTT ALEX. BE THE GOLDEN GOD THAT YOU ARE. I'll organize a software release party for you at the Edison and buy you AAALLL the whiskeys! We'll get a reservation this time too...

Offline

no updates since Jan 28? ;_;

Please dude, tell me this is still going, I want it! I need it! LET ME HAVE IT!

Offline
Los Angeles, CA

Trust me, It's still going on. Work is kind of crazy right now and I'm still trying to figure out the API to the audio libraries. As soon as anything substantial is done, I'll let you all know.

Offline
West Yorks, UK

hey alexras, sick idea youve got going on, really glad youve begun working on it.
as somebody mentioed, wonderswan chipmusic would be off the hook. I know nothing about MML or if the neo geo pocket could be included as part of this, but if so Il happily donate cash, beer, toys, artwork, whatever rocks yo boat.

I love you dev guys so much!

Offline
Los Angeles, CA

Thanks for your interest!

Making mml-tracker output something that xmpck will recognize should be pretty straightforward. The real challenge here is getting the "it plays a sound when you enter a note" functionality working across platforms. I may just punt on that until I have a complete working copy that dumps MML and then add platform-specific playback features as I figure out how to get it to work for each platform. I'm playing with getting this to work with Blargg's audio libraries so that I'll have a good base set of platforms, but I'm not sure how well playing a VGM file, for example, works for realtime note playback. I suppose it depends on how fast I can construct VGM files in memory(?)

Does anyone know how other trackers (TFM, FamiTracker, etc.) handle this? Presumably they just communicate with a chip emulator and send "note on" and "note off" events to it?

Offline
Russia, Moscow

Chip emulator runs in a thread, every N samples (44100/update rate) it calls a function which updates chip registers. You can't just communicate with an emulated chip like you can with a real one, because emulation is not real-time.

Offline
Retired

Oh Yeah! That would be awesome! I really hope you'll do it!!!

Offline
Venezuela

anyone said UI????.... here im, what happend?

Offline
Los Angeles, CA
Shiru wrote:

Chip emulator runs in a thread, every N samples (44100/update rate) it calls a function which updates chip registers. You can't just communicate with an emulated chip like you can with a real one, because emulation is not real-time.

Ah, that makes perfect sense.  Thanks, Shiru! Out of curiosity, what library, if any, did you use for TFM's YM2612 output?