Author Topic: High-precision pitch offset command  (Read 662 times)

Offline glowcoil

  • Shy artist
  • Posts: 2
High-precision pitch offset command
« on: June 14, 2020, 18:34:10 »
For the purposes of microtonal music, it would be nice to have a pitch-offset command, similar to EFx/EEx/FEx/FFx, but with two digits and precision of at least 1/100th of a semitone. Would it be feasible to add this to OpenMPT as a new effect and/or volume command?

Offline Saga Musix

  • OpenMPT Developers
  • *****
  • Posts: 7,104
  • aka Jojo
    • Download music, samples, VST plugins: Saga Musix Website
  • Operating System: Windows 10 x64
Re: High-precision pitch offset command
« Reply #1 on: June 17, 2020, 20:28:12 »
Sorry for the late reply. It's possible of course but any newly-added command should be well-debated (in particular to avoid commands with dodgy or inconsistent behaviour and to not needlessly reserve more command letters which we are already running out of).
So the first thing I would like to be answered is: In which scenario would the precision of EEx / FEx, which is a 64th of a semitone, not be enough? I get that the range of those commands is limited (only values 1/64 through 15/64 can be used) and needs to be extended, but apart from that, I don't see much of a problem. 1/64th of a semitone is already well beyond the resolution of human hearing, and I think for the sake of consistency with other effect commands it would make sense to let them share the same resolution base.

In fact, I think only one new command would be required for the purpose of microtonal tuning, which would kinda work like the Set Finetune (S2x) command: The command would be centered around parameter 80h (no deviation) and values 00h...7Fh would decrease the finetune from that, 81h...FFh would increase it. The exact meaning needs to be agreed upon, it could be either 64th of a semitone like EEx/FEx, so allowing a deviation of up to +/-2 semitones, or it could be in 128th of a semitone to allow a deviation of up to +/-1 semitone, which may be more useful and would be consistent with your wish to have at least 1/100th of a semitone of precision.

It also needs to be defined how the new command works with and without custom tunings: Would it always be expressed in cents in the classic sense (with 1200 cents per octave), or should it rather depend on the distance between two notes of the custom tuning? Would that be useful or more distracting?
ยป No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

Offline glowcoil

  • Shy artist
  • Posts: 2
Re: High-precision pitch offset command
« Reply #2 on: June 21, 2020, 21:07:36 »
I think that a command centered around 80h, with a precision of 1/128 of a semitone and a range of +/-1 semitone would be absolutely perfect. As for custom tunings, I think it would definitely be preferable for offsets to use the same range and precision regardless of tuning.

To answer your first question, it's true that human hearing is only accurate to about 1/10 of a cent in a melodic or sequential context, but human pitch resolution is much finer in a harmonic or simultaneous context, due to both virtual pitch (harmonicity) and roughness (beating).
« Last Edit: June 21, 2020, 21:15:56 by glowcoil »

Offline Harbinger

  • Extreme artist
  • *****
  • Posts: 1,145
  • Gender: Male
  • Operating System: Windows XP
Re: High-precision pitch offset command
« Reply #3 on: July 22, 2020, 10:24:29 »
Personally I can see some interesting flanging effects with samples by being able to shift the frequency slowly or per tick. I'd love to see it!