It's exciting to think about all the ways this can be used in projects, especially when it comes to having less apps running and doing more inside of TouchDesigner.
It's an extremely new feature (still in beta testing) but it's really exciting!! We should have a fun video next week about making a step sequencer inside of TouchDesigner with a drum machine VST :)
FYI, in my experience, on the Midi In CHOP, leaving "1 Based Index" set to On will offset the played note by a semitone - ie. if you play a C on the keyboard it actually triggers C#. Setting "1 Based Index" to off fixes this.
Great catch! For whatever reason, the MIDI In CHOP defaults to 1 Based Index being set to ON, which will shift the notes by a half step as you were running into. Turning it off should fix the problem. One thing to note is that the note number index will still be shifted by +1 in the MIDI Console section of the MIDI Mapper window regardless of what the 1 Based Index setting is.
Thank you so much for this tutorial! I tried here and got almost everything working. The function of Note Off seems to not be working for me though. The notes goes on the vst but doesn't go off :/ Is there anything Icould do to fix or improve this? I hope I made sense, I'll be studying my midi connection also to see if I can find anything. Thanks again!
Hi. thank you very much for this. I have set it up using a vst i normally use with my daw. everything works and i can see visuals, but there is no sound. I have checked by loading another touchdesigner project and the sound is still working there. I am at a loss. I see the moving lines in the audio device out, but can't get the audio working. Can you help please?
okay. It's fixed. I don't know why. I rebooted the project and it didn't work but now all of a sudden it does work now. weird. maybe a bug of some sort. Never mind. I'm happy that it's working. Thank you again for the helpful tutorial.
Glad to hear you figured it out! Sounds like it might have been a bug. If you haven't updated to the latest version of the program, it might be worth giving that a try too.
You can use very similar technique! If you rename your channels inside of TouchDesigner to match the MIDI convention of ch#n# or ch#c#. Have you worked with MIDI in general in TouchDesigner before? A lot of the trickiness is just around the naming of channels.
when i try to boot up a td system that has these VST chops and dats from the tutorial it crashes and will not respond. I can build this from scratch and it runs, but after i save and try to reload, it crashes. i can also save the chops/dats in a base and drag and drop from the custom palette, and this works, but if i save the file and try to reload it later it crashes. this seems like such a useful and powerful tool, id love to be able to seamlessly manipulate VST parameters and have them affect other visual systems, but if i cant save and load it then it makes everything way more difficult :( i guess ill keep making custom components on the palette as a work around, but if you are aware of any fixes or tips let me know. ive already lowered fps/resolution but i think it has something to do with that python script and isnt a function of my gpu. thanks
Nice Vids !This is what I needed :)I will test a few things ! Unfortunately, I found myself unable to get rid of the latency while using audio from a sound card. I had a project with a guitar :/. I almost had it with Asio4All but it's still unplayable over a backing track properly. Do you know anything that I'm missing ?
Inside of TouchDesigner try turning down any buffer settings on the Audio Device In and Out CHOPs, as well in the ASIO4all settings you should be able to turn down the buffer size and see if that also helps make it feel snappier.
As always great stuff!! Thanks for sharing these cutting-edge features Elburz! :D I have a question about the string formatting in Python for the MIDI messages: like velocity values note values also span from 0 to 127, so I wonder if cropping two places from the end of the string may cause trouble when playing higher pitch notes, those going from 100 to 127? And again thanks for the cool tips!!
That's a very good point I didn't think about! Maybe a better solution would be to take the channel name and feed it into tdu.digits() so something like : tdu.digits(channel.name) which would properly return all the numbers on the end of the channel name. That way you'd be safe from top to bottom of the value range. Good catch, Martin!!
Yes there is because I didn't particularly tune this setup. Usually for lower latency you would reduce the buffer sizes on any audio in/out operator as well as use the ASIO driver and set it to a lower buffer size.
@@TheInteractiveImmersiveHQ sounds complicated but *essential*. Would be valuable to know how to do this. Also, cheeky me: could you maybe one time make a vid on the differences between (un)paid versions of TD? I can only afford the free one :D. Also, do you have kinetic type tutorials in the pipeline? Or is TD not the right tool for that sort of stuff... . Thanks! Great channel!!!
@@TheInteractiveImmersiveHQ do you think it could be possible to host a surround sound panner out of TD? I’m sure it could probably be built with some funky math as it is to be fair!
@@j03ymaguire Yup! I've actually built one before for a custom dome setup. To be honest it's not as hard as you think! At the end of the day a panner is taking a signal input and sends it at different levels to different outputs. So you could make this by taking your signal, then for example plugging it into 6 Math CHOPs (for example for a 5.1 system), and then in the Math CHOPs you can use the multiply parameter and move it between 0 and 1 to send none or full signal to that speaker. So the infrastructure of it isn't too tricky, but the tricky part is how do you want to have the interface for controlling it quickly and easily? Does that make sense in terms of approach?
I cannot for the life of me get this to work. I've copied the code exactly, and my midi controller (mpk mini 3) does not change any of the values in my audiovst CHOP. I've tried multiple different vst3 files and still nothing :(
First thing to check, are you getting MIDI note input from the MPK in the MIDI Device window or the MIDI In CHOP? Next, assuming your CHOP network is correctly set up, do you have the _Off to On_ and _On to Off_ parameters turned **on** in the CHOP Execute DAT parameter window? Without these switches turned on, the code won't produce any results as the onOffToOn() and onOnToOff() functions won't be run. Start there and let us know if that solves it or not!
anyone keep getting this error? Error: Traceback (most recent call last): File /project1/chopexec1, line 18, in onONTOOFF Attributeerror:NoneType object has no attribute 'sendNoteOff' (/project1chopexec1) i double checked to make sure my script matched his exactly, and it still just keeps doing that
That error occurs when TD can't find the operator that is specified in the code, which means there might be a spelling error. Double check that the portion of the code prior to the .sendNoteOff() function reads *op('audiovst1')* Hope that helps!
Very excited about VST plugin! So much possibilities, waiting for the stable version.
Haha same! Can't wait to use it on some projects.
Exciting stuff! Cant wait. Exp build does not work with my lappy, but soon as there's a stable this will cut a few steps out of my current workflow.
It's exciting to think about all the ways this can be used in projects, especially when it comes to having less apps running and doing more inside of TouchDesigner.
Whoa didn’t even realize you could use vst in TD. Right up my alley. Freakin amazing
It's an extremely new feature (still in beta testing) but it's really exciting!! We should have a fun video next week about making a step sequencer inside of TouchDesigner with a drum machine VST :)
FYI, in my experience, on the Midi In CHOP, leaving "1 Based Index" set to On will offset the played note by a semitone - ie. if you play a C on the keyboard it actually triggers C#. Setting "1 Based Index" to off fixes this.
Great catch! For whatever reason, the MIDI In CHOP defaults to 1 Based Index being set to ON, which will shift the notes by a half step as you were running into. Turning it off should fix the problem.
One thing to note is that the note number index will still be shifted by +1 in the MIDI Console section of the MIDI Mapper window regardless of what the 1 Based Index setting is.
Fantastic news about VST's.
Thank you so much for this tutorial! I tried here and got almost everything working. The function of Note Off seems to not be working for me though. The notes goes on the vst but doesn't go off :/
Is there anything Icould do to fix or improve this? I hope I made sense, I'll be studying my midi connection also to see if I can find anything. Thanks again!
woo! Amazing! Thanks you for the tutorial!
Our pleasure :)
Hi. thank you very much for this. I have set it up using a vst i normally use with my daw. everything works and i can see visuals, but there is no sound. I have checked by loading another touchdesigner project and the sound is still working there. I am at a loss. I see the moving lines in the audio device out, but can't get the audio working. Can you help please?
okay. It's fixed. I don't know why. I rebooted the project and it didn't work but now all of a sudden it does work now. weird. maybe a bug of some sort. Never mind. I'm happy that it's working. Thank you again for the helpful tutorial.
Glad to hear you figured it out! Sounds like it might have been a bug. If you haven't updated to the latest version of the program, it might be worth giving that a try too.
Great vid. Now I have to wrap my head around on how to use data from inside of TD to play the VST plugin... Like noise data... PLease help.
You can use very similar technique! If you rename your channels inside of TouchDesigner to match the MIDI convention of ch#n# or ch#c#. Have you worked with MIDI in general in TouchDesigner before? A lot of the trickiness is just around the naming of channels.
when i try to boot up a td system that has these VST chops and dats from the tutorial it crashes and will not respond. I can build this from scratch and it runs, but after i save and try to reload, it crashes. i can also save the chops/dats in a base and drag and drop from the custom palette, and this works, but if i save the file and try to reload it later it crashes. this seems like such a useful and powerful tool, id love to be able to seamlessly manipulate VST parameters and have them affect other visual systems, but if i cant save and load it then it makes everything way more difficult
:( i guess ill keep making custom components on the palette as a work around, but if you are aware of any fixes or tips let me know. ive already lowered fps/resolution but i think it has something to do with that python script and isnt a function of my gpu.
thanks
Nice Vids !This is what I needed :)I will test a few things !
Unfortunately, I found myself unable to get rid of the latency while using audio from a sound card. I had a project with a guitar :/. I almost had it with Asio4All but it's still unplayable over a backing track properly. Do you know anything that I'm missing ?
Inside of TouchDesigner try turning down any buffer settings on the Audio Device In and Out CHOPs, as well in the ASIO4all settings you should be able to turn down the buffer size and see if that also helps make it feel snappier.
Thanks for making this tutorial! BTW is it possible to connect with Logic Pro X's software instrument or MIDI? I want to use Logic Pro X !!!!
For sure! You'll need a virtual loopback MIDI port software to do this, like loopMIDI: www.tobias-erichsen.de/software/loopmidi.html
@@TheInteractiveImmersiveHQ Thank you !! Can you make a tutorial video related to this?
nice vid mate!
Thanks for watching :)
yesss
Haha, I know! Lots of fun to be had!
As always great stuff!! Thanks for sharing these cutting-edge features Elburz! :D I have a question about the string formatting in Python for the MIDI messages: like velocity values note values also span from 0 to 127, so I wonder if cropping two places from the end of the string may cause trouble when playing higher pitch notes, those going from 100 to 127? And again thanks for the cool tips!!
That's a very good point I didn't think about! Maybe a better solution would be to take the channel name and feed it into tdu.digits() so something like :
tdu.digits(channel.name)
which would properly return all the numbers on the end of the channel name. That way you'd be safe from top to bottom of the value range. Good catch, Martin!!
@@TheInteractiveImmersiveHQ That's a nice solution! tdu goodness haha
Seems like there is some latency when you create that audio out and start playing your keys?
Is there any latency?
Yes there is because I didn't particularly tune this setup. Usually for lower latency you would reduce the buffer sizes on any audio in/out operator as well as use the ASIO driver and set it to a lower buffer size.
@@TheInteractiveImmersiveHQ sounds complicated but *essential*. Would be valuable to know how to do this. Also, cheeky me: could you maybe one time make a vid on the differences between (un)paid versions of TD? I can only afford the free one :D. Also, do you have kinetic type tutorials in the pipeline? Or is TD not the right tool for that sort of stuff... . Thanks! Great channel!!!
Hey guys, do you know if the vst plugin chop is on a stable build of TD yet?
Not yet, Joey. It sounds like it should be staple sometime this year but hard to say when! Here's hoping for soon!
@@TheInteractiveImmersiveHQ cool thanks for the reply! A really amazing addition to TD.
@@j03ymaguire Agreed! I can't wait for it to enter the stable build and be used all over the place :)
@@TheInteractiveImmersiveHQ do you think it could be possible to host a surround sound panner out of TD? I’m sure it could probably be built with some funky math as it is to be fair!
@@j03ymaguire Yup! I've actually built one before for a custom dome setup. To be honest it's not as hard as you think! At the end of the day a panner is taking a signal input and sends it at different levels to different outputs. So you could make this by taking your signal, then for example plugging it into 6 Math CHOPs (for example for a 5.1 system), and then in the Math CHOPs you can use the multiply parameter and move it between 0 and 1 to send none or full signal to that speaker. So the infrastructure of it isn't too tricky, but the tricky part is how do you want to have the interface for controlling it quickly and easily? Does that make sense in terms of approach?
can you direct us to plugin? idk where to find it
You can find a link here to Tyrell: u-he.com/products/tyrelln6/
I guess you can use OSC to control the vst also?
I cannot for the life of me get this to work. I've copied the code exactly, and my midi controller (mpk mini 3) does not change any of the values in my audiovst CHOP. I've tried multiple different vst3 files and still nothing :(
First thing to check, are you getting MIDI note input from the MPK in the MIDI Device window or the MIDI In CHOP?
Next, assuming your CHOP network is correctly set up, do you have the _Off to On_ and _On to Off_ parameters turned **on** in the CHOP Execute DAT parameter window? Without these switches turned on, the code won't produce any results as the onOffToOn() and onOnToOff() functions won't be run.
Start there and let us know if that solves it or not!
do we still need to use the code in the current version ?
Yes, you use Python calls to send MIDI to the device. Hope that helps!
oh my god
anyone keep getting this error?
Error: Traceback (most recent call last):
File /project1/chopexec1, line 18, in onONTOOFF
Attributeerror:NoneType object has no attribute 'sendNoteOff'
(/project1chopexec1)
i double checked to make sure my script matched his exactly, and it still just keeps doing that
That error occurs when TD can't find the operator that is specified in the code, which means there might be a spelling error. Double check that the portion of the code prior to the .sendNoteOff() function reads *op('audiovst1')*
Hope that helps!