This is an old revision of the document!


Programming



Note: Before starting a new project, perhaps you would like to join an existing project, or take over any of the Unmaintained Projects !



Misc information related to dsp/audio programming and development.


Related pages:



Project funding and crowd fund raising

Higher-level real-time programming languages

  • “ We aim to make it easy to write high-performance parallel programs that can be retargeted to a wide variety of computer architectures. We are developing a new style of parallel programming, which separates the program logic from the parallelism details, and enables a program to be moved easily from one computer architecture to another. ”


  • SuperCollider is an environment and programming language for real time audio synthesis and algorithmic composition. It provides an interpreted object-oriented language which functions as a network client to a state of the art, realtime sound synthesis server.


  • FAUST- “Is a functional programming language for realtime audio signal processing. The Faust compiler translates DSP
    specifications into efficient Cpp code. A variety of plateforms and plugin are supported (jack, alsa, ladspa, max, Q, vst, …) ”


  • CSound - « Csound is a programming language designed and optimized for sound rendering and signal processing. The language consists of over 1300 opcodes - the operational codes that the sound designer uses to build “instruments” or patches. Although there are an increasing number of graphical “front-ends” for the language, you typically design and modify your patches using a word processor. Usually, you create two text files - a .orc (orchestra) file containing the “instruments,” and a .sco (score) file containing the “notes. »


  • “Squirrel is a high level imperative, object-oriented programming language, designed to be a light-weight scripting language that fits in the size, memory bandwidth, and real-time requirements of applications like video games. ”


  • ” A real-time language for music and animation. Serpent was designed and implemented as a stand-alone, general purpose interpreter. Serpent is perhaps ideal as a game scripting language due to its real-time design and support for external C++ objects and C functions. “


  • ” Urbi is an open-source software platform to control robots or complex systems in general. It includes a C++ component library called UObject. “



  • Cython - Makes possible to write C-like code with Python-Style Syntax (a mix of python and c)




  • Q - Equational Programming Language - An interpreted, dynamically typed functional programming language based on term rewriting which allows you to define functions using symbolic equations.


  • LuaAV - “LuaAV is a real-time audiovisual scripting environment based around the Lua scripting language and a collection of libraries.”


  • Chuck Progr. Language - Life-Coding, “on-the-fly”, “concurrent audio programming language for real-time synthesis, composition, performance, and analysis.”


  • Giotto Language - “The Giotto system consists of a time-triggered programming language, a compiler, and a runtime system. Giotto aims at hard real-time applications with periodic behavior. ”


  • PtolemyII - “Ptolemy II is an open-source software framework supporting experimentation with actor-oriented design. Actors are software components that execute concurrently and communicate through messages sent via interconnected ports. A model is a hierarchical interconnection of actors.”


  • Atom (Haskell) - “Atom is a Haskell DSL (domain specific language) for designing hard realtime embedded software. Based on guarded atomic actions (similar to STM (Software Transactional Memory)). ”




  • X10 programming language - X10 is a strongly typed, concurrent, imperative, object-oriented programming language designed for productivity and performance on modern multi-core and clustered architectures. X10 augments the familiar class-based object-oriented programming model with constructs to support execution across multiple address spaces, including constructs for a global object model, asynchrony and atomicity.


  • Chapel programming language - « A parallel programming language, designed to improve the productivity of high-end computer users while also serving as a portable parallel programming model that can be used on commodity clusters or desktop multicore systems. Chapel strives to vastly improve the programmability of large-scale parallel computers while matching or beating the performance and portability of current programming models like MPI. »




  • haxe.org - A language that translates to different target languages.
wiki/programming_audio.1395229347.txt.gz · Last modified: 2014/03/19 12:42 by j_e_f_f_g