New Tool (2.8): Mashup & New Version Of Overtune

Downloads:
MashUp
Overtune

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(XX20(.1+(1-T)^3))(.98+.02bi(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].

cool, but where can I dl the tools? B)

My bad

Very interesting! I was thinking a while back of a similar project for automation curves ;)

Using mashup on an unsliced sample gives:

Also, could you leave the tools window open after pressing ‘go for it’?

** Please download again from the new links, updates

Ah yes, it should warn you first.

Well I could but it would also need other updates to make any sense, namely, the instrument where mashup gets the slices from is not saved into the new atm… But it’s a good idea.

I’m getting the same error:

[b][i]'C:\Users\plugexpert\AppData\Roaming\Renoise\V2.8.1\Scripts\Tools\nl.jeweett.MashUp.xrnx' failed to execute in one of its menu entry functions.

Please contact the author (Cas Marrav | Casper) for assistance…

std::logic_error: ‘invalid sample index ‘-2147483648’. valid values are (1 to 1).’
stack traceback:
[C]: in function ‘sample’
main.lua:147: in function ‘render_mashup’
main.lua:105: in function ‘show_formula_dialog’
main.lua:14: in function main.lua:12[/i][/b]

What do you think is best, just a error msg saying “slice it first” ? ;D
OK so I could extend the beast with an extra option if there are no slices just autochop it in say 64 equal pieces (or with 64 value customizable)… but I don’t really want to today. Maybe tomorrow.

don’t know if I should be asking this but, what do you mean?

Where you can enter formulas for generating automation curves of different shapes, similar to how you have for generating waveforms (or have a completely misunderstood what this tool does?) {Possibly combined with the little automation tool I did that alternated between exponential curves of opposite polarity, so each x time division (eg 1 line) you could alternate from two different equations for the curve.}

Hey Cas,

I love overtune and use it a lot. I struggle a lot with building anything from scratch so I use it by loading presets and then tweaking the numbers and formulas. The discovery process is fairly random but I do manage to get some fantastic sounds out of it.

A preset system for future versions would be great.

Also some kind of beginners tutorial would really help if you intend this for educational purposes.

Cheers

Hey fathand,

great to hear that! Have you read the page for overtune on my wordpress already? Even though it’s based on V1 everything should still also work… Anyway it’s here. I like to think once you get used to the shitty things about Overtune (mainly having to click in the input field two times) it’s pretty usable. In the near future I’ll surely have something in mind for a step-by-step tutorial thing like the drum synthesis tutorial that’s also on my site. But I think first Overtune has a few small update things to get, presets might be one of them, at least a user customizable ‘init’ preset…
I’ll think about what to put in the beginner’s guide :D thanks for your comment.

Later

Overtune v2.2 is now live on the tools page with more updates since the last posted here…
changes:

  • fully keyboard operated
  • 1 preset
  • gui with logo
  • minor bug fixes

Overtune is updated with some extra helper functions, they’re documented on my overtune page. New version is live on the tools page again.

coolest stuff in the updates:

  • expsin/tri/saw now also works with ‘roots’ so you can do expsin(X, 1/4)
  • ltan function that just limits a tan so you can use it for waveform making and modulating
  • sqtsin/tri/saw functions added that work like return sqrt(sqrt(sqrt(…(sin(X))))
  • 8 ramp up/down functions for easier building of ‘envelopes’

this file shows a lot of the functions and possibilities

regarding ‘mashup’, when no sample data is present, the tool throws up the following notice:

There’s a new update that allows to edit waveforms with the same functions that you have when building an Overtune. It takes (currently) the form of a different window, different shortcut, and does not save your edit-formula, but it’s already capable of doing cool stuff. The default formula loaded in is

  
crush(Y*sin(X*35), 10)  
  

which works coolness (read: mad distortion) on e.g. a rendered drumloop. (Note that using the edit window can take a lot of time on big samples, but a 4/4 beat should render without you having to click “no, don’t stop the script, it’s taking time but it’s probably doing exactly what i want”)

The other thing is that there now are lowrnd(T, num) and lownoise(T, num) functions. lowrnd is like rnd (you’ll still want to bi() it unless you use it for modulation) but sample-and-holding a number of steps. So a fun formula is e.g.

  
bi(lowrnd(T, 25+bi(rnd(10))))*rd(T,1)  
  

to enhance your kickdrum with a small noise thing. (I used times=8 on it)
lownoise() does the same thing but you can instead of frames, define how many changes should occur in the T time. You could use

  
lownoise(T,12)*sin(X)  
  

to wickedly distort a sine tone.

I updated the top post too but quickest is to get it at my tools page. Let me know what you think about it!

There’s a new update that allows to edit waveforms with the same functions that you have when building an Overtune. It takes (currently) the form of a different window, different shortcut, and does not save your edit-formula, but it’s already capable of doing cool stuff. The default formula loaded in is

  
crush(Y*sin(X*35), 10)  
  

which works coolness (read: mad distortion) on e.g. a rendered drumloop. (Note that using the edit window can take a lot of time on big samples, but a 4/4 beat should render without you having to click “no, don’t stop the script, it’s taking time but it’s probably doing exactly what i want”)

The other thing is that there now are lowrnd(T, num) and lownoise(T, num) functions. lowrnd is like rnd (you’ll still want to bi() it unless you use it for modulation) but sample-and-holding a number of steps. So a fun formula is e.g.

  
bi(lowrnd(T, 25+bi(rnd(10))))*rd(T,1)  
  

to enhance your kickdrum with a small noise thing. (I used times=8 on it)
lownoise() does the same thing but you can instead of frames, define how many changes should occur in the T time. You could use

  
lownoise(T,12)*sin(X)  
  

to wickedly distort a sine tone.

I updated the top post too but quickest is to get it at my tools page. Also, you can always get the changes through github (it even has RSS feeds!). Let me know what you think about it!

Really must get around to studying these tools properly!

check this out: Irie Worlds totally made in Overtune instruments :D