Hello,
I would like to use pd to host a VST instrument. Then I expect that the midi keyboard can trigger notes. After that I will also need to send DMX command for lights from the same midi notes. I hope that puredata is the correct tool.
I found the thomas's vst~ description : http://puredata.info/Members/thomas/vst I try first to use the vst~ object from binary (windows) to avoid installing any SDK. To work around an error message concerning loading loadbang, I installed the vanilla 0.43 instead of the newest 0.47. (I believe I need to compile vst / flext / pd to use the latest).
I would like to check the aim of the patch vst~-help.pd I can load my vst instrument with the patch, the display edit window checkbox shows the vst instrument GUI. My question concerns the noise~ in input, can I replace it by a midi notein object ? The element named "pd midi" in the patch seems to generate midi and not to receive, is that right ?
With best regards,
Vincent Vanbesien
PS : This is the plain text version of my previous e-mail
On 2016-08-29 09:45, Vincent Vanbesien (DIEHCO) wrote:
My question concerns the noise~ in input, can I replace it by a midi notein object ?
no. [noise~] produces an audio-signal (a bunch of numbers representing audio samples), wheras [notein] produces a message (a high-level structured event representing arbitrary data).
not all vst-plugins take midi-notes, but [vst~] might have a way to get the available messages you can send to a given plugin (but i don't know as i never use it).
The element named "pd midi" in the patch seems to generate midi and not to receive, is that right ?
no, actually it documents how to send midi events (e.g. notes) to a plugin. the [s $0-vst] forwards all messages it receives to [r $0-vst], which sends them to the [vst~] object.
so to answer your question, use something like
[notein 1] | | [pack 0 0] | [note $1 $2( | [vst~]
this will take the note-in data (key and velocity) and create a new message with selector "note" and the data and send that to [vst~].
fgmasd IOhannes
Thank you IOhannes for the helpfull answer.
However, it seems ctlin and notein outputs are note syncronised then it happens that the pack object triggered by first argument sends its output with in second argument the previous/older note.
*Vincent VANBESIEN
Le 29/08/2016 10:51, IOhannes m zmoelnig a écrit :
On 2016-08-29 09:45, Vincent Vanbesien (DIEHCO) wrote:
My question concerns the noise~ in input, can I replace it by a midi notein object ?
no. [noise~] produces an audio-signal (a bunch of numbers representing audio samples), wheras [notein] produces a message (a high-level structured event representing arbitrary data).
not all vst-plugins take midi-notes, but [vst~] might have a way to get the available messages you can send to a given plugin (but i don't know as i never use it).
The element named "pd midi" in the patch seems to generate midi and not to receive, is that right ?
no, actually it documents how to send midi events (e.g. notes) to a plugin. the [s $0-vst] forwards all messages it receives to [r $0-vst], which sends them to the [vst~] object.
so to answer your question, use something like
[notein 1] | | [pack 0 0] | [note $1 $2( | [vst~]
this will take the note-in data (key and velocity) and create a new message with selector "note" and the data and send that to [vst~].
fgmasd IOhannes
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
On 2016-08-30 12:20, Vincent Vanbesien (DIEHCO) wrote:
Thank you IOhannes for the helpfull answer.
However, it seems ctlin and notein outputs are note syncronised then it happens that the pack object triggered by first argument sends its output with in second argument the previous/older note.
i'm not sure whether i can parse this. [notein] will first output on the right outlet and then on the left outlet, so the [pack]ed message will be correct (as it only outputs the list after the left inlet is filled - which happens after the right inlet got it s data).
i don't know where you get your [ctlin] from (you haven't mentioned it before). but anyhow: in MIDI each event is atomic (so a note-on event cannot be interrupted by a control-in event), but the sequence of arrival is defined by the sender: so if you first send your ctlin message and then your note-on, then the ctrlin even will naturally appear before the note-onl.
in any case: Pd makes it easy to synchronize messages: use hot/cold-inlets and triggers (this is probably the single most important thing to understand about Pd)
fgm,asdr IOhannes
*Vincent VANBESIEN
Le 29/08/2016 10:51, IOhannes m zmoelnig a écrit :
On 2016-08-29 09:45, Vincent Vanbesien (DIEHCO) wrote:
My question concerns the noise~ in input, can I replace it by a midi notein object ?
no. [noise~] produces an audio-signal (a bunch of numbers representing audio samples), wheras [notein] produces a message (a high-level structured event representing arbitrary data).
not all vst-plugins take midi-notes, but [vst~] might have a way to get the available messages you can send to a given plugin (but i don't know as i never use it).
The element named "pd midi" in the patch seems to generate midi and not to receive, is that right ?
no, actually it documents how to send midi events (e.g. notes) to a plugin. the [s $0-vst] forwards all messages it receives to [r $0-vst], which sends them to the [vst~] object.
so to answer your question, use something like
[notein 1] | | [pack 0 0] | [note $1 $2( | [vst~]
this will take the note-in data (key and velocity) and create a new message with selector "note" and the data and send that to [vst~].
fgmasd IOhannes
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
hello, I did some print before and after the object [pack 0 0]
For the [notein] with m-audio keyRig 49, inputs and outputs are coherent. But not for the BCF2000 switches and [ctlin] (anyway it was just a testing for the latest).
Finally, the problem seems come from the vst~ that miss some event when releasing (note 0) (but also sometimes when pushing). It is easy to reproduce pushing only 2 keys. I understand that the VST plugin instrument stay in sustain period until receiving again the note 0. I tried with different plugins.
My config is windows 10, puredata 0.43.3 and vst~.dll is from this page : http://grrrr.org/data/dev/ext/windows/pd/ Should I compile the whole with newest source for puredata ? from cygwin or Microsoft Visual C ? regards, *Vincent VANBESIEN* Le 30/08/2016 12:59, IOhannes m zmoelnig a écrit :
On 2016-08-30 12:20, Vincent Vanbesien (DIEHCO) wrote:
Thank you IOhannes for the helpfull answer.
However, it seems ctlin and notein outputs are note syncronised then it happens that the pack object triggered by first argument sends its output with in second argument the previous/older note.
i'm not sure whether i can parse this. [notein] will first output on the right outlet and then on the left outlet, so the [pack]ed message will be correct (as it only outputs the list after the left inlet is filled - which happens after the right inlet got it s data).
i don't know where you get your [ctlin] from (you haven't mentioned it before). but anyhow: in MIDI each event is atomic (so a note-on event cannot be interrupted by a control-in event), but the sequence of arrival is defined by the sender: so if you first send your ctlin message and then your note-on, then the ctrlin even will naturally appear before the note-onl.
in any case: Pd makes it easy to synchronize messages: use hot/cold-inlets and triggers (this is probably the single most important thing to understand about Pd)
fgm,asdr IOhannes
*Vincent VANBESIEN
Le 29/08/2016 10:51, IOhannes m zmoelnig a écrit :
On 2016-08-29 09:45, Vincent Vanbesien (DIEHCO) wrote:
My question concerns the noise~ in input, can I replace it by a midi notein object ?
no. [noise~] produces an audio-signal (a bunch of numbers representing audio samples), wheras [notein] produces a message (a high-level structured event representing arbitrary data).
not all vst-plugins take midi-notes, but [vst~] might have a way to get the available messages you can send to a given plugin (but i don't know as i never use it).
The element named "pd midi" in the patch seems to generate midi and not to receive, is that right ?
no, actually it documents how to send midi events (e.g. notes) to a plugin. the [s $0-vst] forwards all messages it receives to [r $0-vst], which sends them to the [vst~] object.
so to answer your question, use something like
[notein 1] | | [pack 0 0] | [note $1 $2( | [vst~]
this will take the note-in data (key and velocity) and create a new message with selector "note" and the data and send that to [vst~].
fgmasd IOhannes
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
On Tue, Aug 30, 2016 at 11:03 AM, Vincent Vanbesien (DIEHCO) < electronique@diehco.com> wrote:
Finally, the problem seems come from the vst~ that miss some event when releasing (note 0) (but also sometimes when pushing). It is easy to reproduce pushing only 2 keys. I understand that the VST plugin instrument stay in sustain period until receiving again the note 0. I tried with different plugins.
Note 0 doesn't release, it does something with note 0 depending on what velocity it comes with.A MIDI note on message is three bytes long: note-on status (144 + channel number), note number (0-127), and velocity (0-127). To turn a note off you can either send a note-on message with velocity zero, or send a note-off message: status (128+channel number), note number (0-127), velocity (0-127). Another issue to be aware of is "running status", where the status byte is only sent once as long as it doesn't change, followed by a series of note-number, velocity pairs.
Martin
I wanted to say note with velocity 0.
*Vincent VANBESIEN* Le 30/08/2016 17:25, Martin Peach a écrit :
On Tue, Aug 30, 2016 at 11:03 AM, Vincent Vanbesien (DIEHCO) <electronique@diehco.com mailto:electronique@diehco.com> wrote:
Finally, the problem seems come from the vst~ that miss some event when releasing (note 0) (but also sometimes when pushing). It is easy to reproduce pushing only 2 keys. I understand that the VST plugin instrument stay in sustain period until receiving again the note 0. I tried with different plugins.
Note 0 doesn't release, it does something with note 0 depending on what velocity it comes with.A MIDI note on message is three bytes long: note-on status (144 + channel number), note number (0-127), and velocity (0-127). To turn a note off you can either send a note-on message with velocity zero, or send a note-off message: status (128+channel number), note number (0-127), velocity (0-127). Another issue to be aware of is "running status", where the status byte is only sent once as long as it doesn't change, followed by a series of note-number, velocity pairs.
Martin
Hello,
So, it seems that puredata does not send all note off to the vst plugin instrument. I would like to try newest source.
Is it possible to host vst instrument file .dll in puredata under linux (and without wine) ? (One old post trouble me http://recording.org/threads/vst-under-linux-is-real.9979/)
Under Linux, I downloaded sources, I can compile pd using autotools and flext using the build.sh script and now I am looking for compiling vst... build.sh seems not so easy to execute for the external.
*Vincent VANBESIEN* Le 30/08/2016 17:03, Vincent Vanbesien (DIEHCO) wrote :
hello, I did some print before and after the object [pack 0 0]
For the [notein] with m-audio keyRig 49, inputs and outputs are coherent. But not for the BCF2000 switches and [ctlin] (anyway it was just a testing for the latest).
Finally, the problem seems come from the vst~ that miss some event when releasing (note 0) (but also sometimes when pushing). It is easy to reproduce pushing only 2 keys. I understand that the VST plugin instrument stay in sustain period until receiving again the note 0. I tried with different plugins.
My config is windows 10, puredata 0.43.3 and vst~.dll is from this page : http://grrrr.org/data/dev/ext/windows/pd/ Should I compile the whole with newest source for puredata ? from cygwin or Microsoft Visual C ? regards, *Vincent VANBESIEN* Le 30/08/2016 12:59, IOhannes m zmoelnig a écrit :
On 2016-08-30 12:20, Vincent Vanbesien (DIEHCO) wrote:
Thank you IOhannes for the helpfull answer.
However, it seems ctlin and notein outputs are note syncronised then it happens that the pack object triggered by first argument sends its output with in second argument the previous/older note.
i'm not sure whether i can parse this. [notein] will first output on the right outlet and then on the left outlet, so the [pack]ed message will be correct (as it only outputs the list after the left inlet is filled - which happens after the right inlet got it s data).
i don't know where you get your [ctlin] from (you haven't mentioned it before). but anyhow: in MIDI each event is atomic (so a note-on event cannot be interrupted by a control-in event), but the sequence of arrival is defined by the sender: so if you first send your ctlin message and then your note-on, then the ctrlin even will naturally appear before the note-onl.
in any case: Pd makes it easy to synchronize messages: use hot/cold-inlets and triggers (this is probably the single most important thing to understand about Pd)
fgm,asdr IOhannes
*Vincent VANBESIEN
Le 29/08/2016 10:51, IOhannes m zmoelnig a écrit :
On 2016-08-29 09:45, Vincent Vanbesien (DIEHCO) wrote:
My question concerns the noise~ in input, can I replace it by a midi notein object ?
no. [noise~] produces an audio-signal (a bunch of numbers representing audio samples), wheras [notein] produces a message (a high-level structured event representing arbitrary data).
not all vst-plugins take midi-notes, but [vst~] might have a way to get the available messages you can send to a given plugin (but i don't know as i never use it).
The element named "pd midi" in the patch seems to generate midi and not to receive, is that right ?
no, actually it documents how to send midi events (e.g. notes) to a plugin. the [s $0-vst] forwards all messages it receives to [r $0-vst], which sends them to the [vst~] object.
so to answer your question, use something like
[notein 1] | | [pack 0 0] | [note $1 $2( | [vst~]
this will take the note-in data (key and velocity) and create a new message with selector "note" and the data and send that to [vst~].
fgmasd IOhannes
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Hello,
DLL's needs a win32 API to work, and this is provided by wine server under linux.
DLLs that could be opened on both win32 and linux have to be compiled for both platform, it's very rare.
On the link it says that you need wine server anyway...
You might want to try fsthost instead of a PureData external?
Le 01/09/2016 à 13:00, Vincent Vanbesien (DIEHCO) a écrit :
Hello,
So, it seems that puredata does not send all note off to the vst plugin instrument. I would like to try newest source.
Is it possible to host vst instrument file .dll in puredata under linux (and without wine) ? (One old post trouble me http://recording.org/threads/vst-under-linux-is-real.9979/)
Under Linux, I downloaded sources, I can compile pd using autotools and flext using the build.sh script and now I am looking for compiling vst... build.sh seems not so easy to execute for the external.
*Vincent VANBESIEN* Le 30/08/2016 17:03, Vincent Vanbesien (DIEHCO) wrote :
hello, I did some print before and after the object [pack 0 0]
For the [notein] with m-audio keyRig 49, inputs and outputs are coherent. But not for the BCF2000 switches and [ctlin] (anyway it was just a testing for the latest).
Finally, the problem seems come from the vst~ that miss some event when releasing (note 0) (but also sometimes when pushing). It is easy to reproduce pushing only 2 keys. I understand that the VST plugin instrument stay in sustain period until receiving again the note 0. I tried with different plugins.
My config is windows 10, puredata 0.43.3 and vst~.dll is from this page : http://grrrr.org/data/dev/ext/windows/pd/ Should I compile the whole with newest source for puredata ? from cygwin or Microsoft Visual C ? regards, *Vincent VANBESIEN* Le 30/08/2016 12:59, IOhannes m zmoelnig a écrit :
On 2016-08-30 12:20, Vincent Vanbesien (DIEHCO) wrote:
Thank you IOhannes for the helpfull answer.
However, it seems ctlin and notein outputs are note syncronised then it happens that the pack object triggered by first argument sends its output with in second argument the previous/older note.
i'm not sure whether i can parse this. [notein] will first output on the right outlet and then on the left outlet, so the [pack]ed message will be correct (as it only outputs the list after the left inlet is filled - which happens after the right inlet got it s data).
i don't know where you get your [ctlin] from (you haven't mentioned it before). but anyhow: in MIDI each event is atomic (so a note-on event cannot be interrupted by a control-in event), but the sequence of arrival is defined by the sender: so if you first send your ctlin message and then your note-on, then the ctrlin even will naturally appear before the note-onl.
in any case: Pd makes it easy to synchronize messages: use hot/cold-inlets and triggers (this is probably the single most important thing to understand about Pd)
fgm,asdr IOhannes
*Vincent VANBESIEN
Le 29/08/2016 10:51, IOhannes m zmoelnig a écrit :
On 2016-08-29 09:45, Vincent Vanbesien (DIEHCO) wrote:
My question concerns the noise~ in input, can I replace it by a midi notein object ?
no. [noise~] produces an audio-signal (a bunch of numbers representing audio samples), wheras [notein] produces a message (a high-level structured event representing arbitrary data).
not all vst-plugins take midi-notes, but [vst~] might have a way to get the available messages you can send to a given plugin (but i don't know as i never use it).
The element named "pd midi" in the patch seems to generate midi and not to receive, is that right ?
no, actually it documents how to send midi events (e.g. notes) to a plugin. the [s $0-vst] forwards all messages it receives to [r $0-vst], which sends them to the [vst~] object.
so to answer your question, use something like
[notein 1] | | [pack 0 0] | [note $1 $2( | [vst~]
this will take the note-in data (key and velocity) and create a new message with selector "note" and the data and send that to [vst~].
fgmasd IOhannes
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Hello,
Fsthost sounds good to me because it allow me to stay under Linux (and not enough time to compile vst~ with newest flext source under windows at the moment).
So, I get now fsthost working. I am looking to interface it with PureData using Jack. All steps from documentation (https://puredata.info/docs/JackRoutingMultichannelAndBrowserAudio/) work well except the one to select Jack in Pd from Media menu. Only OSS, ALSA and Portaudio are available. Any idea to chose Jack in Pd ?
*Vincent VANBESIEN* Le 01/09/2016 à 17:32, patrice colet a écrit :
You might want to try fsthost instead of a PureData external?
On Wed, 2016-09-14 at 16:46 +0200, Vincent Vanbesien (DIEHCO) wrote:
So, I get now fsthost working. I am looking to interface it with PureData using Jack. All steps from documentation (https://puredata.info/docs/JackRoutingMultichannelAndBrowserAudio/)%C2%A0 work well except the one to select Jack in Pd from Media menu. Only OSS, ALSA and Portaudio are available. Any idea to chose Jack in Pd ?
Did you compile Pure Data yourself? If so, you need to enable jack at configure time:
./configure --enable-jack
Then compile as you did before. NOTE: This works only when libjack headers are installed. On Debian and derivatives I find the easiest way to install all required dev packages is to do:
sudo apt-get build-dep puredata
Hope that helps.
Roman
Yes, I forgot this step. Thanks. So the documentation page is maybe obsolete. In QJackCtl I have "PulseAudio JACK Sink" and "Source" now useless (Pd add correctly "pure_data_0" for read and write part).
Using ALSA-MIDI in Pd, I can see new element for Pd in QJackCtl in tab ALSA.
I am a bit confused with MIDI tab. How to do link between elements of MIDI tab and elements of ALSA tab ? I have jack-keyboard and my vst instrument in MIDI tab and I have Pd and my M-Audio keyboard in ALSA tab.
Regards,
*Vincent VANBESIEN* Le 14/09/2016 à 17:25, Roman Haefeli a écrit :
Did you compile Pure Data yourself? If so, you need to enable jack at configure time:
./configure --enable-jack
Then compile as you did before.
a2jmidid works well.
*Vincent VANBESIEN* Le 14/09/2016 à 18:36, Vincent Vanbesien (DIEHCO) a écrit :
Yes, I forgot this step. Thanks. So the documentation page is maybe obsolete. In QJackCtl I have "PulseAudio JACK Sink" and "Source" now useless (Pd add correctly "pure_data_0" for read and write part).
Using ALSA-MIDI in Pd, I can see new element for Pd in QJackCtl in tab ALSA.
I am a bit confused with MIDI tab. How to do link between elements of MIDI tab and elements of ALSA tab ? I have jack-keyboard and my vst instrument in MIDI tab and I have Pd and my M-Audio keyboard in ALSA tab.
Regards,
*Vincent VANBESIEN* Le 14/09/2016 à 17:25, Roman Haefeli a écrit :
Did you compile Pure Data yourself? If so, you need to enable jack at configure time:
./configure --enable-jack
Then compile as you did before.
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
On 09/01/2016 01:00 PM, Vincent Vanbesien (DIEHCO) wrote:
So, it seems that puredata does not send all note off to the vst plugin instrument.
i doubt that. Pd never ever drops a message: so if you receive a MIDI message and have it connected correctly to an object, this object is guaranteed to get this message. (the object is of course free to ignore any request, e.g. because it is currently busy doing things - but this only ever happens intentionally)
fkard IOhannes