Managing outdated pull requests is time-consuming. Mergify's Merge Queue automates your pull request management & merging. It's fully integrated to GitHub & coordinated with any CI. Start focusing on code. Try Mergify for free. Learn more →
Score Alternatives
Similar projects and alternatives to score
-
BespokeSynth
Software modular synth [Moved to: https://github.com/BespokeSynth/BespokeSynth] (by awwbees)
-
seq66
Seq66: Seq24-based live MIDI looper/editor. v. 0.99.8 2023-08-27. NSM support; Linux/Windows; PDF user manual. Help access to tutorial and PDF. Beta code in portfix branch.
-
Mergify
Tired of breaking your main and manually rebasing outdated pull requests?. Managing outdated pull requests is time-consuming. Mergify's Merge Queue automates your pull request management & merging. It's fully integrated to GitHub & coordinated with any CI. Start focusing on code. Try Mergify for free.
-
-
-
scheme-for-max
Max/MSP external for scripting and live coding Max with s7 Scheme Lisp
-
-
glicol
Graph-oriented live coding language and music/audio DSP library written in Rust
-
InfluxDB
Collect and Analyze Billions of Data Points in Real Time. Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.
-
vgmtrans
VGMTrans - a tool to convert proprietary, sequenced videogame music to industry-standard formats
-
Avalonia
Develop Desktop, Embedded, Mobile and WebAssembly apps with C# and XAML. The most popular .NET Foundation community project.
-
-
JUCE
JUCE is an open-source cross-platform C++ application framework for desktop and mobile applications, including VST, VST3, AU, AUv3, LV2 and AAX audio plug-ins.
-
-
-
-
imgui
Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies
-
slint
Slint is a declarative GUI toolkit to build native user interfaces for applications that are written in Rust, C++, or JavaScript.
-
-
-
-
-
SonarCloud
Analyze your C and C++ projects with just one click.. SonarCloud, a cloud-based static analysis tool for your CI/CD workflows, offers a one-click automatic analysis of C and C++ projects hosted on GitHub. Zero configuration and free for open-source projects! Analyze free.
score reviews and mentions
-
Speed Up C++ Compilation
In https://ossia.io with PCH, using clang, ninja, mold, and some artificial split in shared libraries for development builds, I get a compile-edit-run cycle of a couple seconds in general... I wouldn't say it's too much of a problem if you use the tools already available
-
Looking for open source projects to contribute to
If you're interested in multimedia https://ossia.io is always looking for new contributors!
-
Digital Audio Workstation Front End Development Struggles
I develop https://ossia.io with Qt and it works as I want it to
In ossia.io I use three different algorithms / display methods depending on the zoom level used: at "far away" zoom it uses the minmax of the audio slices, at intermediary zoom it draws lines and when getting closer, it starts drawing individual samples.
https://github.com/ossia/score/blob/master/src/plugins/score...
- Automation clips can contain a bunch of bezier curves, which are slow to render.
Convert those to line segments with an approximation setting that looks good enough and it'll be ten times faster (keep the bezier for your data model of course).
https://github.com/ossia/score/blob/master/src/plugins/score...
https://github.com/ossia/score/blob/master/src/plugins/score...
- Piano roll clips can contain lots of little rectangles in order to display a "minimap" of the MIDI notes inside of it.
oh damn yes, I spent so much time on this and it still needs so much optimizing... if someone wants to give a shot at it :D
https://github.com/ossia/score/blob/master/src/plugins/score...
https://github.com/ossia/score/blob/master/src/plugins/score...
- On top of all this, clips can contain text labels which can also be expensive to render.
Yep, made myself a few "cached text" Qt items over time as the builtin cache wasn't satisfactory
- The fact that a timeline is zoom-able also makes it harder to cache the rendering of clips. If the timeline changed its zoom level, all visible clips pretty much have to redraw all of their contents.
yep
- Piano rolls can also be expensive to render if there is a bunch of MIDI notes, especially if there are text labels on the notes.
yep
- If the user clicks on a folder in a sample browser containing hundreds or even thousands of files, allocating a label widget for each file in the browser list will be very expensive. Something like the list factory in GTK is needed here.
yep, Qt's also able to cache this. Though for instance for Qt's QFileSystemModel I carry a small patch to disable any kind of sorting when there's more than a few hundred thousand files (which happens for large media libraries)
- We want to reserve as much CPU as possible for the actual audio processing. Ideally the GUI shouldn't take up more than one or two CPU threads.
Some comments on the issues mentioned at the beginning of the article as I had the same questions in https://ossia.io:
- DAWs have a lot of toolbars and panels (browser panel, timeline panel, piano roll panel, fx rack panel, mixer panel, audio editor panel, automation editor panel, settings panel, etc.).
for this Qt always performed brillantly for me. I went from QDockWidget to QSplitter-based layout though.
- Some widgets like decibel meters and other visualizers are constantly being animated, meaning the GUI library needs to efficiently redraw the screen every frame.
all the CPU-based toolkits will only redraw what changed though
- In addition, visualizers can be expensive to render on the CPU (especially spectrograms/spectrometers). Ideally you should use custom shaders to render them on the GPU.
fair, but then you may pay the cost of a GPU -> CPU transfer which isn't always free
- Clips on the timeline are notoriously expensive to render. There needs to be some way to cache the contents of clips into a texture (Either directly or by making use of the GUI library's "damage tracking" which I'll get into later.)
-
Cardinal/WASM: In-Browser Modular Synth Based on VCV Rack
ossia score (https://ossia.io) also uses a patching interface for audio/video/etc plug-ins, I'm curious about what you think of it
-
Tooll 3: open-source software to create realtime motion graphics
You can check https://ossia.io, the real-time GFX has still some features missing in particular for procedural geometry but it's getting there one step at a time :)
-
Ask HN: What audio/sound-related OSS projects can I contribute to?
Happy to introduce you to https://ossia.io there are a lots of tasks open! You can check the projects for the general development axes: https://github.com/ossia/score/projects?query=is%3Aopen ; e.g. Audio, Musicality, Integrations, JACK & Linux integration (some are in Classic projects mode) all have audio-related tasks, some easy, some hard.
Creating new Avendish plug-ins (docs: https://celtera.github.io/avendish/) could also be fairly useful, here's a very basic example one: https://github.com/celtera/avendish/blob/main/examples/Advan...
-
Dropping support for old C++ standards
I do it pretty much on my own for https://ossia.io ; it takes me roughly a day every other month to update my mac, linux and windows SDKs to the new LLVM / Qt / FFMPEG / {... other large dependency I use ...}.
Definitely not the end of the world. Said SDKs & build scripts are available here: https://github.com/ossia/sdk for anyone interested (I'll be honest though: the scripts are a mess!)
-
BlinderKitten, A free lighting software without restriction
One such free OSC software you could use to control it (+ handle sound, video, etc as asked in GP) is https://ossia.io :) (transparency report: i'm the dev)
-
A note from our sponsor - Mergify
blog.mergify.com | 23 Sep 2023
Stats
ossia/score is an open source project licensed under GNU General Public License v3.0 or later which is an OSI approved license.
The primary programming language of score is C++.