Yes. There only is a beta firmware that adds TT support for the Orca sequencer firmware for the White Whale.
I understand that this will also become part of the next official firmware version.

perhaps a new “ver” command could report the current firmware?

also, an idea after playing with the tt for only a couple of days, and barely skimming the documentation, so not sure if this is good or not, and may be beyond the internals.

how about a “macro” or “preprocessor” command system, to make scripts more readable, and potentially briefer.

like the I initialiser script, imagine a P preprocessor script that also runs on scene init, but declares some macros (i.e. abbreviations) that other scripts could use.

to use a simple example, imagine this:

P (Preprocessor Scipt):

GO=M.ACT 1
STOP=M.ACT 0

in either scripts or live mode you could then just type GO or STOP

there’s lots of more clever things that could be done this way of course.

comments, thoughts? perhaps overkill?

Def not overkill.
If my comments are not useless (it seems not, thus far) then your input will certainly be valued here.

i had a macro system in the initial specification. while it does add code readability, it introduces a layer of complexity that can make a real mess.

ie. say you have a macro defined, and you use it in a bunch of scripts. then you redefine the macro, and suddenly all your scripts are busted. what’s worse-- this would mean i’d need to have runtime script re-validation. at the moment, commands are validated on entry, not execution. this is a massive optimization, allowing for super-rapid execution of commands.

so i’ll tentatively consider this for some future update, but it’s not high priority for me. i think the present system is helpfully minimal.

version is shown on bootup in live mode!

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!