Mod Archive Forums Mod Archive Forums
Advanced search  

News:

Please note: Your main modarchive.org account will not work here, you must create a forum account to post on the forums.

Pages: [1]   Go Down

Author Topic: Macros for fast tracking - draft  (Read 5806 times)

0 Members and 1 Guest are viewing this topic.

joule

  • New User
  • Offline Offline
  • Posts: 19
    • View Profile
Macros for fast tracking - draft
« on: December 21, 2009, 13:25:32 »

Anyone having tracked for a while knows that there is a lot of tedious and repetetive work going on when handling delay channels, doubling and remapping instruments.

A macro system would cut a lot of time when tracking, and it would quickly make milkytracker the cutting edge xm tracker :)

The user would have the ability of assigning macros to controlkey+F1-F12, and the macros would be pasted into the channels just the same way as you paste a copied track to another track with shift-F4/F5.

How would the macro syntax look?

The macros for F1 to F12 would be set up in preferences. A macro could look like this:

= offset(4,remapinstrument(6,7,prevtrack()))

This macro would create a delay of the channel next left, offsetting the channel 4 lines, remapping instrument 6 to 7.

So far, I can think of the following functions being usable:

offset() - offsetting the track (delay)
remapinstrument(x,y,data) - remapping instrument x to y in the data
volumescale(x1, [x2], [override], data) - scaling the volume by pasting volume effect commands on every instrument. x2 being optional, making a linear scale from start of track to end. override being optional making the volume effect have priority if another effect is already in the effect column or volcolumn.
effecttrigger(effect, data) - example: effecttricker(E21, track(2)). Every note in the data input would get the effect E21 (finetune down) on its row.
metaeffect(patternnumber, startrow, endrow, data) - similar to effecttrigger, but pastes a block that is fetched from the effect column in patternnumbers startrow to endrow after every new note.

Various other special macro functions could be implemented, like making an offset on a tick level.

basic data returners:

track(tracknumber) - track(5) returns track 5.
prevtrack() - or rather this could be replaced by track(-1)
nexttrack() - or rather this could be replaced by track(+1)
requester(text) - pops up a requester returning the data being entered

Would anyone else like something like this or have any more suggestions? I hope it doesn't sound like a too complicated system to understand, i tried to be a bit thorough.
« Last Edit: December 21, 2009, 13:42:47 by joule »
Logged
Pages: [1]   Go Up