Comments (4)
For help with learning and figuring things out, I’d suggest asking on the Afterglow Gitter chat rather than emailing me directly, because that way there is a chance that someone other than me might be able to help faster, and there is a searchable public historical record, like there is here on GitHub, that can help others in the future. If the traffic on that channel picks up I will move it to Zulip like I have my other open source projects. But I have not done that yet with Afterglow.
from afterglow.
But I still plan to take a look at and answer your question here, I just need to remind myself of what the code I wrote to support initialization files does. I would also suggest that if you are going to be doing serious amounts of development like this (creating new fixture definitions and your own show setup) you would be much happier in a REPL-oriented workflow, using Leiningen to start Clojure and manage your class paths, and an editor with good Clojure integration like Emacs + CIDER or IntelliJ IDEA + Cursive, rather than launching Afterglow from the command line using java -jar
. I’d suggest setting up your own Clojure project that pulls in Afterglow as a library, then you can create and use whatever namespaces you want.
from afterglow.
So I think I may understand the problem here. Assuming you defined the cameo
fiixture in the afterglow.fixtures.cameo
namespace (so that it begins with (ns afterglow.fixtures.cameo …)
then it might be enough to simply reverse the order of your initialization files. Right now it is trying to load my-show
first, and loading it involves compiling it, which involves finding the afterglow.fixtures.cameo
namespace. Since you have not put that file on the class path, it can’t be found, and compilation fails. Swapping the files’ order in your command line will load the fixture definition first, so it will be available when my-show
loads, which should work.
But that will get quickly tedious, if you start having a lot of fixture definitions to load. It would be better to just put all the fixture definitions (and any other auxiliary helper namespaces you want to create) on the class path, so the compiler can find them when it needs them, rather than forcing you to list them all as init-files. It looks like you might have organized your src/
folder correctly for it to be used as a class path element, so you might find that java -cp afterglow.jar:src afterglow.core src/musiclight/my_show.clj
works. (Sadly you can’t combine the -jar
shortcut with -cp
to add other things to your classpath… trying to manually wrangle classpaths for Clojure projects gets tedious quickly, so setting up your own project in Leiningen and/or a Clojure aware IDE as I suggested above will probably be a lot more pleasant.)
from afterglow.
Swapping the file order indeed solved the problem. I set up Clojure with IntelliJ IDEA and used Leiningen, but I didn't really figure out how to use the Clojure REPL to start my project from there. It's not too bad though, because I run my finished project on a Raspberry Pi and I use the afterglow.jar there anyway, so I might as well use that exact approach when developing.
I think the easiest thing for now is just to point out in the readme that the order of the file arguments matters.
from afterglow.
Related Issues (20)
- Document new rotation options for patching fixtures
- Document how to use var-map in cues HOT 1
- Document build-aim-transformer and build-direction-transformer
- Add head information to channel assigners
- Document params/param-formula
- build-head-parameter-assigners needs snapshot parameter HOT 1
- Use multimethods for controller deactivation, perhaps also bind-to-show
- Effects not from cues don’t show in web UI? HOT 1
- Can’t bind to Push in Windows HOT 1
- Afterglow fails to launch on headless devices. HOT 6
- Support QLC+ Group (channel pair) information
- Don't comment out closing parens in translating QLC+ fixtures
- Color picker unusable with current browsers
- Add blueprint aiming tool to web UI
- Can't start standalone jar HOT 7
- Translating qlc+ fixture definitions fails HOT 13
- Ableton Link Sync HOT 11
- Push 2 is saving values even when they are unchanged
- Add analytics tag to generated API docs?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from afterglow.