having fun with kvr developers

DSP, Plug-in and Host development discussion.
xoxos
Mr Entertainment

Topic Starter

12372 posts since 30 Apr, 2002 from i might peeramid

Post Sat Nov 13, 2021 5:00 am

S0lo wrote:
Fri Nov 12, 2021 11:38 pm
Also, if you're using VST3. Consider using VSTGUI instead of using Direct2D directly when ever possible. This will allow easy portability to MAC/Linux in the future. And at the same time you'll probably not loose in hardware acceleration because AFAIK, VSTGUI uses Direct2D as its backend in windows.
i'm sorry i've confused the threads, i'm working at d2d for windows not steinberg atm. but i'll be on vst2gui sometime, thanks.

i'll manage eventually :lol:

pointless statements:

i've found three separate "your first direct2d program" pages from microsoft, none of which are serviceable.

https://docs.microsoft.com/en-us/window ... 2d-program
on this example, we have to build a winbase.h, because we are making the entire windows code object oriented.

they want you to whang together a winbase.h from this
https://docs.microsoft.com/en-us/window ... ion-state-

who is thinking, i'd like to learn graphics, so let's make my entire window implementation object oriented and start it all again instead of using what my generator produces.

https://docs.microsoft.com/en-us/window ... quickstart
here's another "quickstart into direct2d" page in an entirely different document tree. i think there is an entirely discrete, other "first steps" walkthrough in this one somewhere, but they are both comprised of instructions lacking the specificity for someone of my age and erudition.

tbh i'm not sure how many "getting started with visual studio and win32 c++" documents there are, i'd swear there are five or six entirely separate document structures. i'm sure that two different tutorials were presented to me when i installed visual studio, one inside the app. i keep finding new ones with entirely blue unvisited links "but i've been following the win32 introduction for the last week".

atm i'm going through a half hour video with an austrailian who makes entertaining teacher noises when he forgets what he's doing, but so far he's written his d2d code in an object oriented manner, to add to a preexisting windows document, instead of doing a tutorial on adding graphics, by entirely reconfiguring the windows code.

im glad i have somewhere to at least say, are you f**king retarded microsoft.
you come and go, you come and go. amitabha neither a follower nor a leader be tagore "where roads are made i lose my way" where there is certainty, consideration is absent.

xoxos
Mr Entertainment

Topic Starter

12372 posts since 30 Apr, 2002 from i might peeramid

Post Sun Nov 14, 2021 7:56 am

here's another vst sdk question :)

https://developer.steinberg.help/displa ... +Generator

steinberg's "use the project generator" tutorial first has you add this:

Code: Select all

enum GainParams : Steinberg::Vst::ParamID
{
    kParamGainId = 102, // should be an unique id...
};
i think there was some mention somewhere of this being a new scheme to group parameters into ? "useful groups for grouping parameters with" because i'm sure that trying to untangle someone's preconceptions so i can implement my own is sensible,

in tutorials and even in some of the example plugin scripts, this crap is replaced with a simple unadorned enum{} creation of the list of param integers and their really stupid text equivalents (i'm used to this, i've seen it before).

so i'm not asking, is someone actually a mental, i'm asking,

why can't i find any more information on the "awesome forward moving parameter organising scheme" hinted at in the first example. where is a list of the categories to conform to? can't seem to find a reference, i think no one wants to add all their params as gain params. personally i just remove the whole enum declaration stuff and *typed real numbers* which i know is like crazy talk to proper educated software devs but jesus you people talk think and do some useless ass bullshit because you are so afraid of using things that are themselves and not anything else in case you get disorganised!.

if you want to get in a fight, try to explain to me why people create a SafeRelease() process for executing a Release() function but involving several more lines of code in a wrapper somewhere else with a handle to something they could have just Released()? hint i don't want an answer i just think you're dysfunctional people who glorify being able to type.

"this time i really don't answer" - yellowman, "nobody move, nobody get hurt"
you come and go, you come and go. amitabha neither a follower nor a leader be tagore "where roads are made i lose my way" where there is certainty, consideration is absent.

mystran
KVRAF
6761 posts since 12 Feb, 2006 from Helsinki, Finland

Post Sun Nov 14, 2021 9:24 am

xoxos wrote:
Sun Nov 14, 2021 7:56 am
if you want to get in a fight, try to explain to me why people create a SafeRelease() process for executing a Release() function but involving several more lines of code in a wrapper somewhere else with a handle to something they could have just Released()? hint i don't want an answer i just think you're dysfunctional people who glorify being able to type.
SafeRelease is great. It allows you to safely release your objects as many times as you feel like, so you don't need to bother trying to understand your own code, while simultaneously avoiding the evil of RAII wrappers that would release for you automatically, behind your back, making the code a lot harder to understand, as if you tried in the first place.

There might or might not have been sarcasm in this post, but I just sometimes find it a bit funny how sometimes people go to great lengths to make their code a lot more complicated, while simultaneously managing to avoid all the actually useful practices.
Preferred pronouns would be "it/it" because according to this country, I'm a piece of human trash.

xoxos
Mr Entertainment

Topic Starter

12372 posts since 30 Apr, 2002 from i might peeramid

Post Sun Nov 14, 2021 2:44 pm

i'll watch out for them wrappers. irony the driving force behind it all, maybe, i used a compiler that didn't use resource files for almost two decades, it was so fast and tidy, i could never do the things. what kind of moron would not prefer it. really good programming experience.

i mean i always intend to be helping people, but generally all i do here is say how bad stuff people did is.
you come and go, you come and go. amitabha neither a follower nor a leader be tagore "where roads are made i lose my way" where there is certainty, consideration is absent.

User avatar
syntonica
KVRian
1263 posts since 25 Sep, 2014 from Specific Northwest

Post Sun Nov 14, 2021 3:31 pm

Or, you can just create and release objects properly rather than using the equivalent of an Uzi to bump off unwanted objects. :lol:

Most of the great improvements that I see in programming languages are there to punish those who know what they are doing and keep the idiots from shooting themselves in their feet. If C let me stick a method in my struct (or at least provide namespaces), I'd never look back.

User avatar
S0lo
KVRian
977 posts since 31 Dec, 2008

Post Sun Nov 14, 2021 7:24 pm

@xoxos

History + too many developers + different objectives + backward compatibility + misunderstanding + consistency + in-consistency + too many opinions over time = complicated code

Its almost unavoidable in a big company. Best code is usually one that is written by 2 or 3 guys/girls max over a few years. And then locked with little to no upgrades except for minor bug fixes. Edit: obviously this is not always possible

Even ONE person, even one programmer may have opposing opinions of his own over a long period of time!! Why? because we learn as we grow up. We also forget. We may even forget that we forgot. I bet if you look at some of your own code years back you'd be giggling and say "why the hell did I do that?". And I bet that years back, you had a mind set that lead you to have a good reason for it.

xoxos
Mr Entertainment

Topic Starter

12372 posts since 30 Apr, 2002 from i might peeramid

Post Mon Nov 15, 2021 4:06 am

truth but goes without saying we've all cultivated some sense of the value of restraint as well as candor, the code bases would "doubtlessly" be more elegant and sensible if it wasn't for non-programmatic interests. less troubling to some than others seemingly.

it's important to have these discussions so aspiring programmers don't begin with a sense of authoritative trust. add a bit of theatre for visibility. because i still wander into threads where half a dozen professionals are having a glee party with people who may otherwise actually be capable of innovation if not applied problem solving. it's like a fever dream, "no, no, i don't want to make my base windows code object oriented in order to use the screen".

trying to learn a development venue outside of an institution (formal or otherwise) is very isolating. once petzold has got you all alone, no one's going to understand. you can tell your parents, your friends, your minister, but they don't know, they can't see what's going on or what that man does to you.

:hihi:
you come and go, you come and go. amitabha neither a follower nor a leader be tagore "where roads are made i lose my way" where there is certainty, consideration is absent.

User avatar
BertKoor
KVRAF
13369 posts since 8 Mar, 2005 from Utrecht, Holland

Post Mon Nov 15, 2021 7:44 am

Nothing new. A quick search in this subforum on keywords "vst3 documentation" brings up 73 thread since 2007. Mostly all complaining about the lack of, contradicting itself, poor basic design, etc etc etc.

It's a small miracle that plenty developers manage to produce VST3 plugins that just work in the majority of hosts (not joking, that's my honest opinion)
We are the KVR collective. Resistance is futile. You will be assimilated. Image
My MusicCalc is served over https!!

User avatar
S0lo
KVRian
977 posts since 31 Dec, 2008

Post Mon Nov 15, 2021 10:12 am

Agree. I miss the days of the MSX and the Amiga :party:. Despite the limitations
xoxos wrote:
Mon Nov 15, 2021 4:06 am
trying to learn a development venue outside of an institution (formal or otherwise) is very isolating. once petzold has got you all alone, no one's going to understand. you can tell your parents, your friends, your minister, but they don't know, they can't see what's going on or what that man does to you.

:hihi:
Absolutely no one around me or remotely around me knows what the hell a synth is. Let alone programming it. I don't suppose it's a thing about programming in general. But plugin programming in particular is an odd ball. It requires more than the usual skills. You have to really like it to do it. But I guess I'm just stating the obvious :P :hihi:

User avatar
syntonica
KVRian
1263 posts since 25 Sep, 2014 from Specific Northwest

Post Mon Nov 15, 2021 5:27 pm

S0lo wrote:
Mon Nov 15, 2021 10:12 am
It requires more than the usual skills. You have to really like it to do it. But I guess I'm just stating the obvious :P :hihi:
I've noticed there is a certain amount of masochism required. Programming on unfamiliar platforms with rather dodgy and bloated frameworks...

xoxos
Mr Entertainment

Topic Starter

12372 posts since 30 Apr, 2002 from i might peeramid

Post Mon Nov 22, 2021 5:58 pm

anyone want to guess why visual studio doesn't like any way i overload operators?

in myprogram.h i have something like:

Code: Select all

class point {
private:
	double x, y, z;
public:
	point();
	~point();
	double dist() {
		return sqrt((x * x + y * y + z * z));
	}
};
i've been trying to overload operators for eg. addition. in borland, i could accomplish this with

Code: Select all

point operator + (point param) {
	return point(x + param.x, y + param.y, z + param.z);
}
which gives me error C2440: '<function-style-cast>': cannot convert from 'initializer list' to 'point'

i've tried putting it outside the class declaration where hopefully it would concede that 'point' is a thing but same error

Code: Select all

point point::operator + (point param) {
	return point(x + param.x, y + param.y, z + param.z);
}
can i have my evening back microsoft?
you come and go, you come and go. amitabha neither a follower nor a leader be tagore "where roads are made i lose my way" where there is certainty, consideration is absent.

User avatar
S0lo
KVRian
977 posts since 31 Dec, 2008

Post Mon Nov 22, 2021 11:41 pm

I'm guessing you need to make a constructor point(double vx, double vy, double vz) { x=vx; y=vy; z=vz; }
Last edited by S0lo on Tue Nov 23, 2021 12:34 am, edited 1 time in total.

User avatar
DJ Warmonger
KVRAF
4393 posts since 7 Jun, 2012 from Warsaw

Post Mon Nov 22, 2021 11:53 pm

Different argument type. Operators take

Code: Select all

const &
arguments. As should most of functions, anyway.

https://www.ibm.com/docs/en/zos/2.1.0?t ... -operators
Blog ------------- YouTube channel
Tricky-Loops wrote: (...)someone like Armin van Buuren who claims to make a track in half an hour and all his songs sound somewhat boring(...)

xoxos
Mr Entertainment

Topic Starter

12372 posts since 30 Apr, 2002 from i might peeramid

Post Tue Nov 23, 2021 3:09 pm

i saw someone do it like that, consts everywhere. never needed them. schildt doesn't have them. kaaaahn.
you come and go, you come and go. amitabha neither a follower nor a leader be tagore "where roads are made i lose my way" where there is certainty, consideration is absent.

rafa1981
KVRian
676 posts since 4 Jan, 2007

Post Wed Nov 24, 2021 10:15 am

Honestly, in your situation I'd make myself this question: Do I want to mostly code DSP or to dedicate a year+ of frustration to learn and code against mad corporation-created interfaces that I don't really care about?

If the answer is to do DSP, just tweak a JUCE/iPlug example and don't look back. You are going to code against an interface anyways, be it VST3 or a wrapper. They have paved the way.

If not your code is going to be bigger: more bugs, you will need to understand more nonsense interfaces, etc.

We aren't infinite my man, time flies.

Return to “DSP and Plug-in Development”