I have been a software developer for decades and now quit and got into music again. It will be so much fun to incorporate my old career into my hobby. Thanks for the video.
i've just been getting into your tutorials and your teaching style is amazingly clear and concise. there have been a few gen concepts you've explained that have never stuck with me before, but i totally understand. thank you!
thanks so much for this! i've been looking for a simple drum machine patch for learning from. would be cool to see this same patch with evolving drum sounds, gonna go look now to see if you made a patch like that...if not, its a request! 🦄
I’m extremely new to max but no matter what I try I get constant white noise over the drum sounds. I’ve recreated your exact same setup multiple times and I haven’t been able to fix it
Hello, Andrew! Thank you for the video and for explaining the interesting material. I have a question - please tell me in more detail why there are two columns in matrixctrl and how exactly they affect randomization and probability? Why do we put table range 10 and not 8? because we have a sequencer of 8 steps
Hello! The object you're referring to in your question is actually the itable object, not the matrixctrl. In this example I am using the itable to created a random value that is determined based on weighted probability. I chose a range of 10 somewhat arbitrarily, the values could be anything but my thinking was making something that would work as a percentage value (a value of 1 = 10%, 2 = 20%, etc.) there are only 2 columns because i only want a return value of 0 or 1 so that it decides if a spot in the matrixctrl is on or off. If you'd like to know more about the itable and how I am using it here I have another tutorial video on my channel already going over this specific object and use case!
Is there a way to take a function object envelope and convert that to data and send that out to a midiout CC value? I’d like to trigger the envelope to briefly affect a given CC value. Thanks
hi andrew it is really nice tutorial thank you ! instead of having a metro i would like to send the patch to the global transport with bpm how can i do? thanks !
Hey Andrew, excellent vid! I have a question though. In the first part of the setup with the kick, my cycle is constantly outputting at 100hz despite it being patched exactly as you have it here. Any idea on how I can just have the kick and not the constant hum? edit: it also constantly outputs the noise as well
This may be happening because of how you have the function object setup. If the last dot is not placed at the bottom the volume will be left at wherever you did draw it too. Make sure the function objects last dot is placed at the bottom of the function ui. Also make sure the *~ is written as [*~ 0.] that’ll also make sure the volume is off by default.
Amazing tutorial, thanks! Just to clarify, at 09:49 you say that the first int you create in the pack object is to define the row, but did you mean column?
I am sort of talking about both. I do mean the Y-axis which is where we have labeled the kick snare and hat going across left to right, however we are stepping through the columns to get the on/off for the note.
Nice tutorial bro, but having replicated it, the matrixctrl is outputting a signal all at once as opposed to stepping in sequence and so it makes no difference whether any of the boxes are highlighted; it’s not working as your example does and I cannot work out why that is. Any suggestions??
Matrixctrl will output everything all at once if you send a bang directly to it. That might be the cause of your issue. You want to make sure to send it only the getcolumn message.
@@AndrewRobinson26 Thanks, and yes, I’ve done exactly that - [getcolumn $1]. I‘d initially also added a [clear $1] to reset the matrix which I’ve removed in order to check that it wasn’t interfering (which it shouldn’t anyway). I’m completely baffled as I’ve tested the matrixctrl in another patch with 3 x 3 grids and 3 cycle~ oscillators sending out signals of different pitches - 100, 200, and 300hz that was then plugged in a [matrix~]. That appears to work okay although I didn’t attach a metronome to that one. Scratching head..!
Yes although you would probably need to have a much more complicated recall method than the getcolumn message. If you want it on different metronomes I think the easiest solution would be to also use 3 different matrix controls as well
Make sure you are pulling the list from the right outlet not the left one. The right outlet is what gives you the list message by column or row from the respective get messages
@@AndrewRobinson26 i am also getting the same error, getcolumn $1 is not working, connection cannot be established, so messages do not show a value on inlet and outlet.
I have been a software developer for decades and now quit and got into music again. It will be so much fun to incorporate my old career into my hobby. Thanks for the video.
i've just been getting into your tutorials and your teaching style is amazingly clear and concise. there have been a few gen concepts you've explained that have never stuck with me before, but i totally understand. thank you!
thank you very much! easy and great!
dude, you are such a good teacher. damn!
Brilliant. I’ve learned some handy new objects. Thanks!
thanks so much for this! i've been looking for a simple drum machine patch for learning from. would be cool to see this same patch with evolving drum sounds, gonna go look now to see if you made a patch like that...if not, its a request! 🦄
Muchas gracias! Justo comienzo a aprender a usar MAX .
Estoy en la misma, nos contactamos?
These are so helpful and cool. Thank you thank you thank you
I’m extremely new to max but no matter what I try I get constant white noise over the drum sounds. I’ve recreated your exact same setup multiple times and I haven’t been able to fix it
Hello, Andrew!
Thank you for the video and for explaining the interesting material.
I have a question - please tell me in more detail why there are two columns in matrixctrl and how exactly they affect randomization and probability? Why do we put table range 10 and not 8? because we have a sequencer of 8 steps
Hello! The object you're referring to in your question is actually the itable object, not the matrixctrl. In this example I am using the itable to created a random value that is determined based on weighted probability. I chose a range of 10 somewhat arbitrarily, the values could be anything but my thinking was making something that would work as a percentage value (a value of 1 = 10%, 2 = 20%, etc.) there are only 2 columns because i only want a return value of 0 or 1 so that it decides if a spot in the matrixctrl is on or off. If you'd like to know more about the itable and how I am using it here I have another tutorial video on my channel already going over this specific object and use case!
@@AndrewRobinson26 thnax a lot! i will find this video and explore itable :)
I found this tutorial before charlie
you're amazing!!!
Is there a way to take a function object envelope and convert that to data and send that out to a midiout CC value?
I’d like to trigger the envelope to briefly affect a given CC value.
Thanks
hi andrew it is really nice tutorial thank you ! instead of having a metro i would like to send the patch to the global transport with bpm how can i do? thanks !
Hey Andrew, excellent vid! I have a question though.
In the first part of the setup with the kick, my cycle is constantly outputting at 100hz despite it being patched exactly as you have it here. Any idea on how I can just have the kick and not the constant hum?
edit: it also constantly outputs the noise as well
This may be happening because of how you have the function object setup. If the last dot is not placed at the bottom the volume will be left at wherever you did draw it too. Make sure the function objects last dot is placed at the bottom of the function ui. Also make sure the *~ is written as [*~ 0.] that’ll also make sure the volume is off by default.
@@AndrewRobinson26 thank you!! yes, it was due to the function object not being at the very bottom
thanx! great!
Amazing tutorial, thanks! Just to clarify, at 09:49 you say that the first int you create in the pack object is to define the row, but did you mean column?
I am sort of talking about both. I do mean the Y-axis which is where we have labeled the kick snare and hat going across left to right, however we are stepping through the columns to get the on/off for the note.
Nice tutorial bro, but having replicated it, the matrixctrl is outputting a signal all at once as opposed to stepping in sequence and so it makes no difference whether any of the boxes are highlighted; it’s not working as your example does and I cannot work out why that is.
Any suggestions??
Matrixctrl will output everything all at once if you send a bang directly to it. That might be the cause of your issue. You want to make sure to send it only the getcolumn message.
@@AndrewRobinson26 Thanks, and yes, I’ve done exactly that - [getcolumn $1].
I‘d initially also added a [clear $1] to reset the matrix which I’ve removed in order to check that it wasn’t interfering (which it shouldn’t anyway).
I’m completely baffled as I’ve tested the matrixctrl in another patch with 3 x 3 grids and 3 cycle~ oscillators sending out signals of different pitches - 100, 200, and 300hz that was then plugged in a [matrix~]. That appears to work okay although I didn’t attach a metronome to that one.
Scratching head..!
Is it possible to assign different metronomes to each row?
Yes although you would probably need to have a much more complicated recall method than the getcolumn message. If you want it on different metronomes I think the easiest solution would be to also use 3 different matrix controls as well
your videos are so goddamn good
Congratulations , you know made a sequencer that is driven by Max's shitty scheduler, for anything except TIGHT timing and accuracy .
LOL
getcolumn $1 not working
Make sure you are pulling the list from the right outlet not the left one. The right outlet is what gives you the list message by column or row from the respective get messages
@@AndrewRobinson26 i am also getting the same error, getcolumn $1 is not working, connection cannot be established, so messages do not show a value on inlet and outlet.