JUCE
avendish
JUCE | avendish | |
---|---|---|
105 | 34 | |
6,116 | 410 | |
1.6% | 1.0% | |
9.5 | 8.5 | |
2 days ago | 7 days ago | |
C++ | C++ | |
GNU General Public License v3.0 or later | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
JUCE
-
3rd Edition of Programming: Principles and Practice Using C++ by Stroustrup
Personally, I started by writing externals for Pure Data, then started to contribute to the care. Later I took the same path for SuperCollider.
The more typical path, I guess, would be to start with simple audio plugins. Have a look at JUCE (https://juce.com/)!
Realtime audio programming has some rather strict requirements that you don't have in most other software. Check out this classic article: http://www.rossbencina.com/code/real-time-audio-programming-...
-
Anyone know anyone that creates plugins?
Check out https://juce.com in the meantime
-
Modern C++ Programming Course
You can definitely start putting C++ into your embedded projects, and get familiar with things in an environment in which you're already operating. A lot of great C++ code can be found with motivated use of, for example, the platformio tooling, such that you can see for yourself some existing C++ In Embedded scenarios.
In general, also, I have found that it is wise to learn C++ socially - i.e. participate in Open Source projects, as you learn/study/contribute/assist other C++ developers, on a semi-regular basis.
I've learned a lot about what I would call "decent C++ code" (i.e. shipping to tens of thousands, if not hundreds of thousands of customers) from such projects. I would suggest finding an open source C++ project, aligned with your interests, and study the codebase - as well as the repo history (i.e. gource) - to get a productive, relatively effortless (if the interests align) boost into the subject.
(My particular favourite project is the JUCE Audio library: https://juce.com/ .. one of many hundreds of great projects out there from which one can also glean modern C++ practices..)
- Ardour 8.0 released
-
What programming languages do you recommend starting with regarding audio visual programming/audio software development?
Respect for the others here who recommend C but I think they’re possibly masochists. If anything JUCE, which uses C++ is in my opinion far more approachable.
-
How have you used coding in your setup?
Here's a link to their website: https://juce.com/
- xcode or visual studio?
-
Anyone here have experience writing VST audio plugins in C++, or 'wrapping'/converting a VST to an AU plug-in?
It seems like most audio plug-ins are built in C++ inside an audio coding program called JUCE, so maybe if I could open up the exisiting code inside that and then output it as an AU instead of a VST that could work.
-
Common Audio Production
C++ has https://juce.com/, I think.
-
Apple Logic Pro Ruleface
Open source rule https://juce.com/
avendish
-
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...
-
Learning C++ for Multimedia and Audio programming
If you are interested in making max, pd, etc... extension you can look into https://github.com/celtera/avendish : it's made exactly for this and tries to stay very close from standard C++ unlike most existing audio frameworks which often come with their own bespoke standard library reimplementation. The documentation also tries to explain the c++ features it used, you might find this useful!
-
Soursop and Ponies in Kona: A C++ Committee Trip Report
to automatically generate safe dlopen stubs for runtime dynamic library loading from header files
and through the C++ one (this one is an extremely quick and dirty prototype):
https://github.com/ossia/score/blob/master/src/plugins/score...
to pre-instantiate get(aggregate), for_each(aggregate, f) and other similar functions in https://github.com/celtera/avendish because of how slow it is when done through TMP (doing it that way removed literally dozens of megabytes from my .o and had a positive performance impact even with -O3) ; so I weep a lot when I read that people in the committee object to pack...[indexing]
-
Cognitive Loads in Programming
I really don't know about this, I'm writing audio & media effects in a fairly declarative style with https://github.com/celtera/avendish and I'm so much more productive that it's not even funny - I can rewrite entire effects from scratch in the time that it used to take me to find a bug somewhere
- Ask HN: Who is using C++ as the main language for new project?
- A framework for audio software development
-
Clap: The New Audio Plug-In Standard
For anyone using c++, my declarative system has some amount of support for clap: https://github.com/celtera/avendish / https://celtera.github.io/avendish/
But unlike clap, targetting this also gives direct access to a few other environments, namely Max, Pd, ossia score, with the list hopefully growing.
Here is an example minimal plugin : https://github.com/celtera/avendish/blob/main/examples/Raw/M...
Note that unlike pretty much every other c/c++ plugin API, the plugin code does not need to include any header, everything is done through reflection of struct members at compile-time.
Here's a per-sample noise generator which uses a small library of pre-made ports: https://github.com/celtera/avendish/blob/main/examples/Helpe...
And a very naive buffer-based audio filter : https://github.com/celtera/avendish/blob/main/examples/Helpe...
UI is supported without relying on a specific UI library, only on a canvas painter concept which can then target Qt, NanoVG, and others to come: https://github.com/celtera/avendish/blob/main/examples/Helpe...
since it binds directly to audio APIs at compile time, it has pretty much zero code size in itself, the smallest plugin it generates for VST2 is around 7kb IIRC
-
WG21, aka C++ Standard Committee, April 2022 Mailing
I've ported my lib https://github.com/celtera/avendish to P1061's experimental clang implementation to replace boost.pfr (https://github.com/celtera/avendish/blob/main/include/avnd/common/aggregates.hpp#L67) and it works great, it's only missing pack indexing because right now one still needs to do something like
-
Why LSP?
Working on a sunset of this with https://github.com/celtera/avendish - C++ reflection makes this very easy
-
Unreal vs. Unity Opinion
so interesting, as a mostly C++ dev, UE's C++ style feels absolutely awful aha. Of course they have to be here because c++ used to not have reflection but I think that nowadays one could use similar principles as the ones I've tried to develop for audio / media objects in https://github.com/celtera/avendish to implement game objects / UObject in a much cleaner way and with better compile times
What are some alternatives?
Qt - Qt Base (Core, Gui, Widgets, Network, ...)
proposal - Go Project Design Documents
iPlug2 - C++ Audio Plug-in Framework for desktop, mobile and web
DtBlkFx - Fast-Fourier-Transform (FFT) based VST plug-in
OpenFrameworks - openFrameworks is a community-developed cross platform toolkit for creative coding in C++.
csound_max - csound6~ object for Max/MSP
imgui - Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies
nanobind - nanobind: tiny and efficient C++/Python bindings
audiogridder - DSP servers using general purpose computers and networks
DPF - DISTRHO Plugin Framework
Cinder - Cinder is a community-developed, free and open source library for professional-quality creative coding in C++.
clap-imgui - Minimal example of prototyping CLAP audio plugins using Dear ImGui as the user interface.