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 27, 2021 8:22 am

this is hilarious :)

i understand appreciation may be relative for the "incongruity between my expectations and sdk performance" but i'm talking about win32 c++ in virtual studio "the language for the world".. being unable to build classes with the same simple commands i used in borland..

..so i'm wondering how to put text on the screen. should i gdi on top of direct2d or DirectWrite i think it is.

you know why they call it all direct because it's homonym for "die wrecked", secret societies love that kind of stuff, it's sort of true about the villains always revealing their plans because of their fatal egos.

so DirectWrite is a mess, at least a score of lines of commands just to put a word on the screen. super nice example tho, gold and real fancy like you'd see on the side of a custom van. with the old GDI, you need to create an hfont, specify the font, create a hdc, associate the hfont with the hdc to write on.. that's four lines, two object declarations and two assignments. then i think a fifth to declare the colour of the font is optional.

GDI text is a simple matter at the sixth instruction in borland's windows: TextOut(x, y, "my text", 7);

well, virtual studio didn't like that because it wasn't the correct string format for _it_. fortunately, for me, it compiled successfully when casting "my text" as the new, hep, "with-it" string format (LPCWSTR) it likes. yay! :)

compile. run.

at (x, y) i see some lovely chinese characters :D
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 Sat Nov 27, 2021 10:08 am

xoxos wrote:
Sat Nov 27, 2021 8:22 am
GDI text is a simple matter at the sixth instruction in borland's windows: TextOut(x, y, "my text", 7);

well, virtual studio didn't like that because it wasn't the correct string format for _it_. fortunately, for me, it compiled successfully when casting "my text" as the new, hep, "with-it" string format (LPCWSTR) it likes. yay! :)
All the WinAPI functions that take strings are available in both "ascii" and "wide" variants. The undecorated names (eg. TextOut) are macros that map to one of the variants depending on what character set is chosen in the project properties (which defaults to wide = UTF16), but you can pick a variant manually as well by adding A or W at the end of the function name (eg. TextOutA will take char*).
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 28, 2021 3:56 am

mystran wrote:
Sat Nov 27, 2021 10:08 am
undecorated
that is how i see it, yes :hihi: veteran APIs. (i added a big L before the first quote, but definately not a big L, space and then a quote).
wave.png
obviously n body (rosettacode) with recentering, haven't tried some of the fancier integrators people use for it, system keeps ejecting bodies, using spring networks may be more pertinent. my soundcard didn't let me record it too well but the short sounds i generated vary in pitch and timbre as attractors tend to to the extent that i am unsure whether the result will more resemble noise or someone reciting sonnets in a car wash. not expensive to compute but eg. 8x puts it in a more appreciable range.
You do not have the required permissions to view the files attached to this post.
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 28, 2021 6:26 pm

wave2.png
wave3.png
wave4.png
wave5.png
wave8.png
You do not have the required permissions to view the files attached to this post.
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 Mon Nov 29, 2021 2:26 pm

back to steinberg's sdk..

it appears that i've sussed out all of the vital elements of plugin functionality, except for that crummy parameter default update rate they stick you with :) but this process is really failing with file writing permissions.

i don't know what happened, but now, not only do i have to delete the contents in the ../commonfiles/vst3/ folder, i also have to delete the files in documents/VST_SDK/my_plugins/ or it won't rewrite them when the solution compiles...

i don't know how this is all so retarded that it still doesn't let me use a compiler to create a compiled file.

any hints? hire the A team and hold the steinberg development team hostage?

one thing that is pretty much bullshit is that when i got to editing the editor.uidesc file, all of my editing preferences didn't mean shit. suddenly it was providing me with closed quotes and close tags when i type the open quote or tag. decommenting things doesn't mean anything in steinberg's choices for editing this document. i don't know why a special type of document deserves a special type of editing preferences.



but for reals, the OO code i was working with for the attractor that wouldn't work because visual studio classes don't work like in schildt, threw it out and rewrote it all in C.

float x[32];
float y[32];

x[j] += vx[j];
y[j] += vy[j];

like that. didn't use any structure for vectors, just did all the operations for x and y separately so it has two lines for each operation. it's still 1/3 the length of code it would take to write it as a class.

people went crazy.

i also don't understand how the file is over 8 meg, but you still have another folder for the graphic elements...

..but kudos steinberg for the random generator in the vst host. it seems to come up with good stuff, like turing machine.
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 Sat Dec 11, 2021 5:39 am

currently going through gui element creation with .uidesc files, feeling pretty dumb doing them one at a time and having to copy the text.

wondering if there's a repository or reference for editing the gui in .uidesc by text since my folder linking is sporadic (works second day i open the solution?)

the gui tutorial references you to the ui editing app opened by right clicking the vst's gui. i'm currently mystified by eg. making text without a solid black blackground, is there a way to display label or value associated with cknob.

i guess i'm not real bright, steinberg's ui editor has eg. what looks like a capital A to indicate text, but i can't make it do anything or really seem to connect with how the app wants me to think about it's controls.

