From the help for Tune Smithy
Skip navigation Overview Seeds etc User guide Main Window Musical note intervals Scales Midi in Analyse sound
Hide Contents

Controllers etc

Skip navigation Midi In Midi Relaying Controllers etc Midi Out Parts

Modulation and Tremolo - Pitch var. - Amp var. - Portmento and Legato - Pan - Aftertouch - Controllers for parts overview - Controllers for parts - Controllers in Play - Remap Controllers etc - Controllers options - the Bank Select message - Tips: highlighting a multi-selection in a list.

Modulation and Tremolo

Parts | More | Modulation and Tremolo...

These effects depend on the soundcard and the voice.

Modulation is often a pitch vibrato, such as one has on the violin - as the violinist applies the vibrato, the note actually shifts up and down in pitch in a short cycle, a few per second.

Tremolo means a variation in amplitude of the note with no change of pitch - such as flute players achieve when playing vibrato, for instance.

Set the value you want, in the range 0 to 127 (as is usual for Midi effects).

Ths is multi-select, so you can highlight several parts and change them in one go - see Tips: highlighting a multi-selection in a list.

Click Yes to enable it.

The All check box is tri-state. You can click it to enable all the entries, or to disable them all. If you use the Yes tick box instead, to enable a selection of entries, then the All box will be shown with a tick against a gray background to show that some of them have been selected, but not all.

In - Yes - select this if you wand to be able to change the modulation / tremolo from a midi keyboard or when midi relaying - this is the standard setting.

If you click on the Value heading at the top of any of the columns, you will show the Controllers for parts window. This is basically the same thing, except that you can select other controllers from the drop list at the top, and you can choose which parts you want to be able to relay from individually - you are most likely to use this if midi relaying.


Pitch var...

Parts | More | Pitch var...

This creates a vibrato like effect by using fluctuations in pitch.

The standard setting here varies the pitch by +- 10 cents at a rate of 2.5 cycles per second.

To use it, highlight a part and click the Yes for it.

Pitch variation - the amount the vibrato varies in pitch. With the standard midi pitch bend range, you can vary this by at least +- 150 cents, and up to +- 200 cents in twelve equal. If you want larger fluctuations in pitch, you will get a message asking if you want to increase the pitch bend range. You can also do this via In | Options | Kbd Options | Pitch bend range (semi-tones) +- . However, not all midi devices support changing the pitch bend range.

Midi clips for web publication and general use should be made with a pitch bend range of +- 2 semitones, as this is the standard setting for Midi - the value used if pitch bending is available. Most synths and soft synths will support it (though it is not a requirement of Midi that they can bend pitch at all).

Vibrato freq in hertz - number of cycles of the vibrato per second.

Formula for a single wave - standard seting here is sx which means, a sine wave.

s is the symbol for sine, c for cos. To see the list of symbols you can use in your formula, see File | scale notation | Calculator.

The x is in radians, which means that a value of 2*pi for x corresponds to one complete cycle of the wave. Uses sin as the standard setting, as that means that the note starts on pitch and fluctuates, because sin 0 is 0. You can use the symbol p for pi.

The x is the time as measured from the start of the note. So there is no need to be restricted to repeating waves. You could for instance try out sin(1/x) which has infinitely many cycles between 0 and any positive value of x. Or better, maybe something like s(10/x) to get a very rapid vibrato which very quickly slows down. Try cos_one_over_x_vibrato.ts to hear this effect

The basic principles are the same as for the Modulation and Tremolo window - set a value for a part, then click Yes to switch the effect on, or All to switch it on for all the parts.

Time step in milliseconds - this is the time step to use when applying the pitch bends. At the standard setting of 10, FTS will apply 100 pitch bends per second to make the vibrato. Set it higher, say, to 100 and FTS will apply only 10 pitch bends per second and so one may well hear these as distinct notes if the vibrato is large.

Show in score - shows pitch bend variations in the Bs | Tune ( or Note Played... ) window. You will need also to select Tune | Options | Nudge to pitch - which positions the notes on the score according to the exact pitch, moving the note up / down on the score slightly as needed. If this is unselected, the pitches are placed in the positions of the nearest twelve equal notes, i.e. exactly on a line or in a space.

Control from Midi In with - controls the amount of the pitch variation. You can choose which controller to use from the drop list - standards setting is the Modulation wheel .


Amp var

Parts | More | Amp var...

This creates a tremolo like effect by using fluctuations in amplitude.

