Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

1. For copying the patterns as new patterns, what would be nice is a way to do it without the piano roll. How about Shift-Left click on a pattern then drag and drop? Just like when you use ctrl to copy a pattern but when you use shift instead it makes it into a new one. 

2. For saving and loading instruments, I like your solution. In a way it is more convenient than the .fti scheme.  

3. Muting the channel with no pattern - I am not sure I understand the problem you explain.  I do not see how the audible note trailing outside of patterns serves any useful purpose.  I guess a simple way to implement this is simply to force a note stop event on a channel when the playback arrow reaches a boundary between Pattern and No pattern. This would also work with the NSF export and the way the NES ''thinks''. 

3. I like everything else that you propose. 

4. Regarding the midi support, I realized when I proposed it that it would be complicated. That is why I said not a priority.    I read on the famitracker forum that they had this functionality in the early days but they ditched it because it was too buggy. That is a bad sign I guess but possibly it would be worth downloading one of these old versions and see how it worked ?  It would be limited to be sure, that is unavoidable. 

Here are some ideas that just popped into my head. 

  • *Midi Channel 10 goes into Noise
  •  *Midi channel 1, 2 ,3 go into Square 1, Square 2 and Triangle respectively. All other channels are ignored unless maybe when you have some audio expansion loaded it uses the same mechanic with the next midi channels.
  • *Regarding polyphony, only the Highest note of each channel is imported.  Rest is ignored. Another more fancy idea would be to arpeggiate automatically when there is more than one note at a time on a channel. Maybe not on the noise channel though as this would just make a mess I guess. 
  • *DPCM is ignored.  Or maybe imported from Channel 4. Then you manually setup  your samples for it to make sense.
  • *Importing midi could ignores all instrument information from the midi file. However envelopes and slides are kept as much as possible.  I suppose Velocity and midi channel volume could be ignored, or fancily integrated into the channel volume enveloppes in famistudio. 
  • *When exporting to midi we would want to keep the channel enveloppes. I suppose instrument volume and pitch enveloppe could be converted into midi enveloppes too.  I noticed that when converting into NSF, those are all flattened into channel enveloppes. So they are the same thing in the end.  
  • *Not sure about tempo. I am not a programmer or a midi guru myself. I know midi files have a kind of basic time unit, the midi tick. Kind of like the frames in famistudio.  I googled midi tick and I found someone asking a question about how to compute note duration from midi information from a midi file. Once you have the note duration it could possibly be quantitized into its closest equivalence in term of  how many frames it lasts in Famistudio. 
  • They have some formulas in the link  https://stackoverflow.com/questions/2038313/converting-midi-ticks-to-actual-play...
  • *It would be the responsibility of the user to format their midi file properly before using it. I don't think users will expect to load a random midi file and have it work and magically sound like a NES. It would  be a tool to rapidly import melodies from elsewhere. 
  • *It seems someone made a small program to export Famitracker files to midi. I have not tried it but I'm curious how well it works.  http://forums.famitracker.com/viewtopic.php?t=610