- VAO, https://paroj.github.io/gltut/Basics/Tut01%20Following%20the%20Data.html
- Baked light map, https://gazebosim.org/api/rendering/5.0/lightmap.html
- GLTF spec, https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html
- GLTF SO question, https://stackoverflow.com/questions/55989429/understanding-the-skinning-part-of-a-gltf2-0-file-for-opengl-engine
- GLTF anim article, https://lisyarus.github.io/blog/posts/gltf-animation.html
- GLTF anim example, https://github.com/KhronosGroup/glTF-Tutorials/blob/main/gltfTutorial/gltfTutorial_019_SimpleSkin.md
- GLTF reference guide, https://www.khronos.org/files/gltf20-reference-guide.pdf
- GLTF code, https://github.com/KhronosGroup/glTF-Sample-Viewer/blob/d32ca25dc273c0b0982e29efcea01b45d0c85105/src/skin.js#L32-L36
- Animation blending/skin article, https://animationprogramming.com
- Use rust lib with Panama, https://foojay.io/today/java-panama-polyglot-rust-part-4/
- JOLT
- Blender
- https://blendermarket.com/products/omnistep
- https://github.com/passivestar/quickmenu
- A guide to texture optimisation, https://forum.game-guru.com/thread/222504
- as_pointer
- Non-destructive (ND) addon, https://github.com/hugemenace/nd
- Blender's developer guide (handbook) https://developer.blender.org/docs/
- C
- SuperCollider
- Live coding, https://theseanco.github.io/howto_co34pt_liveCode/
- Supercollider PDF, https://cs.wellesley.edu/~cs203/lecture_materials/synthdefs/synthdefs.pdf
- Patterns tutorial, https://doc.sccode.org/Tutorials/A-Practical-Guide/PG_01_Introduction.html
- Creating plugin, https://github.com/notam02/supercollider-plugin-tutorial/blob/main/tutorial/how-to-make-a-supercollider-plugin-cpp.md
- Extra synths, https://github.com/SCLOrkHub/SCLOrkSynths
- Eurorack plugin, https://github.com/v7b1/mi-UGens
- Janet for Mortals, https://janet.guide/
- How to make plugins using dlopen, https://jameshfisher.com/2017/08/24/dlopen/
- SC server plugins PDF, file:///Users/pfeodrippe/Downloads/how-to-make-a-supercollider-plugin-cpp.pdf
- SC plugins forum, https://scsynth.org/c/development/server-plugins/29
- JNI cookbook, https://github.com/mkowsiak/jnicookbook
- Flucoma, https://www.flucoma.org/download/
- SC server plugin api, https://doc.sccode.org/Reference/ServerPluginAPI.html
- https://docs.oracle.com/en/java/javase/22/core/foreign-function-and-memory-api.html
- AsmJit, https://asmjit.com/
- JVMTI (JVM Tool Interface), https://docs.oracle.com/en/java/javase/22/docs/specs/jvmti.html
- Memory mapped file (mmap) lib, https://github.com/OpenHFT/OpenHFT
- Scoring Sound: Creative Music Coding with SuperCollider book, https://thormagnusson.gitbooks.io/scoring/content/index.html
- Opinionate advice for beginners, https://scsynth.org/t/opinionated-advice-for-supercollider-beginners/7333
- DSPs, https://www.musicdsp.org/en/latest/index.html
- SC example plugin, https://github.com/supercollider/example-plugins/blob/main/03-AnalogEcho/AnalogEcho.cpp
- C guide, https://beej.us/guide/bgc/html/split/
- Beej's guides, https://beej.us/guide/
- clang manual (guide), https://clang.llvm.org/docs/UsersManual.html
- Arena allocation (by Null Program), https://nullprogram.com/blog/2023/12/17/
- Delay effect tutorial, https://wiki.analog.com/resources/tools-software/sharc-audio-module/baremetal/delay-effect-tutorial
- Synth secrets, https://www.soundonsound.com/series/synth-secrets-sound-sound
- opengl
- PBO (Pixel Buffer Object) transfers, https://www.roxlu.com/2014/048/fast-pixel-transfers-with-pixel-buffer-objects
- PBO, https://www.songho.ca/opengl/gl_pbo.html
-
fix memory leak
-
solve lexical scope for with-each
-
fix already closed issue
-
solve lexical scope for with-system
-
call sclang
- so we can use pseudo ugens easily and create synthdefs from it
- it's meant to be used only in dev time
- compile synthdef
- transpile from clj into SC
- save
- plot
- read byte stream
- help (.help)
-
caching for sclang synthdefs so we can use it transparently
-
make
sclang-path
more flexible -
general cpp plugin that allow us to dynamically change a ugen
- [-] maybe using jank?
- no as it's changing its internals
- can we start a REPL from a JVM started from C++?
- https://stackoverflow.com/questions/992836/how-to-access-the-java-method-in-a-c-application
- https://stackoverflow.com/questions/819536/how-to-call-java-functions-from-c
- https://stackoverflow.com/questions/7715804/how-to-use-find-jni-on-cmake/7716814#7716814
- call a static java method
- call clj
- set classpath
- call function
- start REPL
- use memory segment for jvm/native communication
-
next
modifies one byte and we see it in the jvm- create memory segment in the jvm
- refer it from cpp
- modify data
- modify in
next
- write to large array
- structured data
-
- c code on demand
- viz data
- update data viz in real time
- fft viz
- [-] create project in vybesc
- shared memory
- https://www.infoq.com/presentations/java-shared-memory-files/
- jvm
- c++
- share raw data
- fix /cmd
- create unitcmd or cmd
- compile c code on demand
- shared memory
- read constructor value for make "different" plugins
- create arena for shared
- set shared memory
- fix plugin crash
- initial transpiler
- compile c code
- dopen from the plugin multiple times
- continue transpiler dev
- loops
- receive unit struct
- source mapping
- improve error handling
- state
- https://github.com/supercollider/example-plugins/blob/main/03-AnalogEcho/AnalogEcho.cpp
- ctor
- create struct inheriting from Unit
- create struct from clj
- create another component merging with new fields
- prepend them into the C code
- set unit parameters
- store state globally
- store state for one instance
- move things to another ns
- one ns for the c helpers
- another ns for the client code
- ctor code
- attrs
- NEXTPOWEROFTWO
- RTAlloc
- ctor function
- shared struct to pass RTAlloc and RTFree
- use namespace in function names
- setcalc
- use RTAlloc
- try with malloc
- use RTAlloc for the returned
echo
data - function descriptor
- allocate
- parse to C
- complete ctor
- per instance unit
- attrs
- create struct inheriting from Unit
- plugin loading
- dtor
- next
- put everything together
- shared memory
- call C function from clojure
- dyn lib
- simple test
- CI
- osx
- linux
- windows
- docstring
- dsp test
- plugin
- component as an argument
- ctor
- unit pointer
- upcall function for allocator
- fn-desc to upcall
- interface name and cache
- VybeCFn in panama
- can pass a raw clj function into VybeAllocator
- use in test
- dsp
- [-] safe mode where pointer derefs are checked
- not for now, we are having issues with sanitizers
- https://clang.llvm.org/docs/index.html
- [-] enable address sanitizer, https://clang.llvm.org/docs/AddressSanitizer.html
- [-] https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html#ubsan-checks
- [-] parse normal clojure functions
- [-] simple
+
- [-] native functions
- [-] simple
- load generated lib dynamically so we can call it in clojure
- call
defn*
as normal function
- call
- [-] janet
- https://github.com/janet-lang/janet
- call janet from plugin
- eval janet code
- compile c code
- [-] hot reload only at constructor
- https://jameshfisher.com/2017/08/24/dlopen/
- check that it works
- [-] use for setting freq
- [-] hot reload for every shared lib modification
- call flecs from a native VybeCFn
- make world
- set pointer to jextract function globally
- don't expand jextract macros
- create global struct that stores function pointers
- globals
- init fn
- set global struct call
- call ctor function when loading
vc/defn*
- fix bug
- [-] refer to the dyn lib
- [-] call it from a standalone (or SC plugin)
- indirect macro usage
- support fnc
- create clj function upcall
- use it in C
- println
- set pointer to jextract function globally
- make world
- test raylib
- debug tools
- tap>
- tap value back to the jvm
- add line as metadata?
- tap compiler/analyzer errors
- debug sizeof padding
- portal
- tap>
- [-] maybe using jank?
-
use const by default
- const
-
:mut
- fn args
- run tests
-
fix dangling keywords
-
VybeC
- use dynamic fns by default, even for generated C code (so compilation is
faster and we can have a tool for hot reloading)
- fix var name
- fix types
- fix npe
- hot reload
- watch vars
- remove old watchers
- cache the watchers somewhere
- remove
- test
- standalone mode (for shared libs) whree you don't use dynamic C fns
- use dynamic fns by default, even for generated C code (so compilation is
faster and we can have a tool for hot reloading)
-
anim
- always flag from blender
-
debug
- systems/queries/observers
- query where terms are being used
- function which returns components/tags used in a given term
- make it work for pairs
- [-] create a debug observer that watches new/updated system so we can update some cache
- fix anim
- ecs_query_get
- query where terms are being used
- systems/queries/observers
-
physics
- trigger event when touching
-
passthrough render
- shader
- portion of the window
- only when cube clicked
- LPF when enabled
- 2 worlds
- different objects
- disable/enable object
- render to another RT
- shader to mix the RTs
- different objects
- transition from a blob
- square
- circle
- animate blob
- shader
-
gltf loading test
- remove need for raylib for testing
-
VybeC
- move existing system into VybeC from C
- direct translation
- compile
- fix "mismatch between term.id and term.first" error
- fix windows test
- defsystem
- macro
- set components automatically
- fix string tap
- fix
leo
game using vybe-transform -
defsystem-c
- check vybe-games using it
- resources should be in the jar
- direct translation
- [-] read from source if some function has a inline (or not) metadata telling us the fn spec
- upgrade Flecs
- eval
- macro to quickly evaluate stuff
- [-] REPL plugin like portal does for cljs?
- move existing system into VybeC from C
-
try to VybeC animation-node-player
- don't use
-field
for non components - make vector destructuring work
- get entity corresponding to the position
- ignore on
_
- make map destructuring work
- keyword
- don't bind
_.*
- scoped :vf/entity
- tap
- body of the orignal CLJ function
- accept 3-arity version of
vp/arr
- do we have a way to get the component dynamically?
- lerp later
-
parent-e
conj- https://stackoverflow.com/questions/66040677/implementing-basic-vtable-in-c
- https://www.reddit.com/r/ProgrammingLanguages/comments/fpnooj/tradeoffs_of_fat_vs_thin_pointers/
- https://stackoverflow.com/questions/57754901/what-is-a-fat-pointer
- https://www.reddit.com/r/Zig/comments/13w2cvf/rust_trait_equivalent_in_zig/
- get id from keyword
- we can't use a global definition like
ECS_DECLARE
- but we can define it when adding the system (per world)
- simple get by name for now
- we can't use a global definition like
- dispatch conj on type (no inheritance)
- when modifying a system, delete it first
- fix
(first timeline*)
- need to make some smarter mapping for the timeline
- https://lisyarus.github.io/blog/posts/gltf-animation.html
- binary search
- [-] current index + falling back to binary search
- need to make some smarter mapping for the timeline
- [-] check which component
c
we are dealing with- mapping from entity id to component type
- don't use
comp-id
- [-] create cond automatically from it?
- fix
idx
- fix
t
- lerp
- just idx for translation
- scale
- rotation
- use lerp
- accept 3-arity version of
- don't use
-
move
update-physics
system- [-] support anon functions using clang blocks
- __auto_type dddd = ^ void () { printf("test"); } ; dddd();
- it doesn't work in windows/linux
-
let
:keys destructuring - anon functions without blocks?
- I've used macros
- [-] support anon functions using clang blocks
-
move
animation-controller
system -
built-in models
- minimal
-
first person camera
- position
- left/right rotation
-
basilisp
- https://github.com/leukbaars/EasyBake/blob/master/EasyBake.py
- operator for baking
- select objects
- use cycles so it's faster
- it was already like this
- [-] name convention for object selection automation
- [-] or maybe we can leverage vybe metadata for it (integrated with Vybe?)
- select object (and children), and for each
- rename appending ".original" or something like this
- clone object into a baked one and use the original name
- remove materials from baked
- new material
- create texture image
- TAB, select all and unwrap + smart UV
- select both objects
- connect color node
- run bake
- save bake image
- hide original
- save blender
- make sure above works for all selected objects
- make it work for existing .__original
- fix objs with children
- move baked children into orig
- move orig children into backed
- make all .__original objs renderable/visible so we can have correct baking (e.g. for emissive objs)
-
vybe.blender
- set renderer configuration
- to cycles GPU
- samples
- denoise
- like portal, be able to switch between nREPLs (middleware)
- https://github.com/djblue/portal/blob/6ddbc0d3d54dd6a5aab923afd81cdd34b41c81eb/src/portal/api.cljc#L198
- https://github.com/djblue/portal/blob/master/src/portal/nrepl.clj#L168
- connect to blender nREPL server
- initial middleware
- call basilisp like VybeC
- try to start JVM from blender
- https://github.com/e9t/konlpy/blob/master/konlpy/jvm.py#L21
- how to start on first thread?
- run vybe in a non-blocking way
- get pointer for location
- how can we obtain the offset
- use jextract
- sync from Blender to Vybe
- run basilisp code without nREPL
- access Blender pointer from the JVM
- show it as text
- show it in real time with a moving cube for
Cube.001
- better way to eval python functions
- fix bake script
- run bake from the JVM (fix seg fault)
- toggle to show original only
- select object and all children
- fix macroexpansion when using
->
- fix origin position from blender to Vybe
- add function to update Blender->Vybe
- translation
- scale
- rotation
- [-] euler mode
- quat mode
- no parent rotation/scaling
- parent rotation/scaling
- reconstruct parent transforms (until root) so we can account for shearing/non-uniform scaling
- [-] constraint so original can follow baked (and vice-versa)
- set quaternion rotation mode
- when saving, switch to baked mode and then to the orig mode (if that was the set ofc)
- fix transform when syncing 2 entities (one is parent of the other)
- we just needed to use the initial transform
- [-] check applying normal inv transform
- [-] we shouldn't invert the matrix
- [-] ok, seems to be an origin issue, fix it
- update all
- blender obj to vybe entity
- create union relation
- use name as entity
- depsgraph
- https://developer.blender.org/docs/features/core/depsgraph/
- https://docs.blender.org/api/current/bpy.types.Depsgraph.html
- study it
- [-] transform update for nonvisible objs
- [-] pointer to a function?
- send updated obj name to vybe using Flecs observers
- convert keyword from Py to the JVM
- update blender state atom
- sync
- blender obj to vybe entity
- try to start JVM from blender
- [-] reify operators (create vars)?
- [-] fix camera syncing
- we just don't sync it
- command so we toggle between the originals and the baked ones
- set renderer configuration
-
vybe.flecs dep
- local test
- remove non-flecs native libs
- CI build
- add instructions to README
- add profile to vybe-games
- update Flecs PR
- local test
-
minigame
- bake in Blender
- https://www.youtube.com/watch?v=SDqpnfTRtIU
- baking map saved to internal image, save it externally or pack it
- blackspots in the baked image
- Tips for Optimizing Game Assets in Blender
- we have to click on the original and then CTRL-click on the baked one
- create a texture image + UV map (TAB for edit mode, A to select all and then U for the UV)
- then click "bake" (combined) on the render menu (with Cycles selected)
- try to render https://passivestar.xyz/posts/how-to-light-scenes/
- fix redness on emissive lights
- used a white BG
- simple
- emission
- outdoor
- lightmap
- fix redness on emissive lights
- fix baking when drawing lights
- [-] point light?
- room
- why is table color different?
- syncing light
- fix opposite direction issue
- fix shadow
- ortographic?
- room
- fix blender sync
- bake
- update clojars token
- add new objs without exploding
- entity mismatching liveliness generation for entity (INVALID_PARAMETER)
- screen
- blender screen
- render to texture
- when saving blender, iterate over all scenes to hide/show the correct objects
- fix transforms of track_scene
- move tv method to vg
- race
- first take on UI
- fix RT so there isn't conflict with other draws in
the context of a
with-drawing
call- above isn't working, even if we flush the drawings
- [-] create different shaders to see if issue is solved
- even with different shader files (with different uniform names), it doesn't work!!
- check render textures
- message following a pilot
- fix RT so there isn't conflict with other draws in
the context of a
- fix billboard for RTs
- update camera up
- colliders
- remove implicit static
- fix AABB
- set collider using blender
- floor
- fix collider in a parent
- table
- walls
- fix GuiSliderPro in windows (CI)
- player
- https://github.com/ezEngine/docs-src/blob/main/pages/docs/physics/jolt/special/jolt-character-controller.md/
- https://github.com/jrouwe/JoltPhysics/blob/master/Samples/Tests/Character/CharacterVirtualTest.cpp
- let's use a simple box to emulate a character
- player collision
- [-] listener
- [-] report kinematic contact
- control player collider and replicate it to camera
- control collider using velocity/acceleration
- update internal velocity
- [-] shapecast?
- later
- [-] requires exposing it to C
- [-] listener
- floor
- apply less dither shader when near the TV
- fix nested baking
- UI
- select objects
- rotate up down
- fix math
- unrolling quaternions, https://theorangeduck.com/page/unrolling-rotations
- rotate vertically
- fix unwanted translated
- limit up/down rotation
- fix math
- circle UI for raycast
- show interactable object's name or something for raycast
- rotate up down
- turn off/on TV
- use new model
- screen with race
- fix screen size
- remaining walls/ceil
- fix jdk24 issue
- full screen
- fix sizes
- fix message position
- dialogue
- no effects for text
- "turn on/off"
- effect is affecting other draws
- seems to be the temp RTs from
with-fx
- seems to be the temp RTs from
- effect is affecting other draws
- TV screen
- draw ID colors
- set colDiffuse
- draw it to a RT
- use RT
- use ID colors to ignore/enable application in 2d shaders
- draw ID colors
- "turn on/off"
- support clicking
Z
to copy the entity path under the mousr cursor to the clipboard- use the colored id texture
- write things to a very small texture so we can read from the CPU
- copy to clipboard
- use the colored id texture
- simple interaction
- TV is off
- bypass TV message for a shader
- fix resolution for bypass
- fix shader resolution uniform
- use flowstorm to store shader / texture images
- one-off gl pixels to pixel writer
- store whole texture
- save texture to file for caching and memory purposes
- cache
- [-] store in a compact movie format?
- [-] diffs between snapshots?
- [-] check if we can fix shader issue when snapshotting
- improve bypass API
- remove most RT-related
with
macro - remove bypass function from
noel
- bind :use-color-ids param
- accept identifiers and entities in
with-fx
- ability to set RT for a shader step
- for non entities, try to attach some info to the RT
-
with-fx
as an entity- rt
- color
-
- accept identifiers and entities in
- shaders as entities/identifiers
- fix turned off TV
- check leo and minimal
- minimal
- leo
- fix dither shader
- remove most RT-related
- make alias for model entities
- can't write synthdef
- initial dialogue
- no TV interaction
- audiobox starts to blink
- click on audiobox
- sound
- window 1
- audiobox beep
- multiple overtone sounds
- play only when blinking
- sync with blink
- window 2
- click
- fix standalone song
- fix click sound when hot reloading
- welcome
- [ ]
- "audio" visual warning that you need to help someone
- turning on/off tv sound
- pilot message
- no effects for text
- select objects
- changing var for same sound source
- use pair?
- music
- static for the TV + narration (French)
- steps sound
- create another room
- space to interact with objects
- race
- slower velocity
- depth of field
- generic
*
for matrix/quaternions/vectors etc - fix resolutions in shaders?
- bake in Blender
-
glsl/shader
- lygia or any other GLSL file could be just vars using the same approach we use for the native libs
- tap>
- VybeShader
-
flowstorm
- audio
- shader
-
option for easily using the colored identifiers RT
:shaders
in a shader -
- main
- download it from somewhere
- talk about the AVX2less lib for jolt
- main
-
multiple worlds, render twice?
- 2-player where you pass one object to the other?
- 3d?
- mechanic
- one in english, another in french?
-
ambisonics
- 2 sources
- system
- directional
-
blender
- apply modifiers for the baked when baking
- support XYZ euler rot mode
- UI controls from the game to Blender
- call clj cmd so we can get the classpath + other arguments for starting the JVM
- remove extra materials/textures from the baking process
- UI to start JVM from Blender
- hiccup-like UI for Blender
- support vectors/lists from/to basilisp
- select in Blender and show UI in Vybe
- when saving, maintain selection
- mesh syncing
- support adding children while syncing
- add/remove tags dynamically
- use something else other than
.__original
as Blender has a character limit for an object's name - rewrite existing vybe python script
- make texture image size configurable per object
- pass C function to Python
- call C function
- show hover in Vybe
- show hover in Blender
- sync from Vybe to Blender
- check https://github.com/hugemenace/nd
-
docs
- flecs docs
- clone flecs docs and add clojure to it
- quickstart
- change only one to examine the output
- complete
- see if we need to create a standalone vybe.flecs dep
- clone flecs docs and add clojure to it
- let's use mkdocs for simplicity
- [-] bookdown (?)
- local test render
- publish test
- talk about the issues at #4
- framework
- start with minimal example
- by concept?
- panama
- component
-
vp/defcomp
-
vp/make-component
- primitives
- pointers
- structs
- padding
- datafy
- aliases
-
- pmap
- memory segments
- datafy
-
vp/as
- pseq
-
vp/arr
- set
- get
-
- fcn
- usage in components
- arena
- jextract
- wrapping libs
- component
- flecs
- world
- entities
- naming
-
vp/ent
-
vp/eid
- components
- tags
- pairs
- merge
- mutability
- hierarchy
- parent
- children
- queries
- DSL
- systems
- observers
- sending events
- listening events
- enabling components/entities
- sample
- blender
- hierarchy
- scenes
- physics
- animation
- raylib
- jolt
- network
- audio
- overtone
- game ns
- vybe.blender
- VybeC
- introduction
- flags
- C semantics
- const by default
-
:mut
-
- videos?
- flecs docs
-
trailer
-
abstraction for dsps?
-
don't store test resources in the jar
-
incremental compilationg
- each
vc/defn*
is compiled independently (already done today) and one refers to the other using dyn libs (when in :debug or some other mode) - in the background, we can compile the full version so it's used next time!
- each
-
write docs like https://beej.us/guide/bgc/html/split/ ?
-
create clang plugin to improve analysis?
-
clerk viewer for overtone synths
- how to get info about existing synthdefs?
- parse schelp for additional operators
- https://depts.washington.edu/dxscdoc/Help/Guides/WritingHelp.html
- parse metadata
- parse function
- arguments
- description
- parse schelp for additional operators
- show in clerk
- create synthdef out of it
- show nodes
- we have
synthdef-decompile
in overtone, can use it as the base - binary op, how to show the used op?
- loaded synthdefs
- we have
- show args
- play example
- show the ugens in multiple steps so the user can play the step they need
- you can hear, viz plots and call other ops on them (e.g. FFT)
- choose input (sawtooth, sine, any)
- how to get info about existing synthdefs?
-
3d sound application
- charts in TVs
- press button
- GUI sound
-
more complex built-in model
-
use portal
- memory segment
- component
- pmap
- synth
- flecs world
- flecs entity
- flecs system
-
tap from C into portal
-
VybeC
- show line/column error correctly for an error before calling the compiler
-
merge
to Flecsw
- better way to jump to definition
- allocator setting
- comptime
- exe mode
- check that we don't have unitialized resources in the init function if in this mode
- use generics for a
vp/mem
equivalent in VybeC - share
matrix-transform
code - make
@, vp/&
etc better- create a merge or reset! "protocol" leveraging C generics
- make recompilation work with an indirection?
- :vf/entity should return a struct?
- consider making systems
always
by default -
def
to a var from C? - Remove variables starting with a
_
in alet
(just do the side-effect) - optimization (-O3)?
- how to represent
nil
properly?- maybe with nullable
- should have slices? (support for
count
,first
,last
,nth
, iteration) - map/filter (reduce behind the scenes)
- the
->>
macro could optimize and join map and filters
- the
-
make it easy to DSP in the frequency domain
-
create filters in realtime from clerk
-
wasm
-
debug
- animations
- trigger events
- run once
- disable/enable
- blender
- scenes
- quantity of objects
- objects
- ability to modify blender from clj?
- tap> on reload
- animations
-
show how you can call the Flecs API with the REPL
-
deploy to clojars
- vybe
-
compile libs to targets
- windows
- linux
- osx
- universal?
-
debug arena by tracing calls (for memory leak)
-
ability to apply locks when creating an VybeFlecsSetEntity
-
supercollider/native/C
- reimplement delay filters (e.g. ShiftPitch ugen)
- put the plugin at the end of the bus
- map one index to one lib and receive an id to switch between the function pointers
-
defdsp
could watch the used vars so it can compile itself automatically (only:the-var
) - a
defn*
coukd test itself and check that it has the same results as the clojure one? - ability to load vars dynamically (using dlopen) so it speeds up compilation (and enables hot reloading (using some trickery))?
-
blogpost about vybesc
- what's a SC ugen?
- graph
- real time processing with dyn lib
- control ugen parameters from clerk