Re: VSTPlugin and VST instruments
[email protected] Thu, 03 Jun 2021 12:14:56 +0200
| Newsgroups | gmane.comp.audio.supercollider.user |
|---|---|
| Message-ID | <[email protected]> |
> ...you can just use b.midi directly This is definitely the correct way! VSTPluginMIDIProxy should not be instantiated by the user, as VSTPluginController already holds an instance. I should make this more clear in the docs. Christof Am 3. Juni 2021, 09:10, um 09:10, [email protected] schrieb: >Good answer! The only thing I would add is that you can get the >MIDIProxy >directly from the PluginController. > >Instead of creating a 'c'... > >> c = VSTPluginMIDIProxy(b); > >...you can just use b.midi directly. > >Glen. > > >On Thu., Jun. 3, 2021, 02:17 <[email protected]> wrote: > >> On Wed, Jun 2, 2021 at 3:28 PM <[email protected]> wrote: >> > I think I should use Voicer but at the moment I don't know if it's >> possible to use it with VST instruments and VSTPlugin. >> >> I don't think Voicer is necessary for this. >> >> Most VST plug-ins handle their own voice stealing -- every one that >> I've ever looked at has a "polyphony" or "voices" parameter. So the >> easiest way to handle voice stealing is to set the plug-in >> appropriately. >> >> The original question was about playing a note in a VST plug-in for a >> specific duration (where the duration is known in advance). >> >> Events already automatically do this. >> >> You didn't want to use patterns, but there is no requirement to use >> patterns in order to use events. You can build the event yourself and >> play it. >> >> ``` >> ( >> SynthDef(\vst, { arg out; >> Out.ar(out, VSTPlugin.ar(numOut: 2)); >> }).add; >> ) >> >> a = Synth(\vst); >> b = VSTPluginController(a); >> >> b.open("Vital.vst3", editor: true); >> b.editor; >> >> // here: >> (type: \vst_midi, vst: b, midinote: 64, amp: 100/127, sustain: >3).play; >> ``` >> >> ^^ So, in the last one, it is sustaining the note for three beats -- >> the release is handled for you -- and no patterns were used. >> >> (The VSTPluginController help file does say "VSTPlugin defines two >> custom Event types which can be used in Pbind"... This is true as >> stated, but if you misread it slightly, you might think that the >event >> types may *only* be used in Pbind. That inference is not correct. >> Events are independent of patterns. They are commonly used with >> patterns, but there was never any requirement that events must be >> generated by patterns.) >> >> If you really strongly object to using events, you can schedule the >> release yourself: >> >> ``` >> c = VSTPluginMIDIProxy(b); >> >> ( >> c.noteOn(0, 64, 100); >> thisThread.clock.sched(3, { c.noteOff(0, 64) }); >> ) >> ``` >> >> hjh >> >> _______________________________________________ >> sc-users mailing list >> >> info (subscription, etc.): >> >http://www.birmingham.ac.uk/facilities/ea-studios/research/supercollider/mailinglist.aspx >> archive: http://www.listarc.bham.ac.uk/marchives/sc-users/ >> search: http://www.listarc.bham.ac.uk/lists/sc-users/search/ >>