Commit 98b322c0 authored by Jonathan Wilkes's avatar Jonathan Wilkes
Browse files

add two more project ideas

parent 7cdf62f1
......@@ -23,6 +23,11 @@
[Vintage Platform Audio Emulation Library](#vintage-platform-audio-emulation-library)
[Library for Data-Over-Audio Communication](#data-over-audio-messaging)
[Interaction with Audio Plugins](#plugins)
[JIT-compiled signal graph for the audio engine](#jit)
Automated Testing Framework
---------------------------
......@@ -604,3 +609,91 @@ between machines.
Pd (Purr Data is a fork of the software Pure Data-- the visual language itself
is usually referred to as Pd.) However, the library may also be written in
C.
Interaction with Audio Plugins
------------------------------
### Goal
Make sure that Purr Data has a well-documented way to accept input from
standard audio plugin APIs like VST, LADSP, and LV2. Also
make sure Purr Data can be used as a plugin in other environments.
### Details
There are multiple audio plugin APIs that aim at seamlessly mixing and
matching audio filters, synthesizers, and analysis tools in different
languages and applications.
Purr Data has some libraries to interface with at least two of these
standards (VST and LADSPA). There is also a library for LV2 that
Purr Data can leverage. However, not all of these libraries run on
all the supported platforms (OSX, Windows, Linux).
Purr Data also has all the APIs necessary to act as a plugin itself
in other applications. But work must be done to ensure this works
properly and that it is properly documented how to do it.
### Difficulty: Moderate. There is a lot of pre-existing technology
here, but it needs to be tested rigorously on all platforms.
### Languages
C. Also, familiarity with shell scripting as well as Gnu make.
Interaction with Audio Plugins
------------------------------
### Goal
Make sure that Purr Data has a well-documented way to accept input from
standard audio plugin APIs like VST, LADSP, and LV2. Also
make sure Purr Data can be used as a plugin in other environments.
### Details
There are multiple audio plugin APIs that aim at seamlessly mixing and
matching audio filters, synthesizers, and analysis tools in different
languages and applications.
Purr Data has some libraries to interface with at least two of these
standards (VST and LADSPA). There is also a library for LV2 that
Purr Data can leverage. However, not all of these libraries run on
all the supported platforms (OSX, Windows, Linux).
Purr Data also has all the APIs necessary to act as a plugin itself
in other applications. But work must be done to ensure this works
properly and that it is properly documented how to do it.
### Difficulty: Moderate. There is a lot of pre-existing technology
here, but it needs to be tested rigorously on all platforms.
### Languages
C. Also, familiarity with shell scripting as well as Gnu make.
JIT-compiled Signal Graph for the Audio Engine
----------------------------------------------
### Goal
Leverage LLVM to make a jit-compiler for Purr Data's DSP graph.
### Details
Alex Norman has shown that it is possible to build a jit compiler
for one of Pd's "workhorse" libraries-- the "expr" library. This
library essentially lets users specify a mathematical expression
that can operate on both vectors and on the sample level. The
current library parses the tokens of the expression and requires
a separate function call for each unit. This is similar to the
way Pd's DSP graph itself gets executed.
The jit compiler produces assembly which has superior performance
to the current "expr" library. Extending that process to the entire
signal graph (or at least core classes within it) would benefit
performance on a greater level.
### Difficulty: Moderate to difficult. Since there is pre-existing
work done with the jit "expr" library, a good start would be to help
test that library and improve it. Once the student gains a mental
model of the process the student can begin to extend it to Purr Data's
DSP graph itself.
### Languages
C.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment