I tried to make sort of a shot EG generator with some micro modulations on the A/D to make it a little bit alive + intensity modulations ( the drums part ). I’m a total noob when it comes to coding stuff so better solutions are welcome :blush: .

1:
CV.SET 1 V RRAND 3 7
X RRAND 340 400
CV.SLEW 1 X
DEL SUB X 40 : CV.SLEW 1 20
DEL RRAND 20 30 : CV 1 0

I’m also asking myself what is the minimum slew time in ms ( sorry if it has already been asked… )

7 Likes

looks great! just to be clear, in your script / is actually : right?

internally slew times are rounded to 10ms intervals. i may be able to tune this for a bit more granularity at the cost of performance elsewhere.

Yes, it was a mistake.

So what will happen if Teletype read a 5ms value? Will it make it a 0 or 10 ms ?

it’s round-down. so anything below 10ms will be 0ms.

Ok and is it possible to make exponential or Logarithmic functions ? I’ve got some ideas, but what i’m thinking about seems a little bit complicated to me.

to be clear, these are not in there currently, but i intended to make tables EXP and LOG similar to N but it didn’t make it into the first revision. the thing is, however, they’d be full-range, ie 0-16384. so you’d need to do scaling to use them at smaller ranges.

can you give an example of how you’d like to use exp/log?

Nothing fancy, the first thing would be allow a deeper shaping of the envelopes. Or maybe using exp/lin/log to create slow shapeshifting LFOs. I don’t know, other ideas would come with the functionality :yum:

one thing that i’ll cover in a future studies-- using L to generate interesting pattern data. exp/log would be easy here.

@tehn understood, and makes sense.

Can I include variables in a pattern? Like 1, 5, 12, X, 4, Y etc? Apologies if this is obvious but I hadn’t noticed this discussed.

I’m working towards something similar, and wondering could - T PN 0 HERE - serve the same purpose?

P.HERE returns the value of the working pattern at the P.I index.

if your working pattern (specified by P.N) is 0, you don’t need to use PN, you can just use T P.HERE

otherwise T PN 0 P.I should do what you want.

OK, I give up, I’ll cry for help.
I was feeling pretty much in control there for a minute and now I feel useless and stupid…

Here’s what I’m trying to do, and I thought it would be simple…

I have 2 patterns - 0, and 1, and they are both being triggered by the same clock input.

Pattern 0 is 16 steps.
Pattern 1 - I would like to alternate between 32 and 64 steps, so the first half plays twice and the second half once, etc…

One would think that scripting P.L should be simple enough but I keep running into TOO MANY PARAMS MESSAGES, etc

What I thought would make sense would be to switch the P.L every time the pattern begins - 32, 64, 32, 64 etc…

So I tried - IF : P.I 0 P.L 32 - and that’s too many params

So I thought maybe I just get the pattern to spit out a TR each time it starts and - IF : P.1 0 TR.PULSE 3 returns a message to move TR.PULSE to the left and I don’t know what that means…

So any help or advice would be warmly welcomed.

When this is resolved, and I’m sure it will be one way or another, I will have scripted a track from - http://www.lloydcole.com/album/plastic-wood/ which was made with real time echoplex audio loops…

I have 10 days and counting to get 8 tracks ready for performance in Berlin alongside folk who do this type of thing all the time. It will be my debut. I am scared.

you need to move the colon over:

IF P.I 0 : P.L 32

same with the other:

IF P.1 0 : TR.PULSE 3

let me know if that helps!

Hi,
I’m trying to get my head around how patterns operate and I’m finding it a bit confusing.

I had thought that:
//
P.N 1
P.I 40
//

would set the index of pattern 1 to 40 but is having no effect. Another script uses:
//
P.N 1
CV 2 P.NEXT
//
which I thought would move the pattern one step on from where ever the index was so if the second script was triggered following the first it would read step 40 and then move the index to step 41. However the index doesn’t move to 40 and the pattern keeps looping around steps 0 to 7

Also found that commands like

//
CV 1 PN I X
///

Which i had thought would loop through each pattern number reading the index at X position, instead writes X to the current index position - really weird!

I also noticed that the documentation provided in the box uses the term pattern ‘bank’ and also ‘pattern number’ - just to be sure these are referring to the same thing ie one of the currently loaded script’s stored pattern data (0-3)

Is that correct?

Cheers,
Alex

1 Like

Thanks!
Any idea how I can have a trigger switch a pattern length between two values (that are not 0 and 1)? The P.L would start at 64, then on the 1st TR would switch to 32, then on the next TR back to 64, etc…
Apologies if I’m missing something obvious, here…

be sure to set P.L first. P.I and P.NEXT wrap around P.L

unfortunately there’s a bug with using PN for reading a pattern value. i’ll have it fixed in the upcoming firmware update-- many apologies! PN will work for writing values presently.

yes, bank and pattern number are used interchangeably, i should fix the docs for consistency

X EZ X
Y MUL ADD X 1 32

or:

X EZ X
IF X : Y 32
ELSE : Y 64

Thanks!
So X EZ X flips X between 1 and 0?
When X = 1, EZ X is false, so X becomes 0
When X = 0, EZ X is true, so X becomes 1
Is that how that works?
X would need to be set in the INIT script?

Moved colon, thanks, but still I cannot get TT to accept - IF P.I 0 : TR.PULSE C
Returns - TOO MANY PARAMS IF

However It will accept IF EZ P.I : TR.PULSE C

So I am almost there…