This tutorial is a great starting point for other phase vocodery goodness. I did this kind of stuff in university but forgot the nuts and bolts of making it all work together. Excited to get home and build this in Max 4 Live!
this tut is quite old but invaluable for beginners! and simple too! I'm gonna try in Max7. Thanks for this. It was the best simple & practical example of basic vocoding i have seen thus far!
The long and the short of it is that plosives and fricatives (I think these are the linguistic terms, lay people like me can stick to consonants) have much more high frequency content. We _could_ take the FFT and measure the relative amplitude of high vs. low frequency content, but that would overkill. Much simpler to just count the number of zero crossings (high frequency sounds obviously cross zero more often than low frequency sounds) which is crude but effective.
@rishabhrajan Because I said so. You mean is there some underlying mathematical reason? Not really, that particular number just seemed to do a good job of selecting between consonants and vowels. Although you bring up a good point, which is that that number is not independent of the DSP vector size, so if you had a different number of samples per vector you'd have to change 8 to something larger or smaller, depending.
Having trouble getting this to work in MSP 9 - the -SF Play works and the SAW wave with Kslider work but something is not connecting through the pfft~ robot_voice (that is what I named my first patch file - which as also working). Any suggestions I've gone over it can't see any errors in the code but maybe its something in the file referencing in the pfft~ robot_voice object? Everything else seems to work. But going through that object I get no sound.
The first thing you should do when using pfft or poly objects ect.... is save your main patch , before even building anything ; if your patch is left Untitled ,it will not find your subpatch , even if saved in the same folder ,
Well who knows. It's likely that Max just can't find your robot_pfft file. When you lock your patch and double-click on the pfft~ object does it bring up your robot_pfft file? If not you just need to make sure Max can find robot_pfft.
@swedishgirl96 Hey man, yeah I'm going to be much too busy to be of any help, but what you're trying to do shouldn't be that hard. Just use an adc~ object instead of an sfplay. If you want to get really fancy you can replace the sawtooth wave part with another adc~ that takes guitar input. That can be a pretty sweet effect.
Sam i hope you see this in the next few days, i need help, love this vocoder! but i want to play chords in with a midi keyboard, how do i do this, i know i need to change the kslider to polyphonic but after this im stumped! im building a max patch for a university assignment and this would be an ace element to put into it!
So I have this ported to M4L as an instrument. But I can't seem to make it work to receive live signal. A live voice. I could save to an effect device but then lose the ability to read midi files. Which could be rerouted from another M4L device sending midi to a receiving midi in the audio device. But can't do it just yet.
alright. so I have been just loving following these tutorials, they are making learning about Max so interesting. In this one however, I have come across my first problem that I have not been able to fix. In my pfft file, if I connect my fftn 2 cartopol phase output to the poltocar, everything stops working.. so I left it disconnected, and I can still get the robot voice to work, but now adding the kslider is not letting me change anything in the Vocoder patcher.. any thoughts?
Hey. Great video. Was wondering if anyone could help me though. I've connected this up on a M4L patch, and it works fine. I've connected a |s moo| midi controller on a midi channel to an |r moo| on the vocoder audio channel. I can control the pitch with my midi controller now. My question is where would the poly~ go and how would I use it in this instance to be able to use it as a poly synth with chords etc? Thanks!!!
yo dude. not sure if you still answer questions from several year old videos, but I built a polyphonic vocoder using this vid as a model, and I'm trying to make the switch to M4L, and have no idea how to save a pfft~ subpatch thing and get it to work inside of another patch in the M4L domain. Halp?
can anyone tell me how to set the pfft~ in Max 7? I really can't make it when I did the vocoder like the tut video. I guess there is a change in pfft~ in Max7?
I could be doing something wrong, tho i have checked a few times but does fftin~ fftout~ pfft~ work the same way in Max For Live? The pfft~ cant seem to find the first patch but they are saved to the same folder?
You have to save to the same file, but you also have to transport to M4L. By copying from the Max patch everything and pasting to M4L device. I simply did it to M4L instrument. Then re instantiate the pfft efficient patch.
@jeriklesh1 Thanks, dude. Pitch detection is tricky. Plus, there are already lots of great Max objects for doing pitch detection. fiddle~ is the canonical example, and I'm sure you could find lots of other good examples at maxobjects (dot) com
hi sam! when i tried to open up your vocoder patches, it came up with 'charset: error getting wide character buffer size' im not really sure what that means, and can't find any information online. would you know perhaps?
my signal from *~ won't go into the alpha input of my poltocar, only the theta input.. will that still work? does any1 know why it won't? (because the version of max i'm using is more up to date ?) pls help, thank u!
Hey dude837, this was incredibly helpful and I want to thank you because I relied on it heavily for my final project in a digital signal processing class. I wanted to ask what resources you used for this tutorial. Was there a paper or book you read that allowed you to understand exactly what to do in max when designing all this?
Hey dude837, thanks for the wonderful tutorials. I am confused at 8:17. You say: if there are more than 8 zero-crossings it will be 2. How is it that the case when the >~8 is hooked up to 1?
This tutorial is a great starting point for other phase vocodery goodness. I did this kind of stuff in university but forgot the nuts and bolts of making it all work together. Excited to get home and build this in Max 4 Live!
this tut is quite old but invaluable for beginners! and simple too! I'm gonna try in Max7. Thanks for this. It was the best simple & practical example of basic vocoding i have seen thus far!
this is the type of quality video youtube needs more of
The long and the short of it is that plosives and fricatives (I think these are the linguistic terms, lay people like me can stick to consonants) have much more high frequency content. We _could_ take the FFT and measure the relative amplitude of high vs. low frequency content, but that would overkill. Much simpler to just count the number of zero crossings (high frequency sounds obviously cross zero more often than low frequency sounds) which is crude but effective.
i'm not sure weather you should be a comedian or a max/msp tutorialist :) love your tutorials keep posting. Thanks!
This was so funny, one of my favourite Patchers I have now. Thanks!
@rishabhrajan Because I said so. You mean is there some underlying mathematical reason? Not really, that particular number just seemed to do a good job of selecting between consonants and vowels. Although you bring up a good point, which is that that number is not independent of the DSP vector size, so if you had a different number of samples per vector you'd have to change 8 to something larger or smaller, depending.
thank you so much for your videos they've helped me through uni so much! you basically stopped me failing ^^
@JoelisRich Is it more embarrassing that I have that on my desktop, or that you've seen the word so many times that it jumped out at you like that?
Having trouble getting this to work in MSP 9 - the -SF Play works and the SAW wave with Kslider work but something is not connecting through the pfft~ robot_voice (that is what I named my first patch file - which as also working). Any suggestions I've gone over it can't see any errors in the code but maybe its something in the file referencing in the pfft~ robot_voice object? Everything else seems to work. But going through that object I get no sound.
The first thing you should do when using pfft or poly objects ect.... is save your main patch , before even building anything ; if your patch is left Untitled ,it will not find your subpatch , even if saved in the same folder ,
Well who knows. It's likely that Max just can't find your robot_pfft file. When you lock your patch and double-click on the pfft~ object does it bring up your robot_pfft file? If not you just need to make sure Max can find robot_pfft.
@swedishgirl96 Hey man, yeah I'm going to be much too busy to be of any help, but what you're trying to do shouldn't be that hard. Just use an adc~ object instead of an sfplay. If you want to get really fancy you can replace the sawtooth wave part with another adc~ that takes guitar input. That can be a pretty sweet effect.
great video, any idea how to tackle a bon iver style midi triggered vocoder?
this was great and super easy to follow along with! if we ever cross paths, I would be honoured to firmly shake your hand.
You can get the M4L version here. www.maxforlive.com/library/device/3258/robot-vocoder
Sam i hope you see this in the next few days, i need help, love this vocoder! but i want to play chords in with a midi keyboard, how do i do this, i know i need to change the kslider to polyphonic but after this im stumped! im building a max patch for a university assignment and this would be an ace element to put into it!
This tutorial was amazing! Thanks so much
I changed the >~ arg to over 110 and it started it working? So I guess I need to understand the DSP vector size you were talking about...
So I have this ported to M4L as an instrument. But I can't seem to make it work to receive live signal. A live voice.
I could save to an effect device but then lose the ability to read midi files. Which could be rerouted from another M4L device
sending midi to a receiving midi in the audio device. But can't do it just yet.
+Sinex Johnson duh so dumb into the EZDAC of course.
sorry
+Sinex Johnson
Ill be posting this instrument/fx and a midi signal router in maxforlive.com soon--
All credit will go to dude837.
do you know how you would make the >~8 object in MAX 5? thanks! great video
alright. so I have been just loving following these tutorials, they are making learning about Max so interesting. In this one however, I have come across my first problem that I have not been able to fix. In my pfft file, if I connect my fftn 2 cartopol phase output to the poltocar, everything stops working.. so I left it disconnected, and I can still get the robot voice to work, but now adding the kslider is not letting me change anything in the Vocoder patcher.. any thoughts?
thanks for all your help!! sometimes pfft~ doesnt get the second inlet...dunno...why...
you have to just restart that patch....same happened to me = )
Duuuuuude, would you make a comeback to 2018? :D
mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmaybe
@@dude837 it's time
Hey. Great video. Was wondering if anyone could help me though. I've connected this up on a M4L patch, and it works fine. I've connected a |s moo| midi controller on a midi channel to an |r moo| on the vocoder audio channel. I can control the pitch with my midi controller now. My question is where would the poly~ go and how would I use it in this instance to be able to use it as a poly synth with chords etc? Thanks!!!
yo dude. not sure if you still answer questions from several year old videos, but I built a polyphonic vocoder using this vid as a model, and I'm trying to make the switch to M4L, and have no idea how to save a pfft~ subpatch thing and get it to work inside of another patch in the M4L domain. Halp?
can anyone tell me how to set the pfft~ in Max 7? I really can't make it when I did the vocoder like the tut video. I guess there is a change in pfft~ in Max7?
Hello!! How to make kyma-style morphing in Max?
This somehow does not work with MAX 6. I get a whisper voice no matter which kslider key is pressed.
I could be doing something wrong, tho i have checked a few times but does fftin~ fftout~ pfft~ work the same way in Max For Live? The pfft~ cant seem to find the first patch but they are saved to the same folder?
You have to save to the same file, but you also have to transport to M4L. By copying from the Max patch everything
and pasting to M4L device. I simply did it to M4L instrument. Then re instantiate the pfft efficient patch.
@jeriklesh1 Thanks, dude. Pitch detection is tricky. Plus, there are already lots of great Max objects for doing pitch detection. fiddle~ is the canonical example, and I'm sure you could find lots of other good examples at maxobjects (dot) com
Can this be done in pure data? and how? :p
hi sam! when i tried to open up your vocoder patches, it came up with 'charset: error getting wide character buffer size' im not really sure what that means, and can't find any information online. would you know perhaps?
Hey, how comes there is more zero crossing in explosives part of speech ? i don't get it.
@dude837 that you have it on your desktop!
my signal from *~ won't go into the alpha input of my poltocar, only the theta input.. will that still work? does any1 know why it won't? (because the version of max i'm using is more up to date ?) pls help, thank u!
Hey dude837, this was incredibly helpful and I want to thank you because I relied on it heavily for my final project in a digital signal processing class. I wanted to ask what resources you used for this tutorial. Was there a paper or book you read that allowed you to understand exactly what to do in max when designing all this?
Check out Miller Puckette's book on DSP. It's all Pd but easily translated to Max, and super helpful.
mine was not working until i changed the signal vector size to 64, it was stupidly high beforehand
I just click 'open' message box and select my voices any wav, mp3 files. Then I click the toggle but no sound. What's wrong?
Hey dude837, thanks for the wonderful tutorials. I am confused at 8:17. You say: if there are more than 8 zero-crossings it will be 2. How is it that the case when the >~8 is hooked up to 1?
Ah, I think I get it. The inlet the >~ object was connected to was 1 by default, so you are adding 1 to it to select 2.
Nakul Tiruviluamala you got it!
my "pfft~ robot_pfft" object only has one inlet. what am I doing wrong?
Great video as always!! Thanks.
watch?v=W3nPFkxxYno
can you show us how to do this? doesnt have to be with guitar though
Just watched this Tut. Funny dialog. ;-) Do robots pray to electric gods? Lol
This helped me out a lot! thanks!
the link is dead, can anyone upload the file again?
wow, sounds awesome. Thank you for this tutorial.
totally great! thanks heaps for this! :)
@dude837 regardless, thanks for the tutorial, it's awesome advice!
great vid man, but you'd seriously want to watch the levels. first audio was dangerously high.
uhhhh imaginary friend
Like I was the only one seeing buttsecks.mov file at 4:07 :P
Nice video man! Cheers!
Great video.....and choice of audio sample ;-)
nevermind... I figured it out. cheers! :)
参考になりました!
Rawsome
i love it! thanx X
thanks dude thats awesome
Seems logic now ! Thanks :)
awesome
great and helpful
holy shit dude, turn down you volume next time
fuckin awesome
cool thanks
:D