Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jun 11 03:19

    brunchboy on master

    Update to link to netlify hoste… (compare)

  • Jun 11 03:01

    brunchboy on master

    Update doc readme to reflect us… (compare)

  • Jun 10 21:40

    brunchboy on master

    Fix typo in function name. (compare)

  • Jun 10 21:18

    brunchboy on master

    Remove insecure HTTP link, than… Try simplifying API doc path, u… (compare)

  • Jun 10 20:48

    brunchboy on master

    Working on netlify doc build. (compare)

  • Jun 10 20:27

    brunchboy on master

    Update Clojure version. Update Codox version. Try setting up Netlify build fo… (compare)

  • May 27 18:14
    brunchboy edited #70
  • May 27 18:12
    brunchboy edited #70
  • May 27 18:12
    brunchboy labeled #70
  • May 27 18:12
    brunchboy opened #70
  • May 22 05:21
    brunchboy closed #69
  • May 22 05:21

    brunchboy on master

    Update jquery.mincolors color p… Start wedding reception show. (compare)

  • May 22 01:44
    brunchboy opened #69
  • May 22 01:42
    brunchboy closed #23
  • May 22 01:41
    brunchboy closed #65
  • Apr 29 21:08

    brunchboy on master

    Fix more broken images due to w… (compare)

  • Apr 29 21:03

    brunchboy on master

    Fix more broken images due to w… (compare)

  • Apr 29 20:56

    brunchboy on master

    Try without line break? (Older … (compare)

  • Apr 29 20:53

    brunchboy on master

    Fix image macro with comma in a… (compare)

  • Apr 29 07:07

    brunchboy on master

    Make guide base URL independent… (compare)

James Elliott
@brunchboy
I’m not sure what you mean by separate ports, but I haven’t tried combining Max, afterglow, and Live at the same time, so there may be some contention. I haven’t seen that exception either, but I have Max 7.3.4. Cycling ’74 deprecated the Max/Java binding even before Ableton bought them, so perhaps you are starting to run into breakages?
Joen Tolgraven
@tolgraven
Oh I mean like it's trying and failing to connect to the User port, the live script uses the Live port. Hmm yeah was thinking it was something about the new max version/binding or a paths issue but like I said I tested with max7 and your precompiled jar and had the same problem
Joen Tolgraven
@tolgraven
So looking a bit closer at the stacktrace I think what’s happening is that type of bang actually results in the max Atom being passed to afterglow.controllers, which obviously can't resolve it
Joen Tolgraven
@tolgraven
And the push2 error isn't actually the midi port (which makes sense) but from libusb in .openPushDisplay, "USB error 3: Unable to claim interface 0 of Push 2 device: Access denied (insufficient permissions)". Max console errors are a bit scrambled so didn't see the full exception until I ran my regular lein setup, sorry. Any hunch? Might get in touch with ableton whether they've made any breaking changes, because I never tested running ableton+afterglow before updating I can't say whether it was actually working earlier. Happens even in live9 and with a clean set/no M4L loaded so it's definitely either something in the new firmware, or somehow related to my setup...
Actually I should get in touch with them either way since the failing to claim goes both ways and unlike Afterglow the Live log doesn't show any errors when it happens, which definitely ain't right no matter what the root cause
Joen Tolgraven
@tolgraven
On a less aargh note, I'm looking at using libmapper for signal passing on multiple fronts in my larger project, but seems to me it'd be just as spot on for more robust OSC support in core afterglow. Has Java and max bindings and everything, looks like it's been pretty dead for a long time but just started seeing active development again in the past few months. What do you reckon?
James Elliott
@brunchboy
Oh… trying to share a Push 2 with Ableton running probably won’t work, you’re right, because Ableton has the Push display open, and that’s not something that can be shared like a MIDI port can. I don’t think Ableton has really thought about trying to allow user mode applications to directly write to the display.
When I was testing Push in Max was back before the Push 2 had come out, and was without Ableton Live in any case.
As for libmapper, I don’t know anything about it, I am afraid!
Joen Tolgraven
@tolgraven
Ah ok my bad. Tho I'm fairly sure I saw a (paid) lib and M4L projects using it that could share the screen and temporarily take over with like basically the clip note view ableton fomally implemented in live10
James Elliott
@brunchboy
If you can find an API that supports that, please let me know, and I will see about adding it to Wayang!
Joen Tolgraven
@tolgraven
sigabort's P2D+ is what I was thinking of. Further inspection reveals he's patching the libusb dylib in Push2DisplayProcess.app, so prob hacky and hard to replicate without reverse engineering skills far exceeding mine (unless he's just flipping a bit to turn a call for exclusive access into non-exclusive? will investigate), but the fact it's at all possible is definitely encouraging... as a stopgap I guess just duck the exception and continue with straight MIDI? so don't get the display but at least the rest
Joen Tolgraven
@tolgraven
mea culpa, the patched libusb is only required for drawing on top of Live. Simply grabbing display from Live and later handing it back works from the free standard version. So def doable through regular means, will keep looking.
http://sigabort.co/Assets/Code/Gridlock/P2D_1.4.0_Standard.zip
Joen Tolgraven
@tolgraven
welp dumb of course there is no way to share something previously claimed without hooking into its context. Then again no need to go so low level, use the Live API and ask the Push liveobj to disconnect, then claim. So on failure, keep handle open until ready to claim. Then add a detach() method to Wayang so can go back and forth without full re-init. Makes sense no? Gonna give it a go but will probably need help for the finer points :)
Joen Tolgraven
@tolgraven

huzzah! in Push2/setup_component.py

def make_it_go_boom_button(self, _button):
    self.make_it_go_boom = True

now just gotta figure out which one is the make_it_go_boom_button and press it, should surely do the trick lol

Joen Tolgraven
@tolgraven
Yeah after poking around for ages and realising disconnect() went too far and set_enabled() not far enough and trying in vain to mod the push2 script, hit me to just route it through virtual midi, point life to that, yank it out, pkill push2. Too fucking easy!
James Elliott
@brunchboy
Sounds like some cool progress! Do you have sample code I could port back to Wayang?
Joen Tolgraven
@tolgraven
Haven't gotten on it yet hehe. Started trying to figure out how to create a virtual port from clojure using coremidi4j but it's a bit over my head :/ but also realised probably nothing needs to be done to wayang actually, would be cleaner to keep the handle open I guess but bottleneck afa connecting to push isn't in wayang, but in the afterglow auto midi port scan.
Joen Tolgraven
@tolgraven
My chops are developing at a decent pace at least, cleaning up much of the repeated code from examples.clj so have for example a general make-osc-dimmer-cue instead of separate ones, and other stuff like that to make everything less configy/scriptish, has been doing wonders for my clojure skills :)
James Elliott
@brunchboy
That’s delightful! :D
joedemax
@joedemax
James Elliott
@brunchboy
That’s really interesting, @joedemax, I will have to see if their JSON format offers any more useful information than the QLC+ format they offer, and if so, write an importer for it. (I can already import QLC+ format files.) People will almost certainly still need to add Afterglow-specific things like the formulae to figure out exactly where in space the head rotates for particular DMX values, but it is always nice to have a starting point.
NHG‮
@NHGmaniac
hi! @brunchboy asked me what i'm doing with afterglow, and linked me here. currently i'm just experimenting and learning, but i plan on doing lightshows for a small band (and maybe some electronic acts too) with it. currently i use QLC+, before that i used dmxcontrol, but i always had this idea of writing a live coding lighting controller, i had experimented with some simple effects using python and the ola api. at some point i stumbled across this project and thought, wow, thats exactly what i was looking for. but i have no background in clojure, so i'm currently learning that aswell, maybe i'll be able to contribute in the future.
James Elliott
@brunchboy
Thanks @NHGmaniac and welcome! I’m happy to answer any questions you might run into, and am glad to have a reason to poke around a bit in afterglow again. I have been pulled into side projects like Beat Link Trigger for a while (although I am not complaining because that got me put on the guest list for the Ever After music festival near Toronto this coming weekend, and backstage passes to meet some producers and artists who have been using it! :grinning: ) With any luck I may be able to interest someone in that space to experiment with afterglow as well.
NHG‮
@NHGmaniac
Thanks for the welcome, @brunchboy ! Thats pretty cool, have fun at the festival :) I actually am currently stuck on a problem, that is i can't get spatial effects to work, i patched my fixtures with coordinates and tried the example hue-gradient effect, but all fixtures show the same color.
James Elliott
@brunchboy
Can you share your files somewhere? I could take a look and see what’s not right, because I’ve definitely used spatial effects many times.
NHG‮
@NHGmaniac
i'm sure its my fault, i just could not find my mistake yet :)
the show is in src/afterglow_pg/testshow.clj, and you'll have to adjust the dependencies in the project.clj as i've set afterglow to 0.2.5-SNAPSHOT (local build of the fix i pr'd)
Joen Tolgraven
@tolgraven
I mean you only have two fixtures, those bound the show space, and 0deg == 360deg right?
NHG‮
@NHGmaniac
nvm, i just found my mistake, and that was exactly it! thanks, i should try rubber duck debugging more often...
Joen Tolgraven
@tolgraven
Hehe. Or with something like this, nvm what fixtures you've actually got up, just patch more random shit then watch the raw output for clues
NHG‮
@NHGmaniac
i think i tried that before and it did not work, but i must've done some other small mistake back then :) so, next question: i tried making a simple effect that spreads a 'dimmer wave' over the the whole grid, line 170 in my showfile, inspired by the can-can chase in examples.clj, but i can't get that to work (all dimmers stay at 0)
Joen Tolgraven
@tolgraven
heads (generally) ain't got no dimmers
NHG‮
@NHGmaniac
i'm trying to just use the position of the head (which is the position of my fixture, as its just two led par64's) as a spatial parameter for it's dimmer, i'm not trying to apply a dimmer to the head
NHG‮
@NHGmaniac
anyways, thanks for the help so far, i'll have to pack stuff and go to bed now. i hope i'll be able to play around with it more on the weekend.
Joen Tolgraven
@tolgraven
So if you have some heads with independent dimmers you'd have to code it so the rest can find their parent dimmer for it to work. Compare sparkle and dimmer-sparkle and you'll grok what I mean
NHG‮
@NHGmaniac
will look into that, thanks for the pointers!
Joen Tolgraven
@tolgraven
No worries. Check that fn, especially the beginning of the let, with dimmer-fx/gather-dimmer-channels and dimmer-fx/gather-partial-dimmer-function-heads
Joen Tolgraven
@tolgraven

As for me, almost no clj/afterglow past few months :( full focus on making my device/firmware design proper robust and modular/IO agnostic, with it its own lil rendering loop of adjustable effects working incoming pixel data...
Still all about using afterglow as a hub: running trad fixtures, providing ctrl data for the strips, interfacing with Max<->Live for sequencing etc.
But scaling up, animation data is simply (and unsurprisingly) better sourced from existing, purpose-built and performance-optimised tools - jitter, madmapper, whatnot.

But since I’m not a real programmer, just trying to become one (soon enough, if I can keep up my current learning curve), last having used c++ way back in high school... the finer points of it are proving... tricky ;) Still, cool shit in the pipe for sure.

Point of spiel: @James could I maybe catch you on skype some time? Got lots of questions and something of a pitch for you.

Sorry @brunchboy lol
James Elliott
@brunchboy
Hey, @tolgraven thanks so much for helping out, your answers had already steered @NHGmaniac in the right direction before I even was notified that there was discussion happening here! We can try to figure out a Skype session sometime, but we’ll have to schedule it because I only use the application every couple of years. It will have to be after this weekend, though, because I am about to travel to Canada for the music festival where I’m meeting some of my most creative and enthusiastic users of Beat Link Trigger, and will be able to see how they use it in production and get new ideas. :grinning:
Joen Tolgraven
@tolgraven
Fair play! And very glad to hear you’re getting (much well-deserved I was gonna say, but that would be an almost criminal understatement haha) user uptake for other open source projects :) sorta begs the question tho, if you yourself barely use afterglow, and it must’ve been a given it’d always be very niche, how did you find the time and energy to make it so complete and incredibly polished?
James Elliott
@brunchboy
Thanks so much! I’m confined to my phone for the next few days so I’ll write less, but I’m delighted that you have looked deeply enough into afterglow to see such details, and that you feel this way. It is a project that perfectly combined many of my passions and obsessions, and even though life is too busy right now for us to find and stage the kind of gigs that would benefit from it while working full time in my challenging and interesting day job, I do hope to someday connect with a lighting designer and venue who is willing to experiment with this approach and collaborate on taking it further.
NHG‮
@NHGmaniac
I'm now running my first lightshow with afterglow (and qlc+ as backup). thanks to your help i was able to get going relatively quickly - and i really like the live coding aspect of it, its just some much fun! thanks for creating something awesome :)
it's just a very small act, and it was a spontaneus decision, but it's a lot of fun https://sozial.derguhl.de/media/581cb934-470b-44a7-92f3-8e1014c9a1a4/Tusky_1528497353695_LUZ7FIU8YV.mp4
James Elliott
@brunchboy
That’s so cool! Thanks for sharing it.
Joen Tolgraven
@tolgraven
Alright so the modifications I've made so far to afterglow proper are probably way too specific to me to be any general use, but I now have lots and lots of likely fairly useful code for the front end, to generate maps of variables for cues, creating lfos and other params from those vars, and creating pages of cues from all of that. Very much needed I reckon, since the current state of the example file probably scares off both those versed in, and those unfamiliar with lisps, in equal amounts... Question is how to incorporate it. If I put it up do you have time to go through it and help break it up into a few sensible namespaces?
Joen Tolgraven
@tolgraven
so instead of a massive raw vector of maps for each damn cue it's maybe like :variables (cue-vars :beats :cycles "blue" (alter-start :fraction 0.3) (make-var ["spread" 0 -45 45] :centered true)). Also visualising lfos in color-fn, and other stuff to make things purrdy. https://drive.google.com/file/d/1lzsd1oeS7GcE4vRCeli0u_HHXRRgYdoG/view?usp=sharing
James Elliott
@brunchboy
This is very exciting, Joen, I am so glad that you are making such progress in exploring afterglow! I am extremely busy right now trying to finish of a major new feature in Beat Link Trigger, which will allow people to synchronize Pioneer CDJs to other music being played by any application or device that supports the Ableton Link protocol, so I don’t know when I will be able to focus in depth on this, but could I suggest you try writing up your new helper functions as pages on the afterglow Wiki and then as I do have time I can see about helping organize them and pull them into the actual source? As you noted, many of my existing examples are bizarre, complex, and really useful only to me as I was shaking out features in the core engine, so this sounds like it will be a great help in making it more broadly useful and accessible. Thank you so much!