Unmerge patterns (by cloning and separating all duplicate pattern numbers)

Post about feature requests here.
User avatar
Dermot
Posts: 67
Joined: Sat Jan 30, 2016 7:47 am
Contact:

Unmerge patterns (by cloning and separating all duplicate pattern numbers)

Postby Dermot » Sat Feb 06, 2016 11:34 am

Similar but opposite to "merge patterns," this operation would make a new number of patterns in each channel equal to the number of frames, copy the old pattern data to the new pattern data in frame order, discard the old patterns, and reset all pattern numbers to be equal to their frame positions.

Let's say the frame editor looks like this:

00 | 00 00 00 00 00 00 00 00
01 | 01 01 01 01 00 01 00 01
02 | 02 02 00 02 00 02 00 02
03 | 03 03 03 03 00 03 00 03
04 | 04 04 04 04 01 04 04 00
etc.

Basically, frames whose channels have been assigned to arbitrary pattern numbers. Common stuff.

The operation I imagine would change it to look like this:

00 | 00 00 00 00 00 00 00 00
01 | 01 01 01 01 01 01 01 01
02 | 02 02 02 02 02 02 02 02
03 | 03 03 03 03 03 03 03 03
04 | 04 04 04 04 04 04 04 04

Basically, it ensures that every pattern in each frame is unique. But at the same time, pattern data is copied around, so that all duplicate pattern numbers are cloned into separate patterns each with their own number, thus having no effect on actual playback in FamiTracker. Any patterns that have been merged are unmerged, and any unused patterns are implicitly destroyed.

This usefulness of this is for editing a module whose patterns have already been merged or was edited pattern-at-a-time and manually assigned. Then you can make changes to individual patterns at specific frames, and then remerge patterns if you want to.

----

Another idea I have is to have an optional operation that rearranges pattern numbers in logical order.

For example, a channels's pattern numbers can look like this:

00 | 00
01 | 00
02 | 02
03 | 02
04 | 04
05 | 04
06 | 02
07 | 02

This is a common occurrence when blank patterns have been edited and copy/pasted individually and then the "Merge duplicate patterns" operation has been invoked. Since patterns at frames 00 and 01 were identical, they are both reassigned to 00. Since patterns at frames 02, 03, 06 and 07 were identical, they are all reassigned to 02. And so forth.

But the operation I envision would change that to look like this:

00 | 00
01 | 00
02 | 01
03 | 01
04 | 02
05 | 02
06 | 01
07 | 01

Used patterns are reassigned to sequential numbers based on which patterns appear first the frame editor. Unused patterns are either implicitly destroyed, or may be overwritten, or non-blank unused patterns can be reassigned numbers after that of the last of the used frames in that channel.

In addition to helping keep the frame editor tidy and logical, operations like these could also greatly comfort a user's OCD, beause the world will come to a screeching halt if your module's frame table is not tidy and orderly. :)

User avatar
HertzDevil
Posts: 467
Joined: Thu Apr 23, 2015 7:39 pm
Location: Hong Kong SAR
Contact:

Re: Unmerge patterns (by cloning and separating all duplicate pattern numbers)

Postby HertzDevil » Sat Feb 06, 2016 12:11 pm

This feature is literally "Populate unique patterns" from 0CC-FamiTracker though.
Constructing Chiptune; Construing 8-Bit. Makes 0CC-FamiTracker and MEGA ZUN.

Join my forum for 0CC-FamiTracker discussion and more

User avatar
Stratelier
Posts: 378
Joined: Sun Apr 26, 2015 7:46 pm

Re: Unmerge patterns (by cloning and separating all duplicate pattern numbers)

Postby Stratelier » Sun Feb 07, 2016 3:45 am

My personal OCD demands that every non-repeated pattern have a pattern ID = frame ID. Unfortunately, the moment I start re-using any pattern I subsequently have to manually number pattern IDs for every. new. frame....

Unmerge tangent: You know the "duplicate pattern(s)" command on the frame editor? I would love to see a counterpart that only affects the selected channel and not all channels in the frame. The number of times I've had to manually copy pattern data just so I can increment the IDs on one or two channels and paste that data right back in (for subsequent editing, of course) is beyond count.


Return to “Feature Requests”

Who is online

Users browsing this forum: No registered users and 2 guests