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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend