u/Purple-Ad-3152

21 post karma · 138 comment karma · joined Nov 2021

Purple-Ad-3152

Thanks for the ego-boost 😂 ❤️ I happen to wear these three hats at work: Product Owner, Product Manager, and Lead Developer.

In Carla you can do right click -> Clone for plugins and this preserves all parameters for the clone. You can also save the entire state of Carla (all loaded plugins, their parameters and routings) as a file, and load that file later to Carla.

In Ardour, you can simply copy and paste a plugin. Or, modify it's values and then right click -> New Preset. Then for some other plugin instance of same type: right click -> Load Preset. These should work for LV2, VST2 and VST3 at least.

For your use case, I'd definitely recommend using presets in Ardour or Reaper. Carla's preset support is very limited if it even exists.

Calf's plugin host is unknown for me. Btw, I think "Calf Studio Gear" plugins are pretty much discontinued. But there's a new VST3 based set CalfNXT they've been working on: https://calfnxt.org/

I can also recommend Linux Studio Plugins, although they are quite "scientific" and might look intimidating at first.

Purple-Ad-3152

True. I just used a browser-based DAW as an example. Although the same analogy applies to all software development - plugins and kernel drivers included.

I think a browser-based DAW is an interesting concept, especially if sessions are server-hosted and can be shared live. That could enable cross-platform real-time collaboration and further innovations.

On the other hand, from a technical standpoint, browser audio I/O still has significant limitations. For example, using a browser-based DAW as a real-time guitar amp simulator can be problematic due to latency. Browsers generally lack direct integration with professional low-latency audio backends such as JACK or ASIO, and on Windows they're typically limited to WASAPI.

That makes achieving consistently low round-trip latency considerably harder than with native DAWs.

But who knows what the future holds? Progress is moving incredibly fast.

Purple-Ad-3152

I have to agree with @enspiralart that your argument suggests very little or no understanding of professional software development.

Digging a grave is easy. But whether you do it with a spoon, a shovel, or an excavator makes an enormous difference in the time and effort required.

The fact that something is relatively easy doesn't mean it isn't time-consuming. That's precisely why we use better tools.

Purple-Ad-3152

Thanks for the input!

But which DAW are you using if duplicating/copy-pasting a plugin with its current values is not a thing? Or saving the values as a preset and loading the preset for another instanse of it?

Manually turning each knob for a second instance sounds super tedious... or maybe I misunderstood something?

Purple-Ad-3152

As I said, I don't think there's much I can say that would change your mind. But since you've presented three arguments, I'll address them.

First, there's a HUGE pool of professional developers, myself included, who have always wanted more time and resources for their personal projects.

Professional developers spend most of their working lives building software for their employers. That doesn't mean their personal interests align with their professional responsibilities. A passion project is usually a hobby, not an attempt to establish the next Bitwig or Studio One. Yet it can absolutely be professional-grade software, provided the developer has sufficient competence, time, and resources.

Second, you're confusing software engineering with writing code.

Lead developers, principal engineers, architects, and technical managers can spend most or even all of their time designing architecture, writing specifications, reviewing implementations, solving technical problems, and guiding development teams. Whether they personally write code depends entirely on their responsibilities and team dynamics.

Writing code is often the easiest part of software engineering. Knowing what to build, how to design it, how to verify its correctness, and how to maintain it is frequently much harder.

Whether the implementation is written by a junior developer, an experienced engineer, or generated by an AI doesn't eliminate those engineering responsibilities. And obviously, AI-generated code still requires competent supervision and verification.

Third, I've never claimed this isn't a gold rush. Of course it is.

There are countless low-quality projects appearing, and most will probably disappear. Some might become successful. That's hardly surprising when the barrier to entry suddenly drops.

But you're making an enormous generalization by assuming that everyone using AI-assisted development is incompetent. You're conflating inexperienced people blindly accepting generated output with experienced engineers using AI as an implementation tool.

Those are fundamentally different approaches, even if both involve AI-generated code.

And finally, you're still missing my original point: not every software project needs to become a successful commercial product.

For a passion project, the most important audience is often the developer themselves.

Purple-Ad-3152

JACK applications say "JACK" mostly because those apps were created before PipeWire existed.

The application basically says for the system "heyyy I'm a JACK client and I want to connect to a JACK server!".

Before PipeWire existed, it was a JACK server that responded, and served audio for all JACK clients (often controlled with qjackctl). But in modern audio focused Linux system*, there's no JACK server anymore. It's PipeWire that responds for the JACK clients and says that it's the JACK server.

The JACK application doesn't know (and it doesn't need to know) it actually talks with PipeWire, and PipeWire handles the entire audio backend.

This is why e.g. in somewhat recent Ardour they changed the "JACK" -option to "PipeWire/JACK". But it was just a label change. Basically all JACK applications should follow that example.

*) It's still possible to have JACK server alongside with PipeWire and some still prefer that. But using PipeWire-Jack is generally the recommended one.

Purple-Ad-3152

Well, I'm a self-respecting professional with almost two decades of experience in commercial development; at junior, senior, lead and manager levels.

But I'm also able to read between the lines that absolutely nothing I could say would make a difference. So I'm not going to bother.

Thanks for pointing out that my post history is hidden. It shouldn't be. I'll try to figure out where that can be enabled.

EDIT: Should be visible now.

Purple-Ad-3152

Single click might potentially interfere with click+drag 🤔 I already find that having both double click and middle click resetting is not perfect, because double click to label also allows changes the value. This requires more precise aiming when knob and its label have different functions. Ideally they'd both be the same hit target.

Actually now that I said it out loud, I'll probably change is so that middle click resets and double click allows typing the value.

...or should it be the other way around? What do you think?

Tab (and shift-tab for backwards) selection will be in later versions as I don't have the concept of selection yet. I want to do that carefully for later version as I'll likely allow also multi-selections and multi-selection adjustments.

Purple-Ad-3152

I'm in process of building a plugin and I've used quite a lot of time for solving the knob usability issue you're describing.

First of all, click & drag is just shit. Sure, if you only need the extreme ends, then it can be used. But in general, it's shit.

The one that I find is the absolute best usability: hover & wheel. Simply bring your mouse on top of the control. The control highlights when hovered. Use mouse wheel to turn it. Bueno! Intuitive and very user friendly.

And! Need to adjust turn detailing? Use shift+wheel for high precision turn, and ctrl+wheel for stepped turn.

And! Want to input exact value? Show the value of the knob under the knob and allow changing the numeric value directly by double clicking the label.

And! Reset/recenter? Recenter the knob by double click, or with middle mouse click.

Ladies and gentlemen, this is usability. This is how every single knob works in my upcoming plugin 😎

And why it's a knob? Because when you use hardware midi controller, those have knobs. Linking them together is much better usability when the control types match.

Purple-Ad-3152

With all honesty, yes, there's a lot of slop.

But there are also plenty of professional developers who simply never had the time or resources to bring their passion projects to life before AI.

You can get a browser-based DAW with one prompt.

Or you can get a browser-based DAW through years of manual development.

Or you can get a browser-based DAW through weeks or months of carefully guided, AI-assisted development, with an experienced developer controlling the architecture, implementation, and quality. This can be considerably faster than manual development, and when done correctly, the quality can be just as good or even better.

None of these approaches guarantees bug-free software.

The real difference is that experienced developers understand that building something cool is the easy part. Supporting, maintaining, and evolving it over the years is where the real work lies.

That's why they stay in control of the architecture and development process, even when they don't write a single line of code themselves. It's not fundamentally different from what a Lead or Principal Developer does when directing a development team.

So I wouldn't dismiss new projects simply because we're suddenly seeing so many of them. I'd look at who's behind them, whether they understand what they're building, and whether they're capable of maintaining it.

The development method matters far less than the competence and accountability of the person responsible for the result.

Purple-Ad-3152

Why PulseAudio instead of JACK, PipeWire or ALSA? I might be missing something, but isn't PulseAudio arguably the least suitable option for low-latency audio applications on Linux?

Especially for guitar processing, where latency matters quite a bit. Is there a particular technical reason for choosing it?

Purple-Ad-3152

Hi, My name is Simo Erkinheimo, nice to meet you! Unique name, look it up.

Have been working for ATR Soft past 15 years, doing software development for CAD/manufacturing related industry. Currently postioned as Product Manager of ATR CustomTools.

My hobbies you can find at github.com/sirsipe and my YouTube channel SudoMetalStudio.

I'm not afraid to talk about things I know with my own name and face.

Purple-Ad-3152

I've been in the development business for roughly two decades. I've taught Java in University, I've worked as junior, senior, and lead developer, architect, PO, and product manager, and still am; in a commercial international software product and project development.

I can program fluently in Java, JS, C#, C, C++, VB.NET, T-SQL, AL, Rust, ... and you know what? It's completely useless talent now. As a developer, you can either be butthurt about that, or you can shift your focus on other aspects of related activities. Writing code has always been the easiest task of software engineering.

Everyone, everyone, everyone in professional commercial software development uses -or is in process of moving to use- AI assisted development. Those who are not, will seize to exists very soon.

I know for a fact that when professional developer learns to use AI, that professional developer multiplies his/her productivity and quality of work. Yes, quality too. Especially the quality, because it's some much easier to do also all those tedious small things everyone usually skips.

And I know for a fact that no professional developer can reach that high quality, high productivity output without learning to use AI first. If the quality is shit like it is when you first try it, you just need to learn more.

And developers are the most capable people of learning to use those tools correctly.

I would rather use software written by an AI controlled by a professional developer, than software full of human introduced bugs that no modern top AI-model would ever do.

Purple-Ad-3152

Sampler is coming. Stay tuned! Probably at the end of this month 🙂

Not some amateur hobby-grade stuff, but a real deal. Still working on some rough edges, visuals and ensuring everything works perfectly before the initial launch.

Purple-Ad-3152

No, sorry I can't think of any.

I'm pretty sure LSP Multiband Gate can do exactly that, but I think it has 8 bands. So it's pretty intimidating looking with all the million knobs even if you'd use just two bands.

Purple-Ad-3152

If your gate is simple, then so are you! 🤣 https://youtu.be/H25Lm4J38KA

Jk, I know exactly what you mean. LSPs are like scientific instruments. But I personally love the fact they teach me to understand signal processing much better 🙂

Purple-Ad-3152

Me me me! Definitely Ardour ❤️

