DAWPL : A Simple Rust Based DSL For Algorithmic Composition and Music Production

semanticscholar(2017)

引用 0|浏览0
暂无评分
摘要
Algorithmic music composition languages provide a particularly interesting challenge for language, abstraction, and system design. The term “music” encompasses a wide variety of things, from the production noise from signal generators, to a notation widely understood by musicians that expresses melody and rhythm. In this project, we investigate DAWPL (Digital Audio Workstation Programming Language), a simple DSL (domain specific language) that uses Rust to cater to the expressiveness of standard music theory (within the context of DAWPL, we consider Jazz theory in particular) and the organizational scheme of a DAW. DAWPL provides an API through which users can generate, sequence, and process sounds. DAWPL code is translated to SuperCollider (a popular and well-established algorithmic composition language), which actually produces the sound. DAWPL provides a more syntactically intuitive way for musicians to interact with algorithmic composition (it also carries with it Rust’s rich syntax and type system). Furthermore, DAWPL brings with it the ability to write extensions in Rust, which has a much richer and more flexible type system. We will analyze and compare the expressiveness of DAWPL and SuperCollider and comment on how their individual attributes reflect their desired use-cases. We will also comment on the overall structure of DAWPL (and its implementation) and reflect on how Rust’s language features facilitate its implementation. Possible use-cases for DAWPL include providing artists the ability to “prototype” tunes and productions , build tools to facilitate composition (e.g. “Auto-improvisers”), generalize music composition patterns, or generate complicated and intricate tunes in a programmatic fashion.
更多
查看译文
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要