Skip to content
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

CSound Support Roadmap Ideas #22

Open
marksweiss opened this issue Jul 26, 2020 · 0 comments
Open

CSound Support Roadmap Ideas #22

marksweiss opened this issue Jul 26, 2020 · 0 comments

Comments

@marksweiss
Copy link
Owner

marksweiss commented Jul 26, 2020

CSound Support Improvements

  • NATIVE PY OPCODES! https://csound.com/docs/manual/py.html
  • IN PROGRESS Play in PerformanceThread using the API
  • Instrument base class
  • Py type-hinted kw args
  • Naming convention for CSound arg types: a, i, k, I, f
  • Convention for arg order, out arg then varargs for in Args
  • Arg type validation
  • Doc string, repr() and IPython or other way of inquiring about args
  • DONE str() that emits CSound instrument call
  • Repeat above with UDF base class

What about the rest of CSound? It is still the host language.

  • Templates and config args for init boilerplate
  • Templates for instrument and UDF calls
  • Template literals for CSound syntax

Scoreless CSound Approaches

  • http://www.csounds.com/journal/issue20/scoreless.html
    and the entire "Csound: A Sound and Music Computing System" book in Scribd
  • Can use the schedule opcode to run an instrument without score events
  • Can use the event opcode to issue events within an instrument
  • Instruments as Generators
    -- Can use loop and conditionals within an instrument
    -- Can stagger multiple schedule calls over a looping instrument to create patterns
    -- Can have one instrument schedule another instrument in the same CSD, so can arbitrarily chain instrument calls
    -- Can have an instrument schedule itself -- recursion
  • Can create your own custom opcodes - functions, and call them from within instruments or other opcodes. These come after the init block but before the instrument blocks.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant