dannye / crystal-tracker

A song and sound editor for pokecrystal-based sound engines.
GNU Lesser General Public License v3.0
45 stars 3 forks source link

Features #1

Open dannye opened 2 years ago

dannye commented 2 years ago

nehochupechatat commented 8 months ago

What do you think of implementing a General MIDI export? With instrumentation similar to Joao Buaes' MIDIs

dannye commented 8 months ago

What do you think of implementing a General MIDI export?

It isn't really useful and doesn't really serve the purpose of this editor. The primary goal of this editor is to directly edit/export *.asm song files for immediate use in a pokecrystal-based project. So that you can press "Save" in Crystal Tracker and immediately run make on your project and instantly have a new ROM file with your new song modifications included.

MIDI editors exist for creating MIDI files.

nehochupechatat commented 8 months ago

Ah, I understand. What about implementing a "traditional tracker" view? I.e OpenMPT, Furnace, etc Some musicians prefer to work that way + your tracker is already based off OpenMPT

dannye commented 8 months ago

There are several problems with trying to imagine this working with a traditional tracker view. The Pokemon song data format is not well suited for it.

Most fundamentally is that in Pokemon, the song channels are completely independent from each other. One channel can loop a small pattern many times while another channel plays a long sequence of all unique notes. It's also possible for a channel's entire body to be much shorter than another channel's body (ie, the short channel may fully repeat many times in the time that it takes the longer channel to play once). In fact, the channels are so independent that there is no requirement that all the channels loop back to the start at the same point in time -- or that they even loop back to the same point at the beginning.

So the concept of a "row" can't really apply here in the way that it would need to for a traditional tracker view to be effective.