Quartz Composer is a graph of filers that you can interconnect in a graphical interface. You use it to create visual filters or generators. iTunes was using Quartz composer files .qtz for some of his music visualizers.
Quartz Composer is GPU accelerated thanks to its use of the Quartz API.
It was very popular with artists because of the creative freedom it gave when composing the filters. You did not need to be a developer to create a filter, thanks to the editing application.
Quartz Composer is now deprecated and dying in slow and anonymous death.
XQuartz is a windowing system accelerated with Quartz. The X system was not invented by Apple but very popular on top of Unix.
She also uses it at school, and she regularly enjoys working with it on her own.
Because she seems to go more toward the graphical creative side, I made her work on the logo of a personal project I work on at the moment, and she did enjoy it a lot.
Sometimes I ask her to edit some c++ code I work on and see how the result is when running the code from Xcode; we have a lot of fun doing that!
Really great, did show this to my daughter that is into comics!
I also wrote a long blog post about my journey building it here: https://timdaub.github.io/2020/02/19/wasm-synth/
Have fun jamming :)
This is nice!
Can you explain how you implemented the interface?
ffmpeg has so many configure options, I always avoid building it with brew.
I wish there was a retained mode GUI library that would be as easy to integrate in your game and graphics apps as ImGui (or nuklear) is.
On my spare time, I've been working on a retained mode GUI layout and rendering framework (not a complete GUI toolkit) that uses a DOM-like tree, CSS style flexbox layouts and produces a vertex buffer for rendering like ImGui does.
Unfortunately life gets in the way, and all I have to show for my project is a small prototype in C and another one in Rust (can't decide which I like more) that draws some text and rectangles with a fancy layout. Code is not public at the moment but I'm willing to share it with anyone (on GitHub) who responds with a thoughtful comment or a good question.
I have been following Raph Levien's fantastic work on Druid and Rust GUIs which has been very inspirational, this video in particular [0].
Where Raph is focused on native GUI rendering and high fidelity text output, I've only focused on rendering in a GPU application using shaders and only very basic text layout with simple kerning (like Dear ImGui).
As Raph points out in his later talks on the topic, layout and rendering are only half of the GUI puzzle. The other half is maintaining the state of the application, usually through some kind of widget tree.
Leave a comment if you're interested, I'd be happy to chat even though it doesn't seem like my projects are going anywhere anytime soon.
[0] https://www.youtube.com/watch?v=4YTfxresvS8 Data Oriented GUI in Rust by Raph Levien
g_pSwapChain->Present(1, 0); // Present with vsync
//g_pSwapChain->Present(0, 0); // Present without vsync
So you can control this by setting the first argument to 1 or 0.
During quarantine I picked up a few things. I grew up on SNES RPGs, and one little project was to learn how the SPC worked a bit better. I ripped some samples for the instruments from Seiken Densetsu 3 and wrote a small sampler that can play back the raw ripped samples using SuperCollider. With that and ORCA, I made this tune, inspired by Infocom/Brian Moriarty's brilliant game Trinity. https://www.youtube.com/watch?v=ZZ0JY_LTxc8
Another project was inspired by growing up with Winamp visualizations. This ended up being a huge rabbit hole as I made a visualizer using Three.js, ran into performance problems rendering a 1440p video in JS, ported to C++ with plain old OpenGL, and figured out how to use ffmpeg from C++. All for a visualization for a track I did years ago! I love how it turned out, though. https://www.youtube.com/watch?v=zlA_Mkld3xc
For me having visuals nicely synchronised to the music is adding a lot.
Now that you have a nice custom tools to produce video you should build on it and produce more of them. You have a fan here!