i'd like to have arbitrary graphical interface on the gui.. a region where i can display spectral or quadrature data graphically and detect click positions.. where in the vst sdk should i use GDI or direct2d?
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 Sat Dec 11, 2021 6:18 am

xoxos wrote:
Sat Dec 11, 2021 5:39 am
i guess i'm not real bright, steinberg's ui editor has eg. what looks like a capital A to indicate text, but i can't make it do anything or really seem to connect with how the app wants me to think about it's controls.
Just know that VST3 is probably one of the difficult ways to START programming with, specially if it's your first time doing code from scratch like that. I can't imagine the amount of confusion. "Experts" has struggled with it when moving from VST2 to VST3
xoxos wrote:
Sat Dec 11, 2021 5:39 am
i'd like to have arbitrary graphical interface on the gui.. a region where i can display spectral or quadrature data graphically and detect click positions.. where in the vst sdk should i use GDI or direct2d?
Use VSTGUI. (ask me why).

xoxos
Mr Entertainment

Topic Starter

12372 posts since 30 Apr, 2002 from i might peeramid

Post Sat Dec 11, 2021 6:44 am

i haven't been through all of the reference for commands, but the tutorial is real scanty on what vstgui offers or how to use it, so i'm going to be surprised if i use anything. i'd like to convey some meaningful information on the screen, having to use a ui editor isn't my choice for how i'd set that up.

how do i effect a pixel otherwise? don't know.
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 Sat Dec 11, 2021 6:55 am

S0lo wrote:
Sat Dec 11, 2021 6:18 am
xoxos wrote:
Sat Dec 11, 2021 5:39 am
i'd like to have arbitrary graphical interface on the gui.. a region where i can display spectral or quadrature data graphically and detect click positions.. where in the vst sdk should i use GDI or direct2d?
Use VSTGUI. (ask me why).
I'm not convinced that VSTGUI is the answer, but .. yeah using some toolkit over raw native APIs might be a good idea unless you're in the mood of writing your own toolkit..
Preferred pronouns would be "it/it" because according to this country, I'm a piece of human trash.

User avatar
S0lo
KVRian
977 posts since 31 Dec, 2008

Post Sat Dec 11, 2021 7:02 am

The thing is, VSTGUI is at least (supposed to be) platform independent. So after a few years when you've made a big chunk of code. It would be much much easier for you to port your code to MAC/linux.

Plus what if Microsofty dumps Direct2D for a newer technology a few years from now? Just like they did for GDI+. You'll have to re-write every thing to be hardware accelerated. With VSTGUI, at least you'll have a semi-assurance that it's going to work. (well, if you don't trust steinberg on that, you might as well just not use VST3) :)

The choices you make now, are going to affect you forever.

User avatar
S0lo
KVRian
977 posts since 31 Dec, 2008

Post Sat Dec 11, 2021 7:06 am

Admittedly, there might be things that VSTGUI won't help you with. (Example: drawing nice cables on screen). Then you'll have to fall back to the OS (and do it per OS). Otherwise, the big chunk of it, like knobs, sliders, containers, frames, labels etc. can be handled well with VSTGUI. It's designed for it.

xoxos
Mr Entertainment

Topic Starter

12372 posts since 30 Apr, 2002 from i might peeramid

Post Sat Dec 11, 2021 7:26 am

where am i supposed to find out about it?

sorry
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 Sat Dec 11, 2021 7:37 am

Under your VST3 folder:

vstgui4/vstgui/Documentation/html/index.html

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

Post Sat Dec 11, 2021 7:58 am

S0lo wrote:
Sat Dec 11, 2021 7:06 am
Admittedly, there might be things that VSTGUI won't help you with. (Example: drawing nice cables on screen). Then you'll have to fall back to the OS (and do it per OS). Otherwise, the big chunk of it, like knobs, sliders, containers, frames, labels etc. can be handled well with VSTGUI. It's designed for it.
No, seriously... use some modern toolkit like JUCE or iPlug or whatever that actually supports the stuff you want.. or use a library like nanovg that is more or less trivial to wrap around any API that can push some polygons...

...and even if you choose to instead use native OS functionality, then really the only think you should do against the native API is wrap it into some sort of interface that you can also implement on whatever other OS you want to support. There's like absolutely zero good reason to ever do any high-level things like "drawing cables" by poking native APIs directly.
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 Sat Dec 11, 2021 8:04 am

S0lo wrote:
Sat Dec 11, 2021 7:37 am
Under your VST3 folder:

vstgui4/vstgui/Documentation/html/index.html
not that i'd once considered looking locally, despite precedence, i get up to vstgui but no documentation/ or index.html i can find.

so the only way i've got is to see if i can figure out how to make an element with the editor, then manually save the file and copy the text. having some kind of textual overview of the methods and their references would be so keen.
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.

Return to “DSP and Plug-in Development”