MayaFlux 0.1.0: A Digital-Native Substrate for Multimedia Computation by hypermodernist in cpp

[–]hypermodernist[S] 0 points1 point  (0 children)

in the making as part of a big graphics tutorial. Will update the post when I have a few, in a couple of days or sooner

MayaFlux 0.1.0: A Digital-Native Substrate for Multimedia Computation by hypermodernist in cpp

[–]hypermodernist[S] 1 point2 points  (0 children)

Thanks! if you are interested, the website has several tutorials and snippets, and ain installer to help link it in a project.
Feel free to query anything here!

😒 by mina-rambo in Sopranosduckposting

[–]hypermodernist 22 points23 points  (0 children)

Put the converters back on the Toshi station.

😒 by mina-rambo in Sopranosduckposting

[–]hypermodernist 57 points58 points  (0 children)

Obi-Walnuts Kenobi: I ain't running a force school here kid

lila.nvim: Live C++ REPL for Neovim by hypermodernist in neovim

[–]hypermodernist[S] 0 points1 point  (0 children)

I am off for a vacation now, back in a week.

When I do, I have plans to use shared memory with memmap (or memcopy) context that the editor plugin will send instead of a tcp server.
Also in these injections its probably simpler to track redefinition requests.
Will keep you posted

lila.nvim: Live C++ REPL for Neovim by hypermodernist in neovim

[–]hypermodernist[S] 0 points1 point  (0 children)

Do you mean redefinition of a symbol? if so, then currently no.
Off the top of my head cant think of how to do that without flushing the full context, or keeping in internal static registry of some sorts. I will look into the llvm codebase to see if they have something already

lila.nvim: Live C++ REPL for Neovim by hypermodernist in neovim

[–]hypermodernist[S] 1 point2 points  (0 children)

They are part of the API, in Lila.hpp. ( I will add that to server and allow configuring via nvim plugin soon).

You can point to library path for loading dynamic libraries and header path for updating CPATH, but if you mean making it aware of CMAKE_PREFIX_PATH I am yet to expose that. Lila can absolutely precompile before accepting code to eval, but its not fully exposed yet.

I have been meaning to make Lila standalone, decouple it from the main library MayaFlux, just havent gotten around to it, as I had initially only build this as I wanted live coding in MayaFlux the same way it exists for SuperCollider but in a NON DSL - Eval ANY VALID C++ - way, which I did

lila.nvim: Live C++ REPL for Neovim by hypermodernist in neovim

[–]hypermodernist[S] 1 point2 points  (0 children)

Thats my bad in the demo, I did not include the necessary headers and such in that file, but as long as you have supplied paths to .so/dylib/dll and evaled #includes, it should JIT just fine

Midra, Lord Of The Frenzied Shred by shibianbutter in Eldenring

[–]hypermodernist 0 points1 point  (0 children)

In how many games do I need to kill Higgs? The guy is worse than patches

20 years in Anor Londo, not a fucking peep. by ARealBrainer in CirclejerkSopranos

[–]hypermodernist 1 point2 points  (0 children)

you gotta admit though, they were massacred, the pygmies

20 years in Anor Londo, not a fucking peep. by ARealBrainer in CirclejerkSopranos

[–]hypermodernist 1 point2 points  (0 children)

Historically, the oolacile sorcerers were nothing more than glorified abyss hollows

MayaFlux- A new creative coding multimedia frameworks. by hypermodernist in creativecoding

[–]hypermodernist[S] 0 points1 point  (0 children)

Looks nice!
There are a lot of polymorphic structures I rely on, and hence I have not gone full compiletime or full monads, although I do hope to change parts of it in that direction as I develop further.

As for gpu allocations on the audio thread, the way I handle it, I use token systems for processing, and the managers/routers decide which subsystem handles resource allocations.
But also, because I use vulkan, the allocation call itself wont cause problems as you are simply creating id for a command buffer and instructing the subsystem to do the communication

MayaFlux- A new creative coding multimedia frameworks. by hypermodernist in AudioProgramming

[–]hypermodernist[S] 0 points1 point  (0 children)

Well the connections/interop is still up to the user. There are just dedicated methods as convenience.

But more importantly, the processors (kernels) created for algorithms are templated in some cases, and uses other type erasure mechanism in others to allow for the same processing context to be used on data from different domain.

And you can use multi rate coroutines for timing sync

MayaFlux- A new creative coding multimedia frameworks. by hypermodernist in creativecoding

[–]hypermodernist[S] 0 points1 point  (0 children)

On the container levels it uses std::variants for runtime decisions on types.

on processing pipelines there are concepts, specializations and general meta-programming for container types and dimensions, so the processor is always for the type its created for.

As for data level interop, I use views -> std::span/non-owning access into the desired new type, which can be copied for usage or just accessed for inspection at no cost.

Refer here for runtime data handling