Skip to content

Latest commit

 

History

History
422 lines (418 loc) · 15.4 KB

todo.md

File metadata and controls

422 lines (418 loc) · 15.4 KB

Refs

TODO

  • 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++?
    • load generated lib dynamically so we can call it in clojure
      • call defn* as normal function
    • [-] janet
    • 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
    • test raylib
    • debug tools
      • tap>
        • tap value back to the jvm
        • add line as metadata?
        • tap compiler/analyzer errors
        • debug sizeof padding
      • portal
  • 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
  • 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
  • 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
      • transition from a blob
        • square
        • circle
      • animate blob
  • 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
  • docs

    • let's use mkdocs for simplicity
    • [-] bookdown (?)
    • local test render
    • publish test
    • 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
      • 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
    • VybeC
      • introduction
      • flags
      • C semantics
      • const by default
        • :mut
    • videos?
  • abstraction for dsps?

  • don't store test resources in the jar

  • incremental compilation

    • 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!
  • 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?
    • 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
    • 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)
  • 3d sound application

    • charts in TVs
    • press button
      • GUI sound
  • VybeC

    • 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
    • eval
      • form to quickly evaluate stuff
      • REPL plugin like portal does for cljs?
  • use portal

    • memory segment
    • component
    • pmap
    • synth
    • flecs world
    • flecs entity
    • flecs system
  • tap from C into portal

  • 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
  • deploy to clojars

    • vybe
  • compile libs to targets

    • windows
    • linux
    • osx
      • universal?
  • Use https://github.com/zeux/meshoptimizer?

  • 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