w hy y et a nother p rogramming l anguage
play

W HY Y ET A NOTHER P ROGRAMMING L ANGUAGE ? OR what if it would be - PowerPoint PPT Presentation

I NTRODUCTION M OTIVATION K RONOS AN O VERVIEW C ASE S TUDIES S UMMARY E NDING I NTRODUCING K RONOS : A N OVEL A PPROACH TO S IGNAL P ROCESSING L ANGUAGES Vesa Norilo Centre for Music & Technology SibeliusAcademy Linux Audio


  1. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING I NTRODUCING K RONOS : A N OVEL A PPROACH TO S IGNAL P ROCESSING L ANGUAGES Vesa Norilo Centre for Music & Technology Sibelius–Academy Linux Audio Conference, 2011

  2. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING O UTLINE I NTRODUCTION M OTIVATION The Current State of DSP Programming Why Yet Another Programing Language? K RONOS – AN O VERVIEW A Language Specification A Just-in-Time Compiler Type Determinism C ASE S TUDIES Examples

  3. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING I NTRODUCTION • Research background: PWGL

  4. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING I NTRODUCTION • Research background: PWGL • Musical programming environment by Laurson , Kuuskankare , Norilo , Sprotte • High level visual interface to LISP programming • Synthesizer component in C++ written by the author: PWGLSynth

  5. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING I NTRODUCTION • Research background: PWGL • Musical programming environment by Laurson , Kuuskankare , Norilo , Sprotte • High level visual interface to LISP programming • Synthesizer component in C++ written by the author: PWGLSynth • Kronos began as a bunch of aspirations for PWGLSynth 2

  6. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING I NTRODUCTION • Research background: PWGL • Musical programming environment by Laurson , Kuuskankare , Norilo , Sprotte • High level visual interface to LISP programming • Synthesizer component in C++ written by the author: PWGLSynth • Kronos began as a bunch of aspirations for PWGLSynth 2 • Generic computation engine • High level abstraction • Great performance

  7. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING I NTRODUCTION • Research background: PWGL • Musical programming environment by Laurson , Kuuskankare , Norilo , Sprotte • High level visual interface to LISP programming • Synthesizer component in C++ written by the author: PWGLSynth • Kronos began as a bunch of aspirations for PWGLSynth 2 • Generic computation engine • High level abstraction • Great performance • Since then, Kronos has morphed into a standalone compiler/language

  8. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING I NTRODUCTION • Research background: PWGL • Musical programming environment by Laurson , Kuuskankare , Norilo , Sprotte • High level visual interface to LISP programming • Synthesizer component in C++ written by the author: PWGLSynth • Kronos began as a bunch of aspirations for PWGLSynth 2 • Generic computation engine • High level abstraction • Great performance • Since then, Kronos has morphed into a standalone compiler/language • Doctoral study project since 2010

  9. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING M OTIVATION

  10. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING T HE C URRENT S TATE OF DSP P ROGRAMMING

  11. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING T HE C URRENT S TATE OF DSP P ROGRAMMING • The industry standard for DSP is C

  12. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING T HE C URRENT S TATE OF DSP P ROGRAMMING • The industry standard for DSP is C • Plugins and DSP chips tend to have C toolchains

  13. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING T HE C URRENT S TATE OF DSP P ROGRAMMING • The industry standard for DSP is C • Plugins and DSP chips tend to have C toolchains • AU, VST, LADSPA • Motorola 56k • etc..

  14. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING T HE C URRENT S TATE OF DSP P ROGRAMMING • The industry standard for DSP is C • Plugins and DSP chips tend to have C toolchains • AU, VST, LADSPA • Motorola 56k • etc.. • C is relatively hostile to casual programmers

  15. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING T HE C URRENT S TATE OF DSP P ROGRAMMING • The industry standard for DSP is C • Plugins and DSP chips tend to have C toolchains • AU, VST, LADSPA • Motorola 56k • etc.. • C is relatively hostile to casual programmers • Casual programmers make a lot of musical applications! • Getting audio out of C is very difficult for learners

  16. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING T HE C URRENT S TATE OF DSP P ROGRAMMING • The industry standard for DSP is C • Plugins and DSP chips tend to have C toolchains • AU, VST, LADSPA • Motorola 56k • etc.. • C is relatively hostile to casual programmers • Casual programmers make a lot of musical applications! • Getting audio out of C is very difficult for learners • High performance programs are low level

  17. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING T HE C URRENT S TATE OF DSP P ROGRAMMING • The industry standard for DSP is C • Plugins and DSP chips tend to have C toolchains • AU, VST, LADSPA • Motorola 56k • etc.. • C is relatively hostile to casual programmers • Casual programmers make a lot of musical applications! • Getting audio out of C is very difficult for learners • High performance programs are low level • Many powerful abstractions have performance penalties • Tedious to write for professionals

  18. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING W HY Y ET A NOTHER P ROGRAMMING L ANGUAGE ? OR what if it would be possible to...

  19. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING W HY Y ET A NOTHER P ROGRAMMING L ANGUAGE ? OR what if it would be possible to... • easily learn an audio language

  20. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING W HY Y ET A NOTHER P ROGRAMMING L ANGUAGE ? OR what if it would be possible to... • easily learn an audio language • write abstract, reusable code that runs fast

  21. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING W HY Y ET A NOTHER P ROGRAMMING L ANGUAGE ? OR what if it would be possible to... • easily learn an audio language • write abstract, reusable code that runs fast • design all your algorithms down to the arithmetic primitive

  22. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING W HY Y ET A NOTHER P ROGRAMMING L ANGUAGE ? OR what if it would be possible to... • easily learn an audio language • write abstract, reusable code that runs fast • design all your algorithms down to the arithmetic primitive • have a single filter for any combination of single or double precision, real or complex, mono or multichannel...

  23. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING W HY Y ET A NOTHER P ROGRAMMING L ANGUAGE ? OR what if it would be possible to... • easily learn an audio language • write abstract, reusable code that runs fast • design all your algorithms down to the arithmetic primitive • have a single filter for any combination of single or double precision, real or complex, mono or multichannel... Many of us here are working on a subset of these problems. The final solution is not yet here.

  24. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING K RONOS an Overview

  25. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING A L ANGUAGE S PECIFICATION S YNTAX

  26. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING A L ANGUAGE S PECIFICATION S YNTAX • Simple syntax

  27. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING A L ANGUAGE S PECIFICATION S YNTAX • Simple syntax • Familiar function notation SomeFunction(param1 param2)

  28. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING A L ANGUAGE S PECIFICATION S YNTAX • Simple syntax • Familiar function notation SomeFunction(param1 param2) • Infix functions for arithmetics a + b * 3 / Sqrt(c)

  29. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING A L ANGUAGE S PECIFICATION S YNTAX • Simple syntax • Familiar function notation SomeFunction(param1 param2) • Infix functions for arithmetics a + b * 3 / Sqrt(c) • Algebraic data structure yields pairs, lists and trees list = (a b c d)

  30. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING A L ANGUAGE S PECIFICATION S YNTAX • Simple syntax • Familiar function notation SomeFunction(param1 param2) • Infix functions for arithmetics a + b * 3 / Sqrt(c) • Algebraic data structure yields pairs, lists and trees list = (a b c d) • Tie-in allows for partial decomposition too (first-element other-elements) = list

  31. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING A L ANGUAGE S PECIFICATION C LASSIFICATION

  32. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING A L ANGUAGE S PECIFICATION C LASSIFICATION • Functional Programming

  33. I NTRODUCTION M OTIVATION K RONOS – AN O VERVIEW C ASE S TUDIES S UMMARY E NDING A L ANGUAGE S PECIFICATION C LASSIFICATION • Functional Programming • No state

Recommend


More recommend