Wasn’t sure if I should post this in the xStream thread or not. Sorry if it needs to be.
I’m confused about the random seed in xStream. I.e., I can’t reproduce the same sequence of random numbers. Pls help me Danoise.
_ PS: Now, thinking about it I see a reason to introduce a couple more xStream events - because, you would also want to reset the seed when output is first started. _So, if you can wait until the next release I will introduce a set of features to make pseudo/seeded random numbers fully usable
I’m assuming your PS will address these questions, but maybe I just did something wrong with that event handler? Anyways,
I create a new model, and simply give it one line:xline.note_columns[1].note_value = math.random(36,48) .I keep applying to the selected track, but I’ll get a new random sequence every time**.
If I give the model a second line,math.randomseed(0),and I apply to the track, every note is the same note***. I’m guessing this is because of the behavior of xLine*?
So I get rid of that second line. But now I was clever and thought about setting the random seed in the scripting console; maybe that can set Renoise’s global random seed? So I enter the commandmath.randomseed(0)directly into the terminal. A satisfyingly greenmath.randomseed(0)appears in the console. After I played around with that, I realized that I_could_ reproduce the same random sequence. But I have to entermath.randomseed(0)into the terminal every single time before I apply the model to the track. If I don’t, I get a new sequence every time I apply**. (I explain further below at the footnote**)
Is that event handler supposed to take care of that? I did exactly as you said, but I still get a new sequence every time I apply**.
I’m so confused
*I wish I could confidently say I got that behavior because xLine re-applies the model at every line in the track; if I reset the seed at every line, of course I’ll get the same note over and over.
But that’s the thing, I have no exact idea how xLine operates. I tried to read the lua code, but I couldn’t make heads or tails of it. I wish your documentation would describe it better. I wish it said something like, “xLine has two methods, note_columns and effect_columns”, “See renoise.NoteColumn for details on editing note values”, “here’s an example on how to blah blah blah”. Instead, I’m faced with these cryptic function names with cryptic descriptions that mean nothing to me. I have no exact idea how xLine or xinc works. Only a confident guess [of their behavior] after experimenting around with them. (I don’t even know what xpos does).
This is why I’m having such a hard time. There’s no “xStream for Dummies” that I can pour over. All I have is the many examples, with no line-by-line comments, and the cryptic documentation with “functions” that aren’t even used in the examples. I hate being a whiner, but I seriously am so confused because of this.
**Well, I don’t exactly get a new sequence every time. I get areproduciblesequence of sequences. If I reset the seed in the terminal, and apply the model three times, I get three different sequences. But If I reset the seed, and apply the model three times, I’ll get the same sequences (but they’ll all be different). I made this picture (at bottom) for clarification, and in case you need to reproduce this behavior.
I get the same behavior if I use the event handler you described. If I set the “rnd_seed” argument value to 0, I can get the same sequence of sequences. But the only way I can reproduce the sequences is if I change the argument value to something else, apply the model to the track, and then I change the argument value back to 0 (and apply to track). So am I doing something wrong?
***I don’t really care about an answer for this one, but I thought I’d let you know. In this situation, I’d expect xStream to fill the column all with the same, but a different note if I change the seed value. If I set the seed to 0,1,2,3… (and apply after changing) I keep getting “C-4”. But if I type in an arbitrary number, I get something different. But if I increment this arbitrary number and apply again, it’s the same note value. No matter how much I increment the seed.
This is the picture which clarifies what I mean by “sequence of sequences”.
^ Right here, it should say “step 3”, not “step one”.