MIDI volumes

In the volume column I want to humanise the volume data (where it is previously blank), but this bases on the maximum volume which is 0x40 however for MIDI instruments the volume seems to behave differently, it can go up to 0xFD (I think) meaning max (I would have thought 0xFF, but it won’t allow that and 0xFE seems to play silent).

The solution to this I believe would be to make all volumes go from 0x00 to 0xFF which makes much more sense really… just because old trackers only had 65 levels of volume doesn’t mean renoise should too. To be backwards compatible, in the first version that supports this, it could automatically scale the volumes when loading in files from previous versions of renoise, or MOD, IT, etc. files.

unsigned long int nVolume = dataIn.ReadByte();

if(nVersion < ???)
nVolume = Clamp((nVolume << 2), 0x00, 0xFF);


I like the idea, but we also have to convert all the volume column commands then (volume slide, cut …). So maybe a resoution of 0x80 would be also ok ?

0x00 => 0x80 sounds like a fine range for the moment - I too have been looking for higher resolution on the volume-pattern.

Oh, and on the automation too. Would a 16-bit standard possible to implement on sliders and envelopes?

my (and Neurotix’s) thumb up for volume resolution increasing.

(sorry for taking the part of Neurotix each time, but he is very very shy ;) )

I kind of think 0x40 and 0x80 are strange numbers… I mean 0x7F would be better for the max if you’re gonna just double the resolution (rather than quadrupling it)… perhaps it’s just me being anal, but you’re wasting that extra bit, because all the other bits will always be zero when it is set.

Not too sure what to do about the volume based effects, I always kind of liked the interface in ModPlug/ModPlay Editor (sorry, I can’t remember the exact name) where you don’t need to care about the effect numbers, an interface where you select the effect name from a drop down box… perhaps this could be displayed by colour coded symbols to save space (Not neccesarily just 0-F, internally could be stored as an extra byte, allowing up to 256 different effects) with a full byte (instead of just 4-bits) for the value of the effect.

Anyway, back to the original point… Volumes for MIDI instruments should be the same as volumes for other types of instrument… so if 0x40 or 0x80 or 0xFF or whatever represents the max volume, this should be scaled internally to whatever the max volume for that type of instrument uses, so as far as the user is concerned 0x00 means min and 0xFF means max.


I don’t agree… MIDI have a resolution of 00…7F in itself so that’s what should be used.

And I agree, if it shall be easy to convert between different types of instruments they have to be in the same scale even if the resolution is lower for the actuall instrument. So if the scale will be 00-FF it will be needed 2 steps to increase a midi-instrument by one step…