Wow, this opens great perspectives !

Just catching up with this thread… so sorry that some of the replies are late…

I believe that is correct, I think the use case would be for breaking a ‘song’ up into multiple scenes, but still allowing some communication between scenes by setting variables.

SCENE is banned from the init script because you can lockup your Teletype requiring a firmware flash to fix!

e.g. if the init script of scene 1 calls SCENE 2 and the init script of scene 2 calls SCENE 1, then you Teletype will bork. Worse… when you reboot the system it will probably try to re-run the last saved scene… and the only way around it is a firmware flash.

IIRC I discussed getting rid of the mode saving and there was some pushback, but for the life of me I can’t remember why… it might have been something to do with some users only using a keypad. Personally I think it should go…

1 Like

I agree, and @EqualTemperament’s above suggestion to only save mode when saving scene should satisfy anyone running without a keyboard.

I have a feature request for TT.

Would it be possible to add a “SEED” op to expose/set the random seed used internally?

I would like to be able to get the exact same numbers from random elements every time I run a Scene. Sometimes when composing generative, a lovely serendipitous sequence will emerge - it would be great to be able to repeat it and develop it further using other modules whilst knowing that TT will always play it the same way with the same seed.

Is it possible? Am I alone in wanting this? The CHAOS ops do get part of the way there but it would be much quicker and more useful (to me) to have set a SEED which affected all randomness.

1 Like

pretty sure this would be incredibly easy to implement. from what I can tell the RAND and RRAND ops are just calling the stdlib(standard library) function rand(). so we could just add an op that calls the stdlib function srand() to set the seed.

http://www.cplusplus.com/reference/cstdlib/rand/

http://www.cplusplus.com/reference/cstdlib/srand/

3 Likes

Don’t mean to hijack but the above request had me thinking. Would creating a “Random Number from Normal Distribution” OP be feasible?

RANDNORM x y (x=mean, y=standard deviation)?

Far out idea. Given the Teletype and Ansible are built on the same hardware, is there space in Teletype to port Ansible apps to run natively? Im imagining all the timing and clocking would still be handled by Teletype ops. Something like an extra page for when a grid or arc is plugged in to Teletype, which allows you to select the behaviour (ie existing Grid Ops, Kria or Meadowphysics)

I dont think its such a huge issue to tie up the TR/CV of Teletype for this purpose now that Teletype can communicate with Txo for extra CV/Gate outputs

Or maybe some Arc ops in the future? I have an Ansible, Teletype and Grid (and an Arc incoming). When the Arc arrives id like to use them all together, but at the moment that means using Arc with Ansible and writing my own Grid ops sequencer with Teletype, or buying a second Ansible.

1 Like

Great! And it would be possible to both get and set SEED? Or is the seed value too many bits? Just setting the SEED for RAND and RRAND would probably be enough.

Interesting! I’m not sure what the implications are for this. What advantages do you see over setting a single SEED value?

A Random Number from a Normal Distribution would provide a central tendency with adjustable “spread” versus, say, a uniform distribution which i believe RAND provides.

I think this could be useful if you wanted to modulate something and found a sweet spot (mean) and wanted the modulation to vary about this mean by a certain amount (standard deviation).

1 Like

you’re probably aware of this, but the simplest way to approximate that is to take some number (N) of uniform-distributed random numbers and average them. the higher the N, the better the approximation. of course this also linearly increases the computation time.

the Ziggurat algorithm is on average more efficient than high-N approximation if statistical soundness is needed. but its an iterative algo and my hunch (could be wrong) is that the worst case is just as bad, and that for music application it’s not a great tradeoff.

settable mean and deviation is just an offset and scaling factor. asymmetrical scaling can also be pretty useful for music.

TL/DR: yes. kinda expensive.


huh, your’re right, surprised it’s not using this even quicker and dirtier LCG from the libavr32 sources:
[ https://github.com/monome/libavr32/blob/master/src/random.c ]

i made this for aleph noise generator and it seemed pretty good. think you wanna be a little careful with seed values if you want this to have long periods (aka “random looking”)

3 Likes

Gaussian is cool in graphics… for music I expect it’d be better for micro-scale stuff, like granular or for noise as an FM source, than for the “sequencing” time scale Teletype is generally dealing with. But maybe that’s just me.

Hmmm, now I’m thinking about Perlin noise and erosion algorithms as compositional elements :nerd_face:

1 Like

Gotta disagree, different distributions (normal, 1/f, 1/f^2) have extremely different aspects when used as coarse-time parameter sequences (especially pitch.) all tend to feel more “natural” than flat distribution.

2 Likes

I admit that was just an off-the-cuff guess based on not really trying it :slight_smile:

1 Like

I’ve been using teletype to clock the looping delay mode in Clouds and the pitch warble whenever I interact with the teletype UI is certainly problematic - especially in live use, so if there’s a fix for this it would certainly make me happy!

Best fix I know of is to get a Telex Output, the timing seems to be very stable.

i’ve removed saving last mode (which is what caused the metro timing issue) in the latest beta. it was originally posted in Teletype 3.0 thread as that’s where we were discussing the issue with scenes getting overwritten, i’ve updated the OP here as well to avoid confusion. if you have the time want to give it a try?

3 Likes

Metro is +/- a few milliseconds best case, isn’t it?

That much jitter will definitely cause audible issues with a clocked delay and some other things.

yeah, it’s not rock solid (detailed measurements in this post) but removing saving last mode to flash should provide some noticeable improvement.

1 Like

Yeah, I recall reading that: +/- 1ms will probably be somewhat audible if you got consecutive timings at the limits.

Is there still an issue with scrolling in the tracker screen interfering with metro stability? I always use a TXo for clocking, so I haven’t paid attention in quite a while.

any scrolling will probably have an effect but hard to say how big. there are also many other variables (i2c / grid if you’re using grid, delays) that might also contribute, so scrolling might not actually be the most contributing factor.

1 Like