At the standard setting, the amplitude varies between 80 and 100 % at a rate of 2.5 cycles per second.

To use it, highlight a part and click the Yes for it.

Amp variation - the amount the tremolo varies in amplitude. So if this is 20, the amplitude varies between 80 and 100 %, a range of 20 %. If it is 60 % it ranges from 60% to 100 % and so on.

Vibrato freq in hertz - number of cycles of the tremolo per second.

Formula for a single wave - standard setting is cx which means, a cosine wave. That means the note starts at maximum amplitude, and dips in volume. If you prefer the note to start quiet and rise in volume, set this to sx . For more about the formula, see the Pitch var.

Control from Midi In with - controls the amount of the amplitude variation. You can choose which controller to use from the drop list - standard setting is the Tremuulo controller .

Time step in milliseconds and Show in score - same as for Pitch var.


Portamento and Legato

Parts | More | Portamento and Legato...

The basic principles are the same as for the Modulation and Tremolo window - set a value for a part, then click Yes to enable, or All to enable all.

Whether these effects do anything will depend on whether your soundcard or synth supports them.

Mono mode means you put the soundcard or synth into a mode where it can only play one note at a time in that channel. FTS will no longer need to change channels for the pitch bends if you put the part into mono mode.

Poly mode switches off Mono mode. It is the standard setting, so if one has neither selected, one will play in Poly mode.

Portamento is a glide in pitch from each note to the next. It is usually used in combination with Mono Mode, so that you have only one note playing at a time (otherwise the synth / soundcard doesn't know which note to glide from).

Ok to use monophonic legato type trills - If your device supports monophonic legato trills, you need to select this.

Legato is mono mode, but with an extra to it, that one can have monophonic legato trills. This means that if you hold down one note, then play a second note while keeping the first one held down, then release the second note, then it snaps back to the first note. This means one can play nice fast trills and emulate the way a wind instrument is played (often one can play a fast trill on a wind instrument by just holding down and releasing a single key).

You need to select this note so that the first note of the trill gets retuned accordingly whenever the second one gets released.

In legato mode, each note may also be slurred to the next one so that if you play two notes so that they overlap, the second one is played with no attack. This is the usual musician's meaning of legato. However, your soundcard mightn't necessarily play a true legato even if it does the legato trills. If it does, then a useful tip for the fractal tunes: Set the Sustain from Bs | Tempo, Note time and volume for Tune to a value slightly greater than 1 if you want each note to slur to the next.

If your soundcard doesn't have these modes, you can try them out with the Yamaha softsynth.

The Yamaha softsynth supports all these modes, except that for the legato mode, it re-triggers the attack for every note played, so that it isn't a true legato - at least at first sight.

However here is a tip: one can get a real legato with this softsynth too. The trick is to use Portamento, and set the slide value to 0 - then you get legato notes, and no portamento slides. It's a true legato - the notes get slurred if they overlap, and the attack at the start of the note is sounded if it doesn't overlap with the previous note, exactly as one would desire it.

Note that with FTS you can do legato trills even if both notes are, say, within a quarter tone of middle c. What FTS will do in this situation is to play one note as c#, played very flat to bring it into pitch, and the other as middle c. Or one of them may be a b natural played sharp to bring it into pitch. Result is, your synth will recognise these as two separate note numbers, and so will do a legato trill between them as desired.

Also, there are two common types of legato trills - high note priority and low note priority . A third possibility might be to snap back to the most recent note played - I don't know if that is used or not, but it is there if you need it.

These only affect what happens if you hold down three notes simultaneously. This can give an attractive effect. E.g. hold down a C, then a G and an A, trill between the G and A, and now and again release both to hear the C. The question then is, if you hold down, say, G, A and middle c, and then release the A, does it snap down to the G below it, or snap up to the middle c above it, or does it snap back to whichever was most recently played. You need to try it out and see what happens, and then select the appropriate option from the drop list at the bottom of this window. N.B. If you find some other behaviour that needs to be programmed, let me know.

More details about the pitch bends for the legato trills:

By way of example, suppose you are trilling between a 5/4 and a 9/8, and doing it by holding down the 9/8 and repeatedly playing the 5/4. Then you need a smaller pitch bend when the 9/8 is sounding than you do when the 5/4 is sounding. FTS is able to keep track of which notes you have played in the channel, so in this trill, whenever you release the 5/4, it will re-adjust the pitch bend to the value appropriate for a 9/8 which is the one you will snap back to.

If your soundcard doesn't support snap back to pitch in this way, then the 9/8 will no longer be sounding when you release the 5/4, so FTS shouldn't make any adjustment at this point.

There is no way for FTS to interrogate the device to find out if it supports this mode, and many devices don't support it, so you need to select this box if you want to use it.



Parts | More | Pan...

This sets the position of the part, left to right. 0 = hard left, 127 = hard right.

Choose values for pan - if you edit any of the values, then it changes to this selection.

Auto pan by parts - this is the standard setting, as it will mean you hear all the fractal tunes in stereo.

It just pans parts in order left to right, so the first part (often the fastest) is to the left. It auto pans for the parts in the fractal tune - you can use the edit box and scroll bar at the bottom to change this. The auto pan values are worked out, and this window is updated, when the first note is played in the part.

By pos in scale - pans notes from left to right depending on the position in the scale. The notes are panned left for the 1/1, up to hard right for the octave (or more generally, top note of the scale, for non octave scales). After the octave, the note jumps back to the left for the next note and pans across again in this fashion. With this option, the pan keeps changing for every note. You can see what pan values get applied from Out | Options | Controllers in play . The values shown in the pan window don't get changed with this option - so that you can select it to try it out, and then unselect it without affecting whatever other pan settings you may be using.

To change the ratio for the hard right pan in the scale, use Bs | Arpeggio & Scale Playback | Stop playback of main window Arpeggio or Chord at . - this is the note at which playback stops when you click the play scale button in the main window, and it is also the one used for this effect.

Note that the 1/1 is treated as a special case - it has pan 0, while all the octaves have pan 127. That's because if one pans across a single octave, it sounds best if the octave is at the far right. An example of this is that one might have a marimba scale, and want the notes to be panned spatially to the approximate positions of the notes on the marimba. One would make all the notes for the marimba as a single scale to do this. More options may be added for By pos in scale at some later date.

Bs | Arpeggio & Scale Playback | Update this when Arpeggio or Scale changes will automatically update this value whenever you edit the scale or arpeggio - this is the standard setting. So for example if you make a Bohlen Pierce scale, it will reset to 3/1, or if you choose Wendy Carlos's alpha, beta or gamma as a new scale from Bs | Scale , it will reset to 3/2.



Parts | More | Aftertouch...

The basic principles are the same as for the Modulation and Tremolo window - set a value for a part, then click Yes to enable, or All to enable all.

Some keyboards have aftertouch, which means that after you play a note, you can then press the key down further in order to add a vibrato or tremolo like effect to the voice. So, adding aftertouch to a voice has a similar effect to the modulation controller.

This is for monophonic aftertouch - where depressing any key sets the aftertouch for the entire midi note range on the keyboard. That's the most usual set up.

Send on as polyph. The special thing about polyphonic aftertouch is that you can set it for a note individually rather than for the entire midi output channel. Few keyboards have been built with this feature. However, it could be a useful way to play a tune with each part having varied amounts of modulation. Usually you can only set the modulation for the entire channel, but if your synth / soundcard can play polyphonic aftertouch, you could use that instead, which will let FTS use the available channels more efficiently when choosing the channels appropriate for the pitch bends.

Smudge Midi In attack dep.on how soon aftertouch begins - this is highly experimental. The idea is to use the moment of onset of the aftertouch as a way to vary how the note is played. At present, the way it works is that the attack is smudged by making the note quiet to start with, and building up to full volume a little after the aftertouch is applied. Depress the key hard immediately after playing and you get the full attack. Play normally, and you get all the attacks smudged, so somewhat legato, but as I say, rather experimental. On my keyboard you need a very heavy attack to trigger the aftertouch quickly, so it doesn't work so well really, but the smudge effect is quite nice :-).


Controllers for parts overview

Parts | More | Controllers for parts overview...

This shows which controllers you have set up at present.

Enable all parts - if you have the controller enabled for all the parts, shows On. If you have it for some, shows Some. Click Yes to enable all / disable all.

Midi In all parts - shows which controllers will be relayed from Midi In - click Yes to relay all, or to ignore all.

Val for part - this shows the value for the controller for the selected part. The selected part is shown next to the header - the standard setting is part 1.

So you can use this window to get an overview of all the controllers for a particular part. You can also use it to set the values for the part using the edit field.

This part - click this to enable the controller for this part only, or relay from midi in for this part only.

Show enabled ones only - when selected,. only shows controllers that are enabled for some of the parts - i.e. the ones that show On, or Some in the Enable all parts column.

On / Off type - Some controlers are continuous, some like sustain are usually on / off. However this depends on the synth, and so you may want to specify some controllers as on / off type.

Val ignore - some controllers have the value ignored completely - things like the monophonic or polyphonic controller. Set that here if necessary.

Highl. Controller - Show all the values for all the parts for the highlighted controller - see next section:

Reset this window... - resets to the standard settings- Pan only enabled, and all controllers accept values from Midi In except the Custom vibrato and Custom tremolo - for those, see Pitch var. and Amp var..

Set All - sets the controller to this value for all the parts.

Controllers in play - use this to see what values are actually being relayed, and to which midi output channels, as you play.


Controllers for parts

Parts | More | Controllers for parts...

Shows the values for a particular controller for all the parts.

The basic principles are the same as for the Modulation and Tremolo window - set a value for a part, then click Yes to enable, or All to enable all.

Select the controller you want to see or edit from the drop list.

You can have as many of these windows open as you like, one for each controller. One way to do this is to show them from the Controllers Overview window.

Echo - this is another way to show the window for another controller - use the Echo button and then change the controller for the echo.

Sync with overview highlight - when selected, the controller in the drop list changes as you move the highlight in the Controllers Overview window.


Note Ons as controllers

Out | Options | Note Ons as controllers

The idea is that FTS is making fractal melodic patterns, so why not use those to change controllers in a fractal fashion.

Send note ons as controllers - select this first.

Then select the controller you want to send from the drop list, or enter its number. You can have as many controllers as you like sent on simultaneously - if you have several in play at once you can see them all listed in the little drop list at top right of this dialog.

The controller value sent depends on the pitch of the note in the fractal tune.

Now select the part in the fractal tune that you want to use to change the controller. Every time a note is played in that part, it will be sent on as a controller value.

Note range to map - the notes at the lowest end of the range get sent on as the controller value 0. The ones at the highest end get sent on as 127, and all the ones in between, as intermediate values.

If you set this range to 1/1 - 1/1 then the Midi note numbers that would normally be played are used as the controller values - e.g. a middle c will get sent on as controller value 60, etc.

Maps to parts - these are the parts that get affected by the controller. The controller gets sent on to any channels that are playing notes for those parts.

Play notes as well - if selected, the note is played normally, and sent on as a controller value as well, simultaneously. If unselected, the note isn't played - it remains silent, and is only sent on as a controller.

Outside range - suppose the range is the standard setting of 1/1 to 4/1. Then if you play, say, a 9/8, it will be relayed as a low controller value, in fact, as the value 10. If you play an 18/5, since that is nearly 4/1, it will play a high controller value, in fact, 117.

What now if you play a note just beyond the 4/1 - a 9/2 say. If you choose wrap here, then it will play a high controller value - the values go:

1/1        4/1         8/1           16/1
  low  high | high  low |  low  high ..

If you choose repeat, then it will play a low controller value:

1/1        4/1         8/1           16/1
  low  high | low  high |  low  high ..

Send LSB for MSB - this is for controllers that have coarse and fine versions. The fine value adds greater resolution, if the 127 steps of the coarse controller isn't enough.

You just need to use the coarse version of the controller. Then select this if you want to send the fine version of the controller as well. FTS will work out the appropriate fine controller value is to send, depending on the exact pitch.


Controllers in play

Parts | More | Highlighted controller...

Shows which controller values have actually been sent on each Midi out channel.

First be sure you select Show enabled ones only

Now select the controller you want to watch from the drop list.

At the left you see the parts, and the values for the parts, then a list of which channels are playing each part.

To the right, there are two columns showing the actual channels currently in use, with the values that have been sent for each channel.

If you highlight one of the parts, then the values for that part get highlighted in the last two columns as they are sent, so that you can keep track of the actiivity for that particular part.

One may often see most activity here at the beginning of the tune. New values may no longer need to be sent once there are enough channels already set up to play all the desired values for the controller with the desrired pitch bends as well .

You can see the notes in play for each part and the pitch bends for them from the Notes + pitch bend window .


Remap Controllers etc.

Out | Options | Remap...

Here you can map one controller to another one.

For instance, to control Pan using the modulation wheel, select the Modulation Wheel below the Controllers to use from Midi In list, and Pan below the Controller, aftertouch or effects list. Then click Add.,. .

Now your modulation wheel will control pan instead of modulation.

If you want it to control modulation as well, then choose modulation for both sides, and add that in as well. Any controller can control any number of effects simultaneously.

Do reverse map - select this before clicking Add.,. to map the controller values in reverse. E.g. the modulation wheel at minimum will now pan hard right instead of hard left. Can be useful when changing several effects simultaneously from one controller.


Controllers options

Out | Options | Controllers Options...

Auto enable controllers when changed - whenever you change a controller value, that controller automatically gets enabled. The controllers are disabled initially - that's because normally one can rely on all the controllers to be preset to reasonable values, and so one doesn't actually send them all individually whenever you open Midi Out (for instance). Controller values are only sent on by FTS when you have the controller enabled.

Some controllers come in coarse and fine versions - so you can set the coarse modulation, and then if one needs finer adjustment, use the fine modulation for that. These are separate controllers in the list for both - so you can send the coarse modulation without the fine. Often the coarse one is the only one used, e.g. the modulation wheel on your keyboard probably only sends the corase modulation.

MSB = Most significant byte (i.e. coarse). LSB = least significant byte. Each is in range 0 to 127, (so it is really a 7 bit byte, and the two together make a 14 bit integer).

Auto enable and send LSB for MSB - standard setting is unselected, so one can send e.g. just the coarse modulation without the fine. This is the way it is usually done, to reduce the number of midi messages a bit (though this isn't so much of a consideration on modern equipment).

Auto enable and send MSB for LSB standard setting is selected so e.g. always sends Bank Select MSB with the LSB. See the Bank Select message.

Reset any controllers to their standard settings after use, e.g. at end of midi file saved . - this is good practice, e.g. if you change the channel volume, then at the very end, resets it to the standard setting 127.

Midi controller resolution from Midi In - this is explained on the dialog. Sometimes wheels may sit at an intermediate positin between two controller values, and send them alternately inan unending stream. Rather than process them all, you can set FTS to ignore any controller value increments of just 1.

The buttons at the bottom of the window give quick access to some of the other controller windows of FTS.

Auto enable and send rpn and nrpn LSB / MSB and data entry coarse / fine - the rpn and nrpn controllers and data entry are usually sent in the following sequence:

rpn coarse, rpn fine, Data Entry MSB, Data Entry LSB, then after that it is considered good practice to null the active parameter by sending coarse and fine values of 127.

Here rpn coarse means the Coarse registered parameter number - controller 100 in the drop list.

Example - to set the pitch bend range to an octave, one could use the coarse and fine rpn 0, set the data entry coarse controller to 12 (semitones), the data entry fine to 0, One would only need to enable the coarse rpn as the fine one will get enabled too automatically when the message is sent. One would also only need to set the coarse data entry.

However, if one does it this way, FTS won't recognise that the pitch bend range has been changed. All the pitch bends it applies will be too wide from then on.

The best way to change the pitch bend range in FTS is from In | Options | Keyboard Options. | Pitch bend range (semitones) . E.g. set this to 12 to enable octave swoops in pitch using the pitch bend wheel.

I imagine this might be useful for nrpns. Let me know if you have any special requirements for message processing in FTS. :-).


The Bank Select message

Bank select is used to select a bank of voices to use as Midi patches. So a General Midi bank will have the Acoustic grand piano as patch 1, Rhodes piano as 5, etc, A more specialist bank might only have cello voices and use patches 1 to 8 (or whatever) for various styles of play of the 'cello.

There are two standard methods for this.

Some synths and soundcards use the MSB. For these, choose the Bank Select MSB 0 from the list of controllers. If you want to select the banks individually for each part, use the Controllers for Parts window, and for each part, set the bank number you want to use in the Value column.

Another method is to use the LSB, and set the MSB to 0. For this type, choose Bank Select LSB 32, as the controller to use. Rest is as before. Some synths may expect you to send the MSB as well, even though it is 0. That's okay as Controllers Options | auto enable and send MSB for LSB is the standard setting. So e.g. if you use bank 2, then FTS will send a LSB bank select of 2 whenever that instrument is needed, before the patch change, and it will also send a MSB bank select of 0 (which will be ignored by synths that don't need it).

Try both and see which works. The SB Live! for instance expects the MSB method.


Tips: Highlighting a multiple selection in a list

This is something one can do with any multi-select list, including the files list for Windows Explorer.

To select a range of entries, click on the first one to highlight, then use Shift + click on the last one. To select an extra entry into the highlight, use Ctrl + click . To select an extra range of entries into the higlight, use Ctrl + click on the first one you want to add, then Ctrl + Shift + Click on the last one.