All of these features have been somewhat vetted by the community, and all (except maybe W?) have been okayed by @tehn.
This thread will focus on the aforementioned features and operators, and the testing thereof. If you have things you’d like to see in later firmware revisions, check out the New Operators & Features thread.
Testers Wanted!
Testing Instructions:
Try out your favourite scenes.
Try new scenes with the new features.
Try out your most complex scenes
Build new complex scenes
If anything is unclear about any feature or op, just ask!
If anything breaks, document the script and post it in the thread with the symptoms
No sir. I don’t know what’s going on there, maybe an initialization problem with the execution stack. I’ll look at it this afternoon. Thanks for the report.
I’m at home now, confirmed the bevaiour, and am looking into it.
Yes, it’s the beta1 branch on my repo. You can check it out if you like, I’m sure the relevant code is between teletype.c and state.c
Think I know what it is. The fix for P.RM was applied to the wrong place. I’m going to clear up the script number fencepost questions by making an enum for valid script numbers.
thanks! also just found that external trigger inputs at a regular tempo also have occasional missed script executions.
feature change discussion regarding LAST. i feel that it’s useful for scripts to be able to get the LAST time for other scripts. ie, the metro checking when the last time input 1 was triggered, and doing something if that time is greater than a threshold. there’s currently no way to do this with LAST always reading the script it’s on. i’d like to propose the LAST x where x is script 1-8 (we can roll in 0 and 9 for I and M).
of possible use, i propose SELF which simply returns the script number. ie, SELF run from script 1 returns a 1. so LAST SELF would do the current behavior in 2.1beta1. i can imagine the further possible use of THIS when copying the same line to several scripts, ie TR.P SELF onto scripts 1-4 (again, mundane application, but there are more complex cases).
This didn’t fix it. I had indeed made the P.RM bugfix in the correct place. I’m going to add bounds checking to all the code that uses a script number from userspace. I don’t think any of my changes should have had this impact, but the merge process was bumpy and maybe es_init, es_push, and es_pop need a second set of eyes. I’ll have a peek there after I’m done.
What does it return if it isn’t run from a script? (e.g. live mode, a delay…) 0?
You’ll need to make sure that 0 doesn’t cause issues if it’s passed to SCRIPT or LAST, etc, etc. (I don’t think it does though… as scripts are 1-indexed).