SynthMaker

embedding a vst within a synthmaker plugin

Archive · 2008 23 old posts

From the original SynthMaker forum (2004–2014), with its members’ names and dates.

markneo ·

I'd like to start making plugin effects with synthmaker but there's a couple of features I need that are available in synthedit -embedding vsts within a plugin -pitch detection module (from david haupt)

are these features available in synthmaker or have they been feature requested?

mark

oddson ·

Embedded VSTs are not possible in the current version.

The issue has come up several times. I believe there is a concern of people re-wrapping a VST and reselling it.

A simple pitch detection system could be built with SynthMaker. I had a go at it but got bogged down in the details.

markneo ·

hi oddson,

I found your code for a zero crossing pitch detector. Unfortunately I can't follow it. Do I need to learn some C++ or just read the Synthmaker manuals?

the pitch detector module in synthedit also uses a zero crossing algorithm. It was ported by ikaldor from SynC. It works pretty well

oddson ·

markneo wrote: hi oddson,

I found your code for a zero crossing pitch detector. Unfortunately I can't follow it. Do I need to learn some C++ or just read the Synthmaker manuals?...

You don't need to learn C++ but you would need to know SynthMaker pretty well. The zero-crossing code works and you could just take it as given and try to build something with that. (But you might not want to take it on as a first project.)

I have a file somewhere that was much more advanced than the version posted on the forum. It was one of those projects that was so much harder than I thought it should be. When new things came up it just kept getting dropped further down the list of works in progress until there just isn't any more progress. (Sorry Nix!)

I may resurrect it as a group project and see if anyone here wants to help get it finished (maybe a few others too).

markneo ·

oddson wrote: markneo wrote: hi oddson,

I found your code for a zero crossing pitch detector. Unfortunately I can't follow it. Do I need to learn some C++ or just read the Synthmaker manuals?...

You don't need to learn C++ but you would need to know SynthMaker pretty well. The zero-crossing code works and you could just take it as given and try to build something with that. (But you might not want to take it on as a first project.)

I have a file somewhere that was much more advanced than the version posted on the forum. It was one of those projects that was so much harder than I thought it should be. When new things came up it just kept getting dropped further down the list of works in progress that there just isn't any more progress. (Sorry Nix!)

I may resurrect it as a group project and see if anyone here wants to help get it finished (maybe a few others too).

thanks oddson, you've inspired me to read some manuals (not an easy task!).

I think if your zero crossing code works reasonably well then I should be able to correct for the inevitable tracking errors with some post processing/logic.

Re no embedding vsts within synthmaker plugins: not a dealbreaker I guess. In synthedit, the embedded dll is obvious so there is no real risk of any covert use of any plugins.

mark

Acrobat ·

markneo wrote: In synthedit, the embedded dll is obvious so there is no real risk of any covert use of any plugins.

mark

Mmmh, no, for me it is responsable in lots of cases of instability, runtime errors, etc etc... therefore, I voted "no" when asked if SM might ever include this functionality....

markneo ·

oddson wrote: markneo wrote: hi oddson,

I found your code for a zero crossing pitch detector. Unfortunately I can't follow it. Do I need to learn some C++ or just read the Synthmaker manuals?...

You don't need to learn C++ but you would need to know SynthMaker pretty well. The zero-crossing code works and you could just take it as given and try to build something with that. (But you might not want to take it on as a first project.)

I have a file somewhere that was much more advanced than the version posted on the forum. It was one of those projects that was so much harder than I thought it should be. When new things came up it just kept getting dropped further down the list of works in progress until there just isn't any more progress. (Sorry Nix!)

I may resurrect it as a group project and see if anyone here wants to help get it finished (maybe a few others too).

I'm getting great results detecting pitch - in Reaper using the JS Meters/tuner code. I think it should be fairly easy to port into an SM code module, although I haven't tried yet. Here's the JS script:

// This effect Copyright (C) 2004 and later Cockos Incorporated // License: GPL - http://www.gnu.org/licenses/gpl.html // this algorithm is based on the one used by gtkguituner, the schmitt-triggering.

desc: schmitt-triggering tuner

slider1:0.5<0.001,0.990>trigger factor slider2:1024<128,16384>numsamples slider4:0,octaves from a110 slider5:0<0,12,1{-,A,A#,B,C,C#,D,D#,E,F,F#,G,G#}>note slider6:0<0,10,1{-,[*----|-----],[-*---|-----],[--*--|-----],[---*-|-----],[----*|-----],[-----*-----],[-----|*----],[-----|-*---],[-----|--*--],[-----|---*-],[-----|----*]}>tune slider7:0,freq (Hz)

@init

volthresh=2^(-60/6);

@slider state=0; splpos=0; trigfact=slider1; numsamples=slider2; ufreq = (srate/numsamples)/3; freqcnt=0;

@sample

state ? ( // track minimum and maximum values for sample a1=max(a1,spl0); a2=min(a2,spl0);

splpos[0]=spl0; maxvol = max(maxvol,spl0); splpos += 1; splpos >= numsamples ? ( splpos=0; state=0; a2 *= trigfact; a1 *= trigfact;

lst=0; startp=1; loop(numsamples-1, lst == 0 && startp[0] > a1 ? lst=1; lst == 1 && startp[0] >= a2 && startp[1] < a2 ? lst=2; lst != 2 ? startp+=1; ); smtrig=0; endp=startp+1; tc=0; i=startp; loop(numsamples-startp, smtrig ? ( i[0] >= a2 && i[1] < a2 ? ( endp=i; tc+=1; smtrig=0; ) ) : ( smtrig = i[0] >= a1; ); i+=1;

); endp == startp ? endp += 1;

s = srate * tc / (endp-startp); s > 4 ? slider7=s;

(freqcnt += 1) >= ufreq ? ( freqcnt=0;

oofs=log(slider7/110)/log(2); slider4=oofs|0; slider5=(oofs*12)%12;

slider6=((oofs*12)*100)%100; slider6 >= 50 ? ( slider5 += 1; slider6 -= 100; );

oofs < 0 ? ( slider5 = 12-slider5; slider4-=1;);

slider5 >= 12 ? (slider5-=12; slider4+=1; );

maxvol >= volthresh ? ( abs(slider6)>=25 ? slider6=sign(slider6)*50 : slider6*=2; slider6 += 50; slider6/=10; // 0-10 for funny lookin meter slider6=max(min(slider6+1,10),0); slider5+=1; ) : slider5=slider6=0;

);

sliderchange(8+16+32+64); maxvol =0;

); ) : ( 0[0] <= 0 && spl0 > 0 ? ( state=1; 1[0]=spl0; splpos=2; a1=spl0; a2=0[0]; ); );

spl4 =s;

McBarGig ·

Yeah I don't want to embed either, but it would be nice to be able to host external VST plugs like adding an effects rack to your exe, or your vst for that matter..Now that would be extremely helpful

attic ·

I use synthmaker stuff embedded in Synthedit a lot these days, maybe I don't understand the issue's but I would like to have this functionality. If it works like Synthedit you can't just hide someones plugin inside as it exists on runtime in the vst folder. There can be some minor problems embedding in Synthedit, but you learn quickly what not to do. There are no problems or instability if you don't embed so its seems to me it boils down to choice and you know what they say, Choice is Good. I believe Malc is good enough at what he does to make this happen with zero instability issues. So +1 😈

trogluddite ·

McBarGig wrote: host external VST plugs like adding an effects rack to your exe

That would be my preference too - I prefer to choose my own effects instead of using built in ones for synths, but I also like using my designs as .exe's for live performance on a laptop. It saves the CPU of running a host as well.

I think the synthedit way with all the extra .dll files makes the plugin folders harder to manage, especially if you re-use the same embedded vsts a lot. Also, I think it does still encourage people to disribute vsts when they might not have licence to do that - even if they did it innocently out of ignorance, that's still not good. Bear in mind too, that in some interpretations of the law, OutSIm could potentially face legal action just for being seen to 'encourage' or 'facilitate' copyright breaches - there are some big corporations out there that will happily abuse the law that way if they can use it to put a small competitor out of business.

McBarGig ·

Trog...

there are some big corporations out there that will happily abuse the law that way if they can use it to put a small competitor out of business.

Believe me I know...We've Already bumped legal heads...

attic ·

Believe me I know...We've Already bumped legal heads

$teinberg? 😠

trogluddite ·

Reminds me of a good point I read once... Legal action like this is akin to prosecuting Nike because sometimes criminals use Nike sneakers to run away from the police quicker.

tektoog ·

😀

McBarGig ·

attic...

Pickup Manufacturers to Speaker makers...Take your pick...It boils down to Corporate lawyers that are paid to protect their clients and in doing so scour the web for any possible infringement. One example is Monster Cables, I think they even tried to sue Disney(or somebody) for using the term Monster in Monster Inc. the movie... Monster Cables have become the biggest Joke on the planet in terms of litigation..I mean they have tried to sue Monster Truck Nationals, the Boston Redsox, the list goes on and on...As a result I will never use their products, and If I were an investor there is no way I would put money into these guys...It seems to be quite ridiculous that they would sue Monster Truck Nationals?

I mean everything from Monster Mini Golf, to Monster DOG...It makes me wonder if the owner has any brains at all? or if for some reason he has to let these lawyers do this as a result of some idiotic deal he got into wit them... What the hell does mini golf have to do with Cables?

Just take a look at this for proof, and how ridiculous their lawyers are...These Lawyers are completely ruining this company! http://ttabvue.uspto.gov/ttabvue/v?qt=adv&qs=monster%20cable%20products&page=1

infuzion ·

I'm not even sure why people would want Malc to waste time on something like this really, when SM still has major bugs, & lacks OSX support. Perhaps the basics should be accomplished first?

McBarGig ·

For my part, competing products have this ability...

infuzion ·

McBarGig wrote: For my part, competing products have this ability...

& aren't most of them cross-platform? & stable?

McBarGig ·

haha...🙂

attic ·

The word Monster connotes something wrong or evil; a monster is generally morally objectionable, physically or psychologically hideous, and/or a freak of nature. It can also be applied figuratively to a person with similar characteristics. How ironic that the lawyers seem to fit the Wikipedia description, they need to sue Wikipedia also. http://en.wikipedia.org/wiki/Monster 😈

On the Vst embedding thing I decided I don't care if its there or not, I didn't have my R&D components turned on in preference's witch takes care of most of my issue's with Synthmaker. I would like to see midi functions a bit more robust but I don't think embedding another Vst is a good solution to added functions. I do believe a developers Sdk would be good.

infuzion ·

attic wrote: ...I didn't have my R&D components turned on in preference's witch takes care of most of my issue's with Synthmaker.

That reminds me of a suggestion I wanted to make: remove the "R&D" switch & show all by default.

tor ·

@ markneo:

There is a tool that allows you to do the embedding sort of. Ch. Budde's VST Plugin Merger. With this tool you can merge two or more plugs and make a new GUI for it. I have not tried it my self. But you find it here:

http://www.savioursofsoul.de/Christian/Programs/Plugin_Merger_Install.exe

Tzarls ·

I don´t know about embedding, but it sure would be helpful if SM had some slots for inserting VST , pre input or post output, if only for analisys or testing.

Wrote something here? To have a post removed or your name hidden, write to [email protected].

Before your first post

A few rules keep this a friendly place. You agree to them once.

Shown next to what you post, here and in the app. It doesn’t have to be your real name: 3–24 lower-case letters, digits or _ (capitals become lower case, spaces become _).

    Then your post goes up straight away.

    Delete this reply?

    Open it in SynthMaker?

    It goes on the track you’re editing there, in place of that track’s sound, and into My sounds. Your other tracks stay as they are.

    Want to keep that track’s sound? Start a new song in SynthMaker first (Song › New song), then open this.

    Report this reply?

    Only the developer reads reports. The person isn’t told who reported them.

    What’s wrong with it?

    Block this person?

    You won’t see their posts and replies here any more. They aren’t told, and you can unblock them at any time.

    People you’ve blocked

    Their posts and replies are hidden from you. Unblock someone to see them again.

    The community rules

    A few rules keep this a friendly place. Everyone agrees to them once, before their first post.