imitone community

Building a universal, human-friendly music interface. ...But first we have to fix the bugs!

You are not logged in.

Announcement

Having trouble with imitone? Hit send on any Error Reports it creates, or use the in-app "send feedback" button.

#1 2017-10-24 06:38:02

Handmusician
Power Tester
From: North France
Registered: 2015-01-27

Divide a semi-tone into microtones

I use fine tuning from pitchbend to make only a few equidistant microtones between semi-tones. Thus the sound is clearer than pitchbend.
Pitchbend (pb) is the midiin message
(223+channel, a, b)
Where a, b=0 to 127 (0x00 to 0x7f in hexadecimal)

Pb=128*b+a=0 to 16383
8192=no bend, 0=-pbr semi-tones and 16383=+pbr semi-tones (pbr=pitchbend range)
So 8192=1 pbr semitone

I set pbr to 1 in imitone and the midiout using rpn :
175+channel,101,0
175+channel,100,1
175+channel,6,2
175+channel,38,0


I relay all midiin messages but pitchbend to midiout.

I get the pitchbend message (channel, a and b) and convert it to the closest microtone :
Dpb=8192/(n+1)   (n=number of equidistant microtones into a semi-tone)
Np=round(Pb/Dpb)*Dpb     (get the closest microtone)

I convert Np to fine tuning message for midiout :
Fta=int(Np/128)   (truncate Np/128)
Ftb=mod(Np,128)  (get the remainder of Np/128)
If Fta>127 then
Fta=127
Ftb=127
Endif
175+channel,101,0
175+channel,100,1
175+channel,6,Fta
175+channel, 38,Ftb


If I want to come back to normal pitchbend (8192 microtones) I first cancel fine tuning :
175+channel,101,0
175+channel,100,1
175+channel,6,64
175+channel, 38,0

Change pitchrange to npbr if I want (and change it in imitone too) :
175+channel,101,0
175+channel,100,0
175+channel,6,npbr*2
175+channel,38,0
Then relay all midiin messages to midiou

Last edited by Handmusician (2017-10-24 08:03:34)

Offline

#2 2017-11-13 17:40:33

Evan
creator of imitone
From: Ames, IA
Registered: 2014-05-23
Website

Re: Divide a semi-tone into microtones

Hey, HM —

I've been planning for a while to add support for microtonal scales to imitone itself in some form, probably by allowing it to import Scala files as these seem to be the most common format.  I've written some (as yet un-tested) code for this already.

Although historically I've implied microtonal support as a studio edition feature, there's a good chance I'll be putting some world scales (or even scale customization) into the standard edition.  I'd rather avoid making my software too Eurocentric!

Offline

Board footer

Powered by FluxBB