-
Notifications
You must be signed in to change notification settings - Fork 35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sequins.lua library #387
Sequins.lua library #387
Conversation
Specifically I'd love feedback on naming & syntax. Use of The basic usage seems very clear & satisfying, but I'm not entirely sure I've approached the more complex ideas the best way. Having nested sequins is really powerful, I just want to make sure i'm providing the clearest interface into that complexity. |
super exciting, i'll sit with it and let it sink in so i can give proper feedback on syntax. fyi it looks like some |
thanks for the note re: public. i'd like to keep them separate for now, so i'll go do some git fu... |
i really like the syntax-- that the simple things are straightforward and nesting allows for some weird meta-exploration. a full tutorial/study on this would help people see the full potential. looking forward to playing! |
i've been playing around with this for a bit this evening and it's super fun, but I've been getting a runtime error in druid when trying to use the select method |
@rbrt-fm i just pushed a new commit fixing the select method. lmk if it fixes your problem and i'd love to hear your thoughts on using the library! |
* can now update output[n].scale(_) with .scale = {note list}, so it can be dynamically set like a regular table (#373) * fix bug where aliasing an ii address before use could stack overflow (#374) * querying output voltage now returns the shaped & scaled voltage (real voltage at jack) * add just intonation helpers: justvolts(), just12() * support input scales: input[n].mode( 'scale', {...}, 'ji') * support output scales: output[n].scale({...}, 'ji') * Python based bootloader support and dfureset (#377) * `make pydfu` to use python3 dfu bootloader * `make dfureset` jumps to bootloader from make * `make zip` now builds dfu file as well as binary * add instructions for using pydfu instead of dfu-util * Frequency detect mode for input[1] (#382) * `input[1].mode('freq', interval)` reports frequency of a signal connected to input 1 (no support for input 2) * `hztovolts(hz, <ref>)` helper fn converts an input hz equivalent voltage (uses default reference to match Just-Friends & W/Syn) * print an error to usb host if event queue overflows (#391) * clock.lua module added (#393) * New calibrate.lua & underlying engine (#397) Breaking: * `cal` lua module refactored with new API * calibration no longer auto-runs if no vals saved (ie new factory modules) * `util/recalibrate.lua` demonstrates usage, and can be used for factory calibration (or at home) * double userscript storage size to 16kB (#396) * add jacktest.lua * strip debug info from crow lua libs for dramatic ram reduction (#395) * Sequins.lua library (#387) * add sequins library * ASL2 (#399) ASL2 library. Runtime operates in C for greatly optimized performance & sample accuracy * introduce Caw_printf * Public.lua library for sharing parameters (#394) * after calling init() crow sends '^^ready()' * add 'public.view' for enabling live monitoring of in & out voltages * Oscillate asllib fn (#407) * add 'oscillate' asllib fn * add note about not using `note` in asllib. kept only to avoid the breaking change * add quote library & remove quotes global (#412) * support ii getters from teletype (#403) Co-authored-by: brian crabtree <tehn@monome.org>
Fixes #359
Introduces a new core library to crow for imbuing tables of data with 'behaviours'. Particularly focused on note sequences, but flexible enough to be useful for many things (ideas: building markov chains, event sequencing, generative arrangement).
Some examples to demonstrate use-cases: