techmania-docs

Documentations of TECHMANIA projects, hosted in a repo so they can be localized.


Project maintained by techmania-team Hosted on GitHub Pages — Theme by mattgraham

Applies to version: 1.4

On volume and pan

TECHMANIA defines and handles volume and pan differently from whatever game using .pt, so these parameters are not directly convertible. I have experimented and found formulas that I think sound close enough to the original, but you can customize the formulas to your liking if needed.

Volume conversion

The input is velocity in .pt, ranging from 0 to 127. Output is volume in .tech, ranging from 0 to 1. For convenience we first normalize input, so it ranges from 0 to 1:

normalized = input / 127

Then, choose 1 of the 2 following formulas:

The default is exponential with exponent equal to 1.5.

Pan conversion

The input is pan in .pt, ranging from 0 to 127. Output is pan in .tech, ranging from -1 to 1. For convenience we first normalize input, so it ranges from 0 to 1:

Then, choose 1 of the 2 following formulas:

The default is exponential with exponent equal to 0.25.

Volume notes

.pt has volume notes, which modifies the velocity of all notes after it in the same track. There is no equivalent in TECHMANIA, so by default, the converter applies the same formula to both volume and velocity, then multiplies the results to get the final output volume.

However, if you need to modify patterns after conversion, especially move notes between tracks with different volumes, it may be better to tell the converter to ignore volume notes, in order to treat each track equally. Note that music volume from TECHMANIA’s options menu applies to all notes in hidden lanes.

Visualization

You can use WolframAlpha to visualize exponential and logarithmic curves. Type into WolframAlpha:

On scroll speed

Scroll speed determines:

Therefore it’s critical for the converter to find the correct scroll speed for each pattern. The converter will search the following 3 sources for a scroll speed and use the first one found: