Retrofitting a virtual instrument DSL with programming abstractions
| dc.contributor.author | Vatter, Mathias | |
| dc.contributor.author | Erdweg, Sebastian | |
| dc.date.accessioned | 2026-07-02T10:40:38Z | |
| dc.date.issued | 2025 | |
| dc.description.abstract | KSP is an imperative DSL in music production that enables realistic modelling of musical instruments in real-time using Kontakt as a runtime environment. Once a niche topic for hobbyists, the field has since professionalized, with Kontakt becoming an industry standard. Its scripting language, however, has not evolved much, lacking modern functional and data abstractions while remaining closed-source. This paper proposes transformations that introduce modularity and basic abstraction principles to KSP. This entails functions with parameters and return values, recursive data types, and the implementation of lexical scope to replace the current global variable management. The transformations have been implemented in a preprocessing compiler framework--preceding the actual KSP interpreter--to an extend, that allows for the new syntax elements to be used in real-world KSP scripts. | en |
| dc.identifier.doi | https://doi.org/10.25358/openscience-15750 | |
| dc.identifier.uri | https://openscience.ub.uni-mainz.de/handle/20.500.12030/15771 | |
| dc.language.iso | eng | |
| dc.rights | CC-BY-4.0 | |
| dc.rights.uri | https://creativecommons.org/licenses/by/4.0/ | |
| dc.subject.ddc | 004 Informatik | de |
| dc.subject.ddc | 004 Data processing | en |
| dc.title | Retrofitting a virtual instrument DSL with programming abstractions | en |
| dc.type | Buchbeitrag | |
| jgu.apc.netprice | 0,00 | |
| jgu.apc.price | 0,00 | |
| jgu.apc.taxrate | 0 | |
| jgu.apc.transformationcontract | ACM | |
| jgu.book.editor | Shaikhha, Amir | |
| jgu.book.editor | Erdweg, Sebastian | |
| jgu.book.title | GPCE '25 : proceedings of the 24th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences | en |
| jgu.dfg.year | 2025 | |
| jgu.identifier.uuid | 48eb1b89-55f1-49cd-8235-7cb8e41a3043 | |
| jgu.nationalcurrency.eur | 0,00 | |
| jgu.organisation.department | FB 08 Physik, Mathematik u. Informatik | |
| jgu.organisation.name | Johannes Gutenberg-Universität Mainz | |
| jgu.organisation.number | 7940 | |
| jgu.organisation.place | Mainz | |
| jgu.organisation.ror | https://ror.org/023b0x485 | |
| jgu.pages.end | 69 | |
| jgu.pages.start | 67 | |
| jgu.publisher.doi | 10.1145/3742876.3742878 | |
| jgu.publisher.isbn | 979-8-4007-1995-0 | |
| jgu.publisher.name | ACM | |
| jgu.publisher.place | New York, NY | |
| jgu.publisher.year | 2025 | |
| jgu.rights.accessrights | openAccess | |
| jgu.subject.ddccode | 004 | |
| jgu.subject.dfg | Ingenieurwissenschaften | |
| jgu.type.contenttype | Scientific article | |
| jgu.type.dinitype | BookPart | en_GB |
| jgu.type.resource | Text | |
| jgu.type.version | Published version |