View Issue Details

IDProjectCategoryView StatusLast Update
0001798OpenMPTFeature Requestpublic2024-11-16 22:31
ReporterRazi Assigned ToSaga Musix  
PrioritylowSeverityfeatureReproducibilityalways
Status feedbackResolutionopen 
Product VersionOpenMPT 1.31.08.00 / libopenmpt 0.7.8 (upgrade first) 
Summary0001798: Hex volume column
Description

As an avid user of Fasttracker 2, it does sting a lot that I can't use hexadecimal in the volume column.

I like that it allows you to use decimal or hex in the column number, so it sucks that there is no way to do this for the volume column.

TagsNo tags attached.
Has the bug occurred in previous versions?
Tested code revision (in case you know it)

Activities

Saga Musix

Saga Musix

2024-06-29 17:41

administrator   ~0005993

This is not an easy feat: The volume column is a single input context, meaning that both parameter and command letter need to be able to be entered at the same time depending on which key is pressed. In particular, this means that if numbers were entered in hex, they would conflict with commands A-F (of which commands A-D are available in XM format). While those commands can be remapped to a different key by the user already, this would mean that display and input key for those commands would be required to be inconsistent.

Razi

Razi

2024-06-30 20:58

reporter   ~0005994

Can it at least be available for the XM format since it would not conflict with the volume commands?

XM volume commands are already compatible with a hex volume, so this would make the most sense to do.

Saga Musix

Saga Musix

2024-06-30 21:00

administrator   ~0005995

As said, commands A-D are available in the XM format, so trying to enter those commands would conflict with trying to enter parameter digits A-D. There's no sense in implementing this for just one format - the difficult part of the work is the same for all formats, so once that is resolved, it would be the working everywhere.

Razi

Razi

2024-07-22 15:30

reporter   ~0005999

If that is the case, then what about if you typed in A-D in the front digit, it inputs an effect, but if you input A-F in the back digits, it inputs the volume instead?
Since the front digit can only go up to 4, anything above 4 should just not register for the front digit.

(Also, should I make a separate issue for hex instrument column? How hard would that be to implement by comparison?)

Saga Musix

Saga Musix

2024-07-22 21:41

administrator   ~0006003

If that is the case, then what about if you typed in A-D in the front digit, it inputs an effect, but if you input A-F in the back digits, it inputs the volume instead?

As said before, the volume column is a single input context. There is no way to move the cursor from one digit to the other. It's not an impossible feat to implement, but no matter how, it will require large and complex changes to the pattern editor so it's not exactly high priority.

(Also, should I make a separate issue for hex instrument column? How hard would that be to implement by comparison?)

While it may be easier to make the changes in the pattern editor itself, for such a feature to make any sense it would have to extend far beyond just changing the input method in the instrument column: Any references to instrument numbers anywhere in the program would have to be switchable between hex and decimal: In the instrument editor, the status bar, the tree view, the note properties dialog, comments tab... otherwise being able to enter "1F" into the pattern editor isn't going to make you feel any more at home if you still have to manually convert this to "31" to find the same instrument in the instrument editor.

And contrary to the volumn column, where I see at least some reason to allow hexadecimal input, all of this new complexity to be added to the program makes much less sense to me - instrument numbers are differnt in every module, so it's not like you memorize "1F is the bass drum instrument" and would have to translate that into entering "31" into the pattern instead. I don't see myself implementing this to be honest.

Razi

Razi

2024-07-26 07:49

reporter   ~0006023

Okay, I see, so the only real way is to have it be a two input context like the effect column, where you can input an effect, and then the hex number afterwards.

If I may ask, is that impossible to do or would it require the volume column to be a two input context at all times?

Razi

Razi

2024-08-30 10:07

reporter   ~0006045

Or is there already a program that can write in IT files as well that uses Fasttracker style of tracking? (hex volume, ect.)

Saga Musix

Saga Musix

2024-08-31 14:04

administrator   ~0006047

If I may ask, is that impossible to do or would it require the volume column to be a two input context at all times?

Nothing is impossible, but I'm afraid there's no quick and easy solution.

Off the top of my head, I'm not aware of any IT clones that would deviate from IT's effect representation, so the volume column is usually decimal and not configurable.

Razi

Razi

2024-11-01 16:36

reporter   ~0006156

It is as you said, there is not a single IT clone or any program that can write in IT files that have hex volume.

Since this is the case, I will sadly have to wait for this feature. I just hope that it doesn't take a year or years to complete.

Saga Musix

Saga Musix

2024-11-16 22:05

administrator   ~0006195

Last edited: 2024-11-16 22:31

Okay, I have something for you to try. It's definitely very hacky but it allows to have the feature added for those that really want it without having to rewrite too much of the code.

As of r22209, there is a hidden setting, "Pattern.VolumeColumnInHex" (you can find it in the Advanced Settings). You need to set this to 1, and then in the keyboard setup assign keys for digits A-F (and reassign the effect letters that get thrown out because of that).

A test build should be up within a few hours at https://builds.openmpt.org/builds/

There's probably still lots of room for improvements, this is just a first stab at the issue.

Issue History

Date Modified Username Field Change
2024-06-29 17:31 Razi New Issue
2024-06-29 17:37 Saga Musix Priority high => low
2024-06-29 17:41 Saga Musix Note Added: 0005993
2024-06-30 20:58 Razi Note Added: 0005994
2024-06-30 21:00 Saga Musix Note Added: 0005995
2024-07-22 15:30 Razi Note Added: 0005999
2024-07-22 21:41 Saga Musix Note Added: 0006003
2024-07-26 07:49 Razi Note Added: 0006023
2024-08-30 10:07 Razi Note Added: 0006045
2024-08-31 14:04 Saga Musix Note Added: 0006047
2024-11-01 16:36 Razi Note Added: 0006156
2024-11-16 22:03 Saga Musix Assigned To => Saga Musix
2024-11-16 22:03 Saga Musix Status new => assigned
2024-11-16 22:05 Saga Musix Status assigned => feedback
2024-11-16 22:05 Saga Musix Note Added: 0006195
2024-11-16 22:31 Saga Musix Note Edited: 0006195