I use Lsp-plugins for general mixing/eqs/compression/gates/..., Neural Amp Modeler for guitar and bass sounds, yoshimi for synths (although I don't use them much). I have also NeuralDSP via yabridge, but I find NAM better for mixing. NeuralDSP is still nice for some quick presets for jamming.

This is 100% Ardour with FOSS plugins, but it was before I found NAM and a bit better drums and mixing skills 😅 https://youtu.be/dDaie0EqB6E

Purple-Ad-3152

Also, yeah I think it wont be too much of a fuzz to update this lol. Its basically doing what it's meant to do already but I think the ui can have some love here and there and that is my goal

There's a little mistake in your thought process.

You have forked Carla. Since you advertise your work, you either came for show and tell, or you expect users.

Let's assume you expect users. Then you must understand, your users expect your app to have Carla features + your stuff.

Carla gets new features -> even if you're not adding new features, by minimum you're expected to pull latest changes and recompile/package. But it's not that easy - you need to avoid conflicts when merging. Which is easier said than done considering your fork is just a bloat of two Carla's python files. At least traditionally it would be pretty nasty work. Sure, you'll do that will LLMs also in the future - like everyone. But testing is something you can't hide from and it's the most annoying part usually. You can't outsource responsibility of "product owner".

Question is, for how long are you going to keep doing it? We're not talking about months or a year, but several years; decades in some cases. First release of Carla came out 2014 and it's still updating this year. If you stop updating and Carla keeps updating, you've basically created abandonware.

Carla is just an example. You're also in the mercy of specific Python version and many other libraries that may or may not exist in the future.

There's nothing wrong with little show and tell, though :)

Purple-Ad-3152

Idea is good. I too don't really like Carla's patchbay, but I do like Patchance for routing. Have you tested that? E.g. stereo pair routing is one of those QoL things I can't live without. I basically have it always open for routing and I just use carla as plugin loader/host.

One important thing about these vibed goodies: Don't advertice it unless you will also maintain it. Nothing is as annoying as abandonware, and there's tons of vibed abandonware already. That being said, GREAT if you do start maintaining this one for real. I'll be sure to test it 🙂👍

Purple-Ad-3152

Seen this few times, but now I finally had time to read the README. You've done very good job at least on paper 💪🙂

I'm the author of this script that creates isolated yabridge + wine-staging-9.21 environment: https://github.com/sirsipe/yabridge-setup

Your solution, if it works as adverticed, is much better. Haven't tested it yet though, but I will later. I don't use any of the plugins of those specially treated vendors, but I know many would like to. For me it's important it works well as generic solution for Windows plugins. I'd hate if two similar solutions would have to live side-by-side.

If I may suggest, many have liked the wine-version-selector my solution provides (at least on functional level). Idea is that you register it as .exe/.msi handler and it'll then prompt if the program is normal windows app or plugin installer. Selecting plugin installer obviously then sets the proper env variables to use correct wine+wineprefix etc.

Maybe it could also be some context menu convenience instead of an invasive prompt, but the point is to simplify away all need of launching things with magical environment variables via terminal.

Or do you already handle that somehow?

Purple-Ad-3152

If you happen to use Ubuntu or any recent derivation of it (e.g. Mint), just install ubuntustudio-installer. Run it, and select only low-latency packages and low-latency tweaks. It will configure your current system for low-latency workloads, including those kernel params.

Purple-Ad-3152

Linux is extremely configurable, including its audio processing. Which is why: no, not every distribution has the same audio quality* configuration. But you can have the same in basically all of them.

*) default sample rate, up/down sampling, and bit depth depend on audio server (PulseAudio, Jack, PipeWire) settings, and buffer size default is always a tradeoff between latency and cracks&pops.

What it comes to pro-level low-latency audio configuration, you absolutely can have that with most of the distributions. But can and get it out-of-the-box can be quite far appart depending on the distribution you choose.

Ubuntu Studio is by far the easiest distribution to get professional level audio configuration without even having to open terminal once. AVLinux I've heard is pretty good too.

Note that when choosing audio production focused distribution, you are choosing to have simplicity and extra capabilities around audio work, but that doesn't mean that's all you're stuck with. It's the same Linux - it's perfectly good for gaming and general usage, too.

I use Ubuntu Studio alone as my main computer. I do music production, videos, local AI stuff, gaming (Steam and VR), and programming.

Here's a video I made about how to install & configure Ubuntu Studio: https://youtu.be/-xIeGz9Rd-Y

Purple-Ad-3152

Low-latency kernel is basically deprecated, because you can configure all the same tweaks it has for generic kernel using boot params.

Purple-Ad-3152

Personally: Nope, I don't see any benefits in it for anything that I do.

But I'd love if people had more choise - including being able to choose ProTools for Linux.

Purple-Ad-3152

There's none. There are hobbyist and indie people selling their high morals and ethics, but there are no professional developers who actually work in the industry and are not using LLMs - assisted or agentic. Well maybe some are still in active transition, but everyone is either there or actively moving towards it.