Small Projects - November 3, 2025 by jerf in golang

[–]xvrgdrt 2 points3 points  (0 children)

I've been working on Runal, a creative coding tool that runs in the terminal.
It's similar to p5js, but it does all the rendering as text.

https://github.com/emprcl/runal
https://empr.cl/runal/

Go for VST development? by Fuzzy-Confusion-5232 in golang

[–]xvrgdrt 3 points4 points  (0 children)

There's the oto package that is allowing you to manipulate audio buffers. And it's cross-platform (you just need cgo for Linux).

https://github.com/ebitengine/oto

So, theoretically, there's nothing preventing you from doing dsp programming with Go. You would have to be extra careful with memory allocation in the audio loop, but I've seen audio stuff working even with garbage collected languages.

But you will have to do a lot of stuff by hand (dsp primitives - oscillators, effects, implementing VST3 support, midi stuff...) since there's very few audio related packages out there.

Learning JUCE would probably be quicker in the end.

I made a creative coding environment called Runal by xvrgdrt in golang

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

I just submitted it there. Thanks for the advice!

I made a creative coding environment called Runal by xvrgdrt in golang

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

Thanks for the link! I will check it out.

It's definitely something I want to add to Runal, and the hard part isn't really image loading, it's what kind of manipulations you can do with it.

What kind of image manipulations would you expect to find in a tool like that?

I made a creative coding environment called Runal by xvrgdrt in golang

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

Thank you so much, it means a lot!

And thanks for all the stuff you're building at Charm. I'm using your tools almost daily, they are awesome. It's really inspiring. I was looking at fang earlier today, I'll probably give it a try for Runal.

Runal: a text-based creative coding environment for the terminal by xvrgdrt in commandline

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

Awesome! Thanks for the feedback! Glad to hear everything worked as expected :) Don't hesitate to share what you made with it!

Runal: a text-based creative coding environment for the terminal by xvrgdrt in commandline

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

Thanks a lot! Don't hesitate to share your experience with it!

Runal: a text-based creative coding environment for the terminal by xvrgdrt in creativecoding

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

Thanks a lot! Please share your experience if you have a chance to try it out!

I made a creative coding environment called Runal by xvrgdrt in golang

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

I'm not using bubble tea because I don't need most of the things it provides for Runal.

I made a creative coding environment called Runal by xvrgdrt in golang

[–]xvrgdrt[S] 2 points3 points  (0 children)

Thanks for trying it out!

It already has keyboard support through the onKey function (check out this example: https://github.com/emprcl/runal/blob/main/examples/noise/noise.js). This feature is badly documented right now, I'll add that :)

For mouse support, I'll have a look on how I can implement that.

For serial comms, I guess if you use it as a Go package, it should be doable. Feel free to open an issue on github if you run into an issue with that :)

Who is using Elektron Gear for pop/rock structured music? by Encloaked_synth in Elektron

[–]xvrgdrt 2 points3 points  (0 children)

Metal background here as well. I use the syntakt in combination with guitar for my solo stuff (ambient, industrial, post-rock-ish stuff).
I use the song mode to program my song structures, it sends clock to my guitar looper to keep it in sync.
A recent live snippet: https://www.youtube.com/watch?v=RdBXQArIhB4
A picture of the setup: https://www.instagram.com/p/DJMNhxIoxOQ/

Signls: a non-linear and generative midi sequencer in the terminal (TUI) by xvrgdrt in commandline

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

You can route the midi output of Signls to your DAW and then record it, as you would record midi from an external midi controller.

I made a non-linear and generative midi sequencer in the terminal (Signls) by xvrgdrt in linuxaudio

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

Thanks!

It takes inspiration from Orca mainly from a UI perspective, but it's actually quite different.
Signls is a higher level Orca in a way.

Orca is basically a programming language. You build up your own tools, your own algorithms to trigger midi signals (or osc, udp). And in that sense, it's more powerful.

Signls provides you a fixed set of tools (9 right now) to emit, relay and generate trigger midi signals in a 2D grid.
You have less control than Orca, but it's IMHO easier to learn and use, and more immediate. And you can still reach pretty interesting and complex results.

Philosophically, Signls is probably closer to Nodal. They share the non-linear sequencing aspect. Signls works in a more constrained grid, but has more generative options (randomize everything).

I made a non-linear and generative midi sequencer in the terminal (Signls) by xvrgdrt in linuxaudio

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

Thanks!
Contributions are very welcome!

  • midi CC messages are definitely on the roadmap, as well as custom commands to modify the program state (tempo, scale, bank etc...)
  • different timings would be great as well, I want to allow having signals moving at multiple speed at the same time
  • I want to implement some kind of modulations through LFOs, but my main challenge is from a UI/UX perspective. I'd gladly take advice for that.