exacoustics's Avatar

exacoustics

@exacoustics.bsky.social

Building cool plugins Brisneyland ๐Ÿ‡ฆ๐Ÿ‡บ exacoustics.com

342 Followers  |  99 Following  |  76 Posts  |  Joined: 20.11.2024  |  1.9106

Latest posts by exacoustics.bsky.social on Bluesky

I drank one of those ghost energy drinks for the first time today and I'm still buzzing after 5 hours. wtf in in those things?

03.08.2025 07:35 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

b r e a k s t a t i o n

22.07.2025 07:01 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

lmao I just checked all the new features. I'm psyched for a working pause

09.06.2025 11:09 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

arc witch. might try ranger or templar next. have you been playing long?

28.05.2025 23:56 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

I started playing Path of Exile 1 for the first time recently. The Maori influence in their art style and lore came as an unexpected surprise -I had no idea this was made by a Kiwi studio! It feels very quaint and hits close to home. It reminds me of art and stories I read growing up. Cool game!

28.05.2025 04:59 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

My body is ready Todd Howard

23.04.2025 02:48 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Defs replace as much of the standard libraries as you can. Plenty of great stuff on GitHub.

All I use is:
Malloc/calloc/realloc/free
Memset/move/cpy/cmp
snprintf
math.h

All other string and i/o functions are awful.

22.03.2025 09:43 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Have you considered switching to plain old C, or something even newer and riskier like Zig, Odin or Jai?

22.03.2025 00:59 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Good design makes gotchas like this hard to make, and I certainly havenโ€™t found the right one yet. If you have ideas or tips to share, Iโ€™d love to hear it!

Also if you hit me up on discord or something Iโ€™m happy to share code

19.03.2025 09:04 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Extra logic is required on mouse exit events to stop this trip up happening. I suspect Iโ€™ll run into similar problems with keyboard focus gained lost events, and maybe drop + drag end events.

19.03.2025 09:04 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

A gotcha I ran into with this no callback approach is responding to mouse exit/enter in the correct order. For example, two widgets A & B set/restore a cursor on enter/exit events. If A is drawn before B and the user moves the cursor from B to A, then Bโ€™s exit event will be resolved last.

19.03.2025 09:04 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Yep, you basically described the code I have so far (ids and bounds checking).

Currently z indexing is an unsolved issue. Iโ€™m hoping clever use of a โ€œgenerational IDโ€ will help. Thatโ€™s a trick game developers use.

19.03.2025 09:04 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Definitely. The latency thing is a year old issue on GitHub, and probably very easy to solve, I just havenโ€™t gotten around it lol

19.03.2025 08:44 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Iโ€™m struggling to understand your reply. Are you saying certain widgets require callbacks?

If so, I believe key/mouse events can be stored in a queue or similar, then consumed at the site of the widget without any requirement to register a callback.

19.03.2025 07:43 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Good luck! Are you using another lib, or writing your own?

19.03.2025 07:33 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Youโ€™re not missing out

19.03.2025 05:32 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Removing a retained mode widget is just as bad. First you remove it from the header, then remove all references to it, possibly across several files and definitely in several functions/methods.

What a nightmare!

This developer friction certainly stops many great ideas from being tested!

18.03.2025 23:49 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

The equivalent of this is extremely cumbersome in a retained mode GUI (eg. JUCE, VSTGUI, Qt). To add a widget you will probably add a new member to a class in a header file, then it needs to be initialised correctly in a constructor within a .cpp file, then it needs to drawn in some third place...

18.03.2025 23:49 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

If you want to test a GUI idea using immediate mode widgets, it's as simple as writing all necessary code in one place. If you need to temporarily make space for something, then removing widgets is as easy as commenting out a block of code, or a function call.

18.03.2025 23:49 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

In C/C++, you can literally plot any chart to see and hear results in real-time. You can add/remove temporary "static" parameters for testing (see above pic) and commit them to proper plugin params later

There is also no algorithm rewrite from mathematical notation to C/C++

18.03.2025 23:49 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

So far so good! I even managed to make rendering event driven.

IMGUIs are an amazing way to quickly prototype ideas and refine an algorithm. Some plugin devs do this in matlab, desmos, or similar, but I think sticking to your implementation language has some important advantages

18.03.2025 23:49 โ€” ๐Ÿ‘ 6    ๐Ÿ” 0    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

All this including the plugin this is built for will be open source at some point

16.03.2025 21:50 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

For rendering Iโ€™m using nanovg with a fork of sokol gfx.

16.03.2025 21:24 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Nope. Itโ€™s not a full fledged UI framework. It just takes mouse events and manipulates a few booleans and floats so you can have widgets detect mouse enter/exit/hover/drag/dragstart/dragend/single/double/tripleclick.

16.03.2025 21:24 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Buttons and sliders arenโ€™t hard at all. Things may start to get complicated if I need to support z-indexing.

Given how simple IMGUIs are, I suspect you could hack together a new lib for each project with certain features included/excluded.

16.03.2025 03:56 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

This weekend I started working on my first immediate mode GUI library. Itโ€™s amazing how much you can do in so few lines of code!

16.03.2025 03:54 โ€” ๐Ÿ‘ 6    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 1

If youโ€™re making noise below -120dB, itโ€™s pretty darn high quality. -288 is nuts

13.03.2025 01:03 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Most boring cyclone ever

07.03.2025 00:10 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Every day. Imagine waking around with a dirty phone. Ew

05.03.2025 08:45 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

I was studying recordings of the famous Square 4 sound from Maelstrom. I managed to create a filter that produces the same output when you run a square wave through it.

Itโ€™s available as โ€œComb 4โ€ in Ghost v1.0.15. Go make some yoinks with it.

04.03.2025 08:15 โ€” ๐Ÿ‘ 12    ๐Ÿ” 3    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 2

@exacoustics is following 19 prominent accounts