let me post some images and explain again what the tools do…

MashUp is an automated, formulated chop-and-screwer for sliced samples. picture:

This can be the result of dropping a certain formula like this one on this kind of sample:

the default ‘slice select’ formula is `1+(X-1)%N`

, this will just repeat the original for as many slices as you select. completely random selection is ```

math.random(N)

```
Not sure what else types of samples this is useful on, I've already remixed a kickdrum from a loop into a 'door-knock' type drum, but anyway, let me know what you do with it..
[b]Overtune[/b] v1 was a difficult way to program sinewaves etc into instruments, come V2 it's actually become a quite learnable way with a lot of options. New screenie:
![](http://dl.dropbox.com/u/388735/ot2_shot.png)
Note that all instruments from the old packs (you can find them in the thread that's pointed in my sig, and also on my [wordpress page for tools](http://beatcreators.wordpress.com/tools-for-renoise/)) should still load and render exactly the same. The best update is usable, non-programmer style notation of formulas. This means you can use e.g.
```

sin(X)*saw(X)

```
which will make a sine-modulated sawtooth, and
```

clip(sin(X), .9)

```
which will make a razor-clipped (distorted) sinewave.
List of all functions and shortcuts:
- pi => math.pi
- sin => math.sin
- cos => math.cos
- tan => math.tan
- atan => math.atan
- max => math.max
- min => math.min
- rnd => math.random
- flr => math.floor
- abs => math.abs
- saw(x) = sawtooth wave
- squ(x) = square wave
- tri(x) = triangle wave
- pls(x) = pulsify, i.e. bitcrush to only 1 or -1
- crush(x, y) = bitcrush type modifier, y = definition (=> math.floor(x*y)/y)
- clip(x, y) = razor clip against a value (=> math.max(math.min(x, y), -y))
- semiclip(x, y, z) = mix razor clip dry and wet, z between 0.0(dry) and 1.0(wet)
- un(x) = make a bipolar function unipolar (=> (x+1)/2)
- bi(x) = make a unipolar function bipolar (=> x*2-1)
So you can make a pulsewave 75% with
```

pls(sin(X*2/3))

```
Or e.g. make a distorted sinewave for cool bassline use or other synthy things:
```

clip(sin(X), .5+.5*tri(X/2))

```
Also, the list of usable variables has been expanded, and on top of that, the notion of varying 'repeats' was added which makes it possible to have a sinewave morph into a squarewave or add the overtones with an 'lfo' type modulation.
- X = still X, goes from 0 to 2*pi every repeat
- XX = X but goes on and does not reset back to 0 every repeat (handy when you want to use non-integer freq multipliers like 5/4, 1.5 etc.)
- O = current repeat number, nice for bi(O%2) 'flip' tricks
- N = still N, goes from 2 to 'number of steps' and denotes current overtone step.
- T = goes from 0.0 to 1.0 from left to right regardless of number of repeats
Using T like in the getting started / default formula is one way of using it as a type of (triangle wave) LFO.. another one is to have it 'one shot', e.g. to start off with a kickdrum, you can use step count 1 (sorry I've just noticed it doesn't load it properly atm when loading formula from an old inst..), and 2 repeats, just '0' (zero) for the step-N formula, and this for the main formula:
```

sin(XX*20*(.1+(1-T)^3))*(.98+.02*bi(rnd()))*(1-T)^2

```
then of course you have to transpose it a lot, like -48, and turn loop mode off, but the other good news is that loop mode, volume, panning, transpose and finetune, are saved now just like the envelopes. ATM there are still some improvements to be done as it does not save these variables when the formula fails to load (e.g. unclosed parentheses etc.)
Small updates are that the window is much wider so it gives more room for typing complex formulas, and also the values of the sliders are displayed by the boxes on the right. It's good to know that the sliders are intended for use with the mouse, and the boxes for use with keyboard (same with MashUp). That means, if the mouse does not give satisfactory precision (the repeats have a max value of 1024), you can double click the box and enter a 2 or a 24 or whatever. The value that gets sent through is always the value from the box.
please let me know if all of this works as expected on different platforms (I don't expect any differences), or if you have a handy function that should be implemented. Please notice that I already know that there was a stupid bug in late versions, where I've set the sampling rate of the new instruments to 44000 instead of 44100.. I have no idea if it actually sounded off key. Anyway so if you have anything higher working in the studio you might want to find&replace that number in the file ```
main.lua
``` with the sampling rate you're working with like 48000, 96000 etc. But you'll have to change the value of 1604 accordingly.
[u][b]DISCLAIMER[/b][/u]
Please use the new download links. Overtune 2.1 has a small update which gives the rendering process much more speed. Also a few new function 'quicklinks' were added.
what's gonna happen before 2.2? Give me some ideas.
- Tune to any note not just A-0
- setting number of repeats to a 'beatsynced' value (x lines, x beats, sth like that)
- [s]Define functions like the formula device (so we can build 'if' struct and real one-way clipping)[/s] (you can define new functions with ifs in it of course) but the idea of loading own functions is not stupid or weird.
- better presets loading/saving / archiving
I've got one thing now called upft(x,f,t) short for unary pulse from / to, just returns 1 if f<=x<t.. and upf and upt... what's next? env function? slope things?
Where could Overtune go, I mean, it's fun, does anybody use it at all? Would it be usable in a education type situation? selfeducation, yes (I found out myself ![:P](https://files.renoise.com/forum/emoticons/default/tongue.gif))
PS new packs and maybe even drumkits will be available [i]sometime[/i].
```