Making a TET controller!
-
- Posts: 89
- Joined: Sat Mar 17, 2018 4:23 pm
Making a TET controller!
I am trying to make a TET designer. The goal is to have a slider in which you can smoothly set the distribution of the scale. When slider is at 100% the tuning is normal. If it's on 50% you get TET-6 mapped to every C, C#, D, D#, E, F, F#. I don't know if it's possible but to start with I tried to make finetune/transpose slider and I almost succeeded.
But I need some help with this. The sunsynth almost does the job but it is not completely seamless. I used PIXI to create custom multictrl curves. Is there someone who is able to make the slider seamless? It's hard to debug this thing...
But I need some help with this. The sunsynth almost does the job but it is not completely seamless. I used PIXI to create custom multictrl curves. Is there someone who is able to make the slider seamless? It's hard to debug this thing...
- Attachments
-
- fine transpose.sunsynth
- (8.41 KiB) Downloaded 21 times
- AutumnCheney
- Posts: 198
- Joined: Sun Dec 29, 2019 8:16 am
- Location: durant, ok, usa
- Contact:
Re: Making a TET controller!
actually, i would do this using the glide module. the "pitch" controller allows you to bend the pitch independently from semitones and cents, and this is drastically simpler than using multictls and works in real time
here's a configuration. the highest setting on the "pitch" controller corresponds to "normal" tuning, and decreasing the value will decrease the pitch, with the lowest value being one octave down. you can control how rough/smooth the change is with the "response" and "sample rate" controllers. the glide is transposed 6 semitones up, to compensate for the pitch bends
of course, this only allows a resolution of 1/100 of a semitone, as opposed to 1/256, but honestly you can barely tell anyways
also make sure to have "smooth frequency change" disabled on the analog generator, to remove unwanted portamento (this is the only module you'll have to worry about besides metamodules with the analog generator)
here's a configuration. the highest setting on the "pitch" controller corresponds to "normal" tuning, and decreasing the value will decrease the pitch, with the lowest value being one octave down. you can control how rough/smooth the change is with the "response" and "sample rate" controllers. the glide is transposed 6 semitones up, to compensate for the pitch bends
of course, this only allows a resolution of 1/100 of a semitone, as opposed to 1/256, but honestly you can barely tell anyways

also make sure to have "smooth frequency change" disabled on the analog generator, to remove unwanted portamento (this is the only module you'll have to worry about besides metamodules with the analog generator)
please check out my newgrounds account, i post music and talk to people here: https://autumncheney.newgrounds.com
i have a soundcloud and bandcamp too (just music here):
https://soundcloud.com/autumncheney
https://autumncheney.bandcamp.com
i have a soundcloud and bandcamp too (just music here):
https://soundcloud.com/autumncheney
https://autumncheney.bandcamp.com
-
- Posts: 89
- Joined: Sat Mar 17, 2018 4:23 pm
Re: Making a TET controller!
Wow, you are a hero I didn't know that, more flexible and in realtime. But for the purpose of the project, it will not help because then I need like 88 different glide modules to make the midi module fully polyphonic. I will try it but it will probably not be very efficient, you never know. Look at what I have made so far...
- Attachments
-
- TET controll master.sunsynth.zip
- (7.35 KiB) Downloaded 22 times
Last edited by philipbergwerf on Sun Aug 16, 2020 8:58 pm, edited 1 time in total.
-
- Posts: 89
- Joined: Sat Mar 17, 2018 4:23 pm
Re: Making a TET controller!
I found out I would still need 88 multisynths to filter every key so the glide is not really an option.
-
- Posts: 89
- Joined: Sat Mar 17, 2018 4:23 pm
Re: Making a TET controller!
Update*
I learnt from Nightradio that Multictrl Interpolates 257 values to number of controller 03(Quantization (levels)). The slider transposes exactly one octave. Which is perfect for mapping TET tunings. The block isn't finished yet but here is what I made with the working slider. I created a midi filter which makes sure that it's not possible to play two midi notes exactly at the same time in order to make the tuner work correctly.
I am still puzzling on how to implement multiple octaves because making the slider two octaves didn't work because of limitations in the software(Maybe this statement isn't correct). Maybe someone knows an efficient way to implement more octaves?
I learnt from Nightradio that Multictrl Interpolates 257 values to number of controller 03(Quantization (levels)). The slider transposes exactly one octave. Which is perfect for mapping TET tunings. The block isn't finished yet but here is what I made with the working slider. I created a midi filter which makes sure that it's not possible to play two midi notes exactly at the same time in order to make the tuner work correctly.
I am still puzzling on how to implement multiple octaves because making the slider two octaves didn't work because of limitations in the software(Maybe this statement isn't correct). Maybe someone knows an efficient way to implement more octaves?
- Attachments
-
- TET controll master.sunsynth
- (45.4 KiB) Downloaded 31 times
- NightRadio
- Site Admin
- Posts: 3461
- Joined: Fri Jan 23, 2004 12:28 am
- Location: Ekaterinburg. Russia
- Contact:
Re: Making a TET controller!
Here is a little clarification :)Multictrl Interpolates 257 values to number of controller 03(Quantization (levels))
MultiCtl curve size is 257 values.
But the input range is 0...32768 (32769 values).
So it uses linear interpolation.
From the MultiCtl code:
Code: Select all
int multictl_get_curve_val( int input, uint16_t* curve )
{
int output;
int c1 = input & 127;
int c2 = 128 - c1;
if( input < 32768 )
output = ( (int)curve[ input >> 7 ] * c2 + (int)curve[ ( input >> 7 ) + 1 ] * c1 ) >> 7; //linear interpolation
else
output = curve[ 256 ];
return output;
}
value -> MultiCtl(Quantization=257) -> MultiCtl(with user defined curve) -> ...
-
- Posts: 89
- Joined: Sat Mar 17, 2018 4:23 pm
TET tuner ready for testing!
Thank you Nightradio!
The module is ready for testing. I had already much fun in certain configurations. I have achieved the goal!
TET tuner
The tuning is mapped over four octaves so you have enough space to play with custom harmony. There are three sliders:
The module is ready for testing. I had already much fun in certain configurations. I have achieved the goal!

TET tuner
The tuning is mapped over four octaves so you have enough space to play with custom harmony. There are three sliders:
- The TET slider controls the TET tuning in very small steps so you can find a lot of configurations. The slider starts at infinite TET(so every note is the same pitch) and slides the tuning to 12 TET in the middle. from the middle, it goes down to 6 TET but you can change the behavior by changing the amount of mapped keys. The 'anchor' is on the lowest mapped key. Mapped keys are from C3 -> C7
- First note; select where the mapping starts
- Number of semitones; alias 'divide octave by x keys'. You can use this slider to get different configurations but the templates are finetuned on 48(four octaves)
- Transpose slider = Transpose
- Finetune slider = Finetune
- Attachments
-
- TET Tuner.sunsynth
- (57.55 KiB) Downloaded 33 times