Can I make an effect able to receive Midi?
-
- KVRist
- 379 posts since 1 Mar, 2004 from Austria
-
- KVRAF
- 2495 posts since 18 May, 2004 from ATL-USA
You'll have to be more descriptive...
There are LOTS of FX that recieve MIDI info.
Are you wanting to make a Vst to do this (i.e. Synthedit)?
There are LOTS of FX that recieve MIDI info.
Are you wanting to make a Vst to do this (i.e. Synthedit)?
Anti-aliasing is for "synthmonk%ys".
-
- KVRist
- Topic Starter
- 379 posts since 1 Mar, 2004 from Austria
-
- KVRian
- 742 posts since 22 Jun, 2004
Take a look in the VST SDK at the VSTXSynth example. Has everything you need to get going on recieving midi events...
Paul
Paul
__________________________
Paul Chana
Senior Software Engineer
FXpansion Audio UK Ltd
Paul Chana
Senior Software Engineer
FXpansion Audio UK Ltd
-
- KVRist
- Topic Starter
- 379 posts since 1 Mar, 2004 from Austria
-
- KVRist
- Topic Starter
- 379 posts since 1 Mar, 2004 from Austria
-
- KVRist
- 300 posts since 11 Feb, 2003
I think its realy depends on the host...in Tracktion and energyXT you can for sure since I am using effects with Midi there...you probably need to call wantEvents in order to get the Midi events
-
- KVRAF
- 1940 posts since 16 Aug, 2004 from Vienna, Austria
As you might know if you "know the things in VST-SDK", a plugin has no idea about tracks, that being a concept of the program hosting the PlugIn... or not.Fhangor wrote:I know the things in VST-SDK. But before I program I need to know if I can put an effect on a track and am able to receive the midievents on that track...
Making an synth i know how to do, but in an effect, is it the same?
In this respect, the plugin works just like a hardware device, which receives MIDI data from the sequencer if and when the sequencer sends them to the MIDI port the synth is connected to. Only that in case of the PlugIn it's a "virtual" MIDI port, not a real one.
So, the answer in this case is - if you need this, you need to look at the host program's capabilities first. The PlugIn only sees MIDI messages coming in (check processEvents() and the attached concepts) and can decide whether to react on them. Everything else, such as whether the PlugIn receives a specific MIDI message or not, is up to the hosting program.
Edit: a quick glance at your profile shows you're from Austria. In that case... bei VST-Problemen kontaktier' mich, ich kenn' mich schon ein wenig aus
-
- KVRian
- 1325 posts since 1 Sep, 2004
Of course you will receive MIDI from a "track" anyhow. From what else?Fhangor wrote:I know the things in VST-SDK. But before I program I need to know if I can put an effect on a track and am able to receive the midievents on that track...
Making an synth i know how to do, but in an effect, is it the same?
But not from an audio track, of course.
So there the host will provide you with the ability of routing one or more MIDI channels to that plugin...
Be sure to do a call to wantEvents() on resume(), because you wouldn't receive anything in other case.
The declaration of the "cando" properties is the same as on building a usual VSTi. Also the implementation.
And yes, it is dependant from the host application, how it concretely works. There may be differences but the interface is standardized.
.
-
- KVRist
- 300 posts since 11 Feb, 2003
It realy depends on the host, in tracktion you can get it from an 'audio track' since all tracks can have both audio and midi...jackle&hyde wrote: But not from an audio track, of course.
.
-
- KVRian
- 515 posts since 18 Jan, 2004 from PHX AZ
It really is as simple as adding wantEvents() in resume() and receiveVstMidiEvent in canDo(). If you have that, your effect will show up as a possible MIDI destination, however the host chooses to deal with that.
Of course, you have to do something with the events; for that, you need to have, in addition to process() and processReplacing(), a processEvents() loop. If you add isSynth() to the constructor, presto, you have a VSTi. Not much to it.
Chris Randall
Audio Damage, Inc.
http://www.audiodamage.com
Of course, you have to do something with the events; for that, you need to have, in addition to process() and processReplacing(), a processEvents() loop. If you add isSynth() to the constructor, presto, you have a VSTi. Not much to it.
Chris Randall
Audio Damage, Inc.
http://www.audiodamage.com

