Kronos: A Declarative Metaprogramming Language for Digital Signal Processing

Kronos is a signal-processing programming language based on the principles of semifunctional reactive systems. It is aimed at efficient signal processing at the elementary level, and built to scale towards higher-level tasks by utilizing the powerful programming paradigms of "metaprogramming" and reactive multirate systems. The Kronos language features expressive source code as well as a streamlined, efficient runtime. The programming model presented is adaptable for both sample-stream and event processing, offering a cleanly functional programming paradigm for a wide range of musical signal-processing problems, exemplified herein by a selection and discussion of code examples.

[1]  D. H. Bartley,et al.  Revised4 report on the algorithmic language scheme , 1991, LIPO.

[2]  S Puckette Miller,et al.  Pure Data : another integrated computer music environment , 1996 .

[3]  M. R. Schroeder,et al.  Digital simulation of sound transmission in reverberant spaces (part 1) , 1969 .

[4]  Pierre Jouvelot,et al.  Dependent vector types for data structuring in multirate Faust , 2011, Comput. Lang. Syst. Struct..

[5]  Curtis Roads,et al.  The Computer Music Tutorial , 1996 .

[6]  David Gregg,et al.  Optimizing indirect branch prediction accuracy in virtual machine interpreters , 2007, ACM Trans. Program. Lang. Syst..

[7]  Bill Schottstaedt,et al.  Machine Tongues XVII: CLM: Music V Meets Common Lisp , 1994 .

[8]  Andrew Sorensen,et al.  Programming with time: cyber-physical programming with impromptu , 2010, OOPSLA.

[9]  James McCartney,et al.  Rethinking the Computer Music Language: SuperCollider , 2002, Computer Music Journal.

[10]  Perry R. Cook,et al.  ChucK: A Concurrent, On-the-fly, Audio Programming Language , 2003, ICMC.

[11]  Christopher Strachey,et al.  Fundamental Concepts in Programming Languages , 2000, High. Order Symb. Comput..

[12]  Julius O. Smith,et al.  Introduction to Digital Filters: with Audio Applications , 2007 .

[13]  Mikael Laurson,et al.  AUDIO ANALYSIS IN PWGLSYNTH , 2008 .

[14]  Vesa Norilo Designing Synthetic Reverberators in Kronos , 2011, ICMC.

[15]  Roger B. Dannenberg,et al.  The Implementation of Nyquist, A Sound Synthesis Language , 1997, ICMC.

[16]  Dominique Fober,et al.  FAUST ARCHITECTURES DESIGN AND OSC SUPPORT. , 2011 .

[17]  Eli Brandt,et al.  Temporal type constructors for computer music programming , 2000, ICMC.

[18]  Perry R. Cook,et al.  Combining Analysis and synthesis in the Chuck Programming Language , 2007, ICMC.

[19]  Onur Mutlu,et al.  Virtual Program Counter (VPC) Prediction: Very Low Cost Indirect Branch Prediction Using Conditional Branch Prediction Hardware , 2009, IEEE Transactions on Computers.

[20]  John K. Ousterhout,et al.  Scripting: Higher-Level Programming for the 21st Century , 1998, Computer.

[21]  Hendrik Pieter Barendregt,et al.  Introduction to generalized type systems , 1991, Journal of Functional Programming.

[22]  Gerard J. M. Smit,et al.  Declaratively Programmable Ultra Low-Latency Audio Effects Processing on FPGA , 2014, DAFx.

[23]  Dominique Fober,et al.  FAUST : an Efficient Functional Approach to DSP Programming , 2009 .

[24]  Mikael Laurson,et al.  From Score-Based Approach Towards Real-Time Control in PWGLSynth , 2006, ICMC.

[25]  Peter Van Roy,et al.  Programming paradigms for dummies: what every programmer should know , 2009 .

[26]  Vikram S. Adve,et al.  LLVM: a compilation framework for lifelong program analysis & transformation , 2004, International Symposium on Code Generation and Optimization, 2004. CGO 2004..