Top Related Projects
C++ Audio Plug-in Framework for desktop, mobile and web
An audio server, programming language, and IDE for sound synthesis and algorithmic composition.
Quick Overview
ossia score is an open-source intermedia sequencer for audio-visual artists. It allows for the creation and execution of interactive scenarios, combining various media types such as audio, video, and control data. The software provides a visual interface for designing complex, time-based projects with a focus on real-time performance and interactivity.
Pros
- Highly flexible and customizable for diverse multimedia projects
- Supports a wide range of protocols and integrations (MIDI, OSC, DMX, etc.)
- Open-source and actively maintained by a community of developers
- Cross-platform compatibility (Windows, macOS, Linux)
Cons
- Steep learning curve for beginners due to its complex features
- Limited documentation compared to some commercial alternatives
- May require additional plugins or extensions for specific use cases
- Performance can be resource-intensive for complex projects
Getting Started
To get started with ossia score:
- Download the latest version from the official website: https://ossia.io/
- Install the software on your system
- Launch ossia score
- Create a new project by clicking "File" > "New"
- Add devices and processes to your scenario using the toolbar
- Connect and arrange elements in the timeline
- Press the play button to execute your scenario
For more detailed instructions and tutorials, visit the official documentation: https://ossia.io/score/docs/
Competitor Comparisons
C++ Audio Plug-in Framework for desktop, mobile and web
Pros of iPlug2
- Focused on audio plugin development, providing a streamlined framework for VST, AU, and AAX formats
- Extensive cross-platform support, including iOS and Web Audio
- Large community and ecosystem with numerous examples and extensions
Cons of iPlug2
- Steeper learning curve, especially for those new to C++ and audio programming
- Less integrated visual programming capabilities compared to Score
- More limited in scope for general-purpose interactive scenarios
Code Comparison
Score (Python-like scripting):
@qml_process
def my_process(self, position):
self.outputs[0] = math.sin(2 * math.pi * 440 * position)
iPlug2 (C++):
void MyPlugin::ProcessBlock(sample** inputs, sample** outputs, int nFrames)
{
for (int s = 0; s < nFrames; s++) {
outputs[0][s] = sin(2 * M_PI * 440 * s / GetSampleRate());
}
}
Score offers a more accessible scripting approach, while iPlug2 provides lower-level control for audio processing. Score is geared towards interactive multimedia scenarios, whereas iPlug2 specializes in audio plugin development with a focus on performance and compatibility across various plugin formats.
An audio server, programming language, and IDE for sound synthesis and algorithmic composition.
Pros of SuperCollider
- More mature and established project with a larger community
- Powerful and flexible audio synthesis capabilities
- Extensive documentation and learning resources available
Cons of SuperCollider
- Steeper learning curve due to its text-based programming approach
- Less intuitive for visual-oriented users compared to Score's GUI
- Can be more challenging for real-time interactive performances
Code Comparison
SuperCollider:
SynthDef("sine", { |freq = 440, amp = 0.1, gate = 1|
var sig = SinOsc.ar(freq) * amp * EnvGen.kr(Env.asr, gate, doneAction: 2);
Out.ar(0, sig ! 2);
}).add;
Score:
struct Sine : public Node
{
OSSIA_NODE_METADATA("Sine", "audio")
void run(const ossia::token_request& t, ossia::exec_state_facade e) override
{
auto& out = e.get_audio_out(Metadata::Audio::Out);
for(int i = 0; i < out.channels(); i++)
for(int j = 0; j < out.samples(); j++)
out[i][j] = std::sin(2. * M_PI * m_phase++);
}
double m_phase{};
};
This comparison highlights the different approaches to audio synthesis in SuperCollider and Score. SuperCollider uses a concise, domain-specific language for defining synths, while Score employs C++ with a more object-oriented structure.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME

ossia score is a sequencer for audio-visual artists, designed to create interactive shows.
Sequence OSC, MIDI, DMX, sound, video and more, between multiple software and hardware. Create interactive and intermedia scores, script and live-code with JavaScript, ISF Shaders, Faust, PureData or C++. Leverage IoT protocols such as CoAP or MQTT, interact with joysticks, Wiimotes, Leapmotions, Web APIs and BLE sensors and integrate programs from a wealth of creative programming languages such as Structure Synth, Context-Free Art and Bytebeat. Load any kind of audio or video format and process visuals through Spout, Syphon, NDI, Shmdata or Sh4lt ; sonify large datasets with CSV and HDF5 support.
Free, open source and runs on desktop, mobile, web and embedded, down to Raspberry Pi Zero 2.
Read more on https://ossia.io, come ask questions on the forum or hang out in our Discord or Matrix room #ossia_score:gitter.im, we will be happy to help you !
Quick download links: latest official release / bleeding edge
Running ossia score
Releases are available for Windows, Linux (via AppImage) and macOS.
- Windows: install and run.
- macOS: open the
.dmg
and dropossia score.app
in Applications. - Linux: make executable (right click -> permissions or
chmod +x
) and run the AppImage.
Build status
ossia score uses CppDepend to ensure consistent code quality improvements ; please check it out !
In order to build score, follow the documentation.
Packaging status
Contributing
When updating the score repository through the command line, don't forget to update the submodules, they change often.
cd score
git pull
git submodule update --init --recursive
Some useful and easy potential contributions are listed on the website.
There are also many fixable areas in the code :
- TODO : for simple issues.
- FIXME : for critical bugs / problems.
- MOVEME : when something is not where it should be.
- REMOVEME : when something is redundant.
- RENAMEME : when the class does not match with the file it's in.
- OPTIMIZEME : when an easy-to-write-but-suboptimal algorithm is used.
Finally, one can write its own score plug-ins to add custom features to the software. An example plug-in with the most common classes reimplemented is provided here.
Contributors
Code Contributors
This project exists thanks to all the people who contribute. [Contribute].
Financial Contributors
Become a financial contributor and help us sustain our community. [Contribute]
Individuals
Organizations
Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]
Top Related Projects
C++ Audio Plug-in Framework for desktop, mobile and web
An audio server, programming language, and IDE for sound synthesis and algorithmic composition.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot