Tom… honestly, as long as it works, I vote for just using a windows signal that you expect won’t ever be sent by anything else and use that for restart on Windows. Not our fault they don’t support 40+ year old standards!
···
On Thu, Apr 12, 2018 at 6:29 AM, Steven Nicholson steven@airbag.co wrote:
Yeah I posted that too soon. 
Um yeah - I don’t think there’s anything quite like it. I figured you’d made some magic somehow. Not a thing I’ve ever tried before. Probably possible for dot net applications… but otherwise … :-/
I’m just going to fire up my vm and work there for now. 
–
You received this message because you are subscribed to the Google Groups “Maniacal Labs Users” group.
To unsubscribe from this group and stop receiving emails from it, send an email to maniacal-labs-users+unsubscribe@googlegroups.com.
To post to this group, send email to maniacal-labs-users@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/maniacal-labs-users/CAE7n_t02raJHOV3hJBrd%3Dcgpz9xoX7sZZkfFtNfDDE4M7tFajw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
On 12 April 2018 at 20:12, Tom Swirly tom@swirly.com wrote:
Oh, that’s really interesting.
Actually - on Windows right now, Restart won’t work at all.
I can tell you that for sure.
In fact, if you know something about this, can you tell me - if I were to send a signal on Windows to restart bp
, what would that signal be?
On *nix, we use SIGHUP, which is the classic “reread your configuration files and restart” signal, but that doesn’t exist on Windows.
I have a list of the ones that MS supports, but none of them jumped out at me as “restart”
–
Steven Nicholson
Designer / Director
steven@AIRBAG.co
[AIRBAG.co](http://AIRBAG.co)
mobile: 61 408 446 978
studio: 613 9429 7100
[104 Dover St, Cremorne
Victoria 3121, Australia](https://maps.google.com/?q=104+Dover+St,+Cremorne+Melbourne,+Victoria+3121)


On Thu, Apr 12, 2018 at 12:07 PM, Steven Nicholson steven@airbag.co wrote:
Cool thanks.
For anyone else following along - bp has to be installed as administrator on windows or bp restart (and I assume the other PID dependant operations) won’t work.
–
/t
https://tom.ritchford.com
https://tom.swirly.com
On 12 April 2018 at 17:55, Tom Swirly tom@swirly.com wrote:
For the reload, you need to be able to call out to the bp program, like this:
bp restart
It finds the process ID of the existing animation process and sends it a signal to restart. You can experiment with it just by typing that into another terminal window.
I wasn’t even thinking a websocket implementation, though we already support websockets for our simulator. I was thinking of just blasting things down a regular http connection, just because it’s simpler on the client end… and because there’s no need for a return channel.
–
Steven Nicholson
Designer / Director
steven@AIRBAG.co
[AIRBAG.co](http://AIRBAG.co)
mobile: 61 408 446 978
studio: 613 9429 7100
[104 Dover St, Cremorne
Victoria 3121, Australia](https://maps.google.com/?q=104+Dover+St,+Cremorne+Melbourne,+Victoria+3121)


On Thu, Apr 12, 2018 at 7:00 AM, Steven Nicholson steven@airbag.co wrote:
Everything I’ve built on this project so far is C# (mono).
But - how about we try the soft reload first, since it’s low hanging fruit. How does that work exactly?
In any event I still have to build my electronics, setup the drivers, setup the layout, setup the animations before I can even see if the soft reload lag bothers me or not. And I need to do all of that regardless.
If it does - I can see the general design pattern you’ve used in the KeyBoard control class so worse comes to worse I can have a crack at it myself.
Not in my best interest to say this obviously; but honestly if I were you I would think ArtNet or OSC would be a higher priority than this.
Than again, a websocket implementation (rather than raw UDP comms) would be a fairly unique (and welcome) addition in this space.
If I write anything I think you can use, I’ll fling it back at you.
–
/t
https://tom.ritchford.com
https://tom.swirly.com
On 11 April 2018 at 18:28, Tom Swirly tom@swirly.com wrote:
Interesting question as to how long the reload would take on a Pi.
I coded the reload as a “soft reload” - in other words, it does not reload the program but just the *data. * This is precisely because reloading the program is unfortunately quite slow on the Raspberry Pi (5 seconds or so). I did some timing experiments, and I feel that it would be hard to make those 5 seconds just go away as about three of them are intrinsic to “starting up Python and loading the libraries”.
Now, even with the soft reload, we shut one project down and then start the next one up - which means that the lights do go to black for a tiny period of time and then restart. I haven’t actually tried to measure that period, but it is noticeable even on my desktop - on the other hand, I’m super-picky, so my guess it is 50-100ms, short enough that it doesn’t register as “time” even to my pickiness.,
Without some sort of brutal trickery, that tiny gap is going to be hard to get past. Now, brutal trickery isn’t out of the question - I find that artefact unaesthetic - but a little thought
If you wanted to have no gap, which honestly is better, the control mechanism will have none whatsoever. Literally one frame would be one animation, the next frame another.
Whipping up that remote control control (er, I need a better name, right? :-D) would be extremely simple for me. Basically, you’d just send JSON - just an address.
For example, if you had a collection of animations, named one, two, three, then you’d just send string messages like this containing an address
“animation.index = one”
“animation.index = three”
For more complex things you’d send a list looking like [address, value, value…] which I can code at the same time, even though you probably wouldn’t need it.
What language does your server run in?
–
You received this message because you are subscribed to the Google Groups “Maniacal Labs Users” group.
To unsubscribe from this group and stop receiving emails from it, send an email to maniacal-labs-users+unsubscribe@googlegroups.com.
To post to this group, send email to maniacal-labs-users@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/maniacal-labs-users/CAOuQWfVY3dUGKxvEuzdU%2Bx7XYOtDwcpKEd8sNSL_4JFq4_whYg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
–
Steven Nicholson
Designer / Director
steven@AIRBAG.co
[AIRBAG.co](http://AIRBAG.co)
mobile: 61 408 446 978
studio: 613 9429 7100
[104 Dover St, Cremorne
Victoria 3121, Australia](https://maps.google.com/?q=104+Dover+St,+Cremorne+Melbourne,+Victoria+3121)


On Wed, Apr 11, 2018 at 10:04 AM, Steven Nicholson steven@airbagproductions.com wrote:
Interesting thought there Tom, thanks for the prompt response. That latter does seem like less work from my perspective -and no python. 
On a pi you’d expect a complete reload of biblio to be pretty quick? as < 100ms?
In my case the setup is probably pretty simple, probably about 300 WS2812 configured as a linear strip, and the animations would be pretty simple (and only maybe 3 seconds long).
On Wednesday, April 11, 2018 at 5:57:05 PM UTC+10, Tom Swirly wrote:
Control classes are just finished, as you have observed, but are so far really stable, if basically undocumented. (I’m working on documentation but I’m a week at least from “controls” which will be close to the end - however if someone were using this, I could easily change the order I did it in.)
Indeed, there are two ways to do this - one of which doesn’t use controls at all.
- We can write a custom control that accepts messages of some type from your main app
- You can rewrite your project file and then send a message to bp to reread its configuration and restart
That second mechanism is pretty easy, and it all works today.
On Wed, Apr 11, 2018 at 6:37 AM, Steven Nicholson ste...@airbagproductions.com wrote:
On Wednesday, April 11, 2018 at 2:35:28 PM UTC+10, Steven Nicholson wrote:
Hi gang,
Love the premise of bibliopixel. New to it, but looking forward to getting cracking.
I’ve got a raspberry pi project I’m working on. What I want to do is run bibliopixel continuously, then send it messages from another app I’m building to change animations.
Think of it as an idle animation, then getting special event driven animations. So bibliopixel is a companion service to my main app.
Seems to me that it should be doable with the ‘control’ classes. Either by sending midi messages on loop back or rolling my own extension based on ‘socket’ or similar. But not a lot of documentation there, and I’m a py noob. (c# etc normally)
Any pointers? People done this sort of thing before? Example code anywhere?
Thanks
Just saw the post from March 1st! I gather I might be something of an early adopter here…
–
You received this message because you are subscribed to the Google Groups “Maniacal Labs Users” group.
To unsubscribe from this group and stop receiving emails from it, send an email to maniacal-labs-users+unsubscribe@googlegroups.com.
To post to this group, send email to maniacal-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/maniacal-labs-users/98ca7571-99d9-4a44-853d-168f89957b51%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
–
/t
https://tom.ritchford.com
https://tom.swirly.com
–
You received this message because you are subscribed to the Google Groups “Maniacal Labs Users” group.
To unsubscribe from this group and stop receiving emails from it, send an email to maniacal-labs-users+unsubscribe@googlegroups.com.
To post to this group, send email to maniacal-labs-users@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/maniacal-labs-users/ad41ec70-2146-476d-8a6e-5cf883abcbdb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
–
/t
https://tom.ritchford.com
https://tom.swirly.com