Max MSP Tutorial: How to create a Generative Drum Machine

Поділитися
Вставка
  • Опубліковано 11 лип 2024
  • In this video we look at a super easy setup to create a generative drum machine while learning some neat things about sound filtering and matrixctrl along the way
    if you learned something from this video please remember to like and subscribe
    Patreon: / andrews_art_project
    Instagram: @andrews_art_project

КОМЕНТАРІ • 32

  • @rayderrich
    @rayderrich Рік тому +13

    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.

  • @massiveBallsX
    @massiveBallsX Рік тому +2

    Brilliant. I’ve learned some handy new objects. Thanks!

  • @CodyDeMatteis
    @CodyDeMatteis Рік тому +1

    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!

  • @ale_alejandrov
    @ale_alejandrov Рік тому

    These are so helpful and cool. Thank you thank you thank you

  • @gjb7966
    @gjb7966 11 місяців тому +1

    dude, you are such a good teacher. damn!

  • @justynajajko1882
    @justynajajko1882 5 місяців тому

    you're amazing!!!

  • @disxiple_113
    @disxiple_113 Рік тому +1

    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! 🦄

  • @poncemnz
    @poncemnz 11 місяців тому

    Muchas gracias! Justo comienzo a aprender a usar MAX .

  • @hxray11111
    @hxray11111 Рік тому

    thanx! great!

  • @Cloud2KK
    @Cloud2KK 10 місяців тому

    your videos are so goddamn good

  • @ayankoko
    @ayankoko Рік тому

    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 !

  • @TRaddcliff
    @TRaddcliff 10 місяців тому

    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

  • @doomblu_
    @doomblu_ Рік тому +2

    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

    • @AndrewRobinson26
      @AndrewRobinson26  Рік тому +1

      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.

    • @lalolanda2239
      @lalolanda2239 Рік тому

      @@AndrewRobinson26 thank you!! yes, it was due to the function object not being at the very bottom

  • @tomwatson7626
    @tomwatson7626 Рік тому

    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?

    • @AndrewRobinson26
      @AndrewRobinson26  Рік тому

      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.

  • @vadimronin909
    @vadimronin909 9 місяців тому

    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

    • @AndrewRobinson26
      @AndrewRobinson26  8 місяців тому +1

      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!

    • @vadimronin909
      @vadimronin909 8 місяців тому

      ​@@AndrewRobinson26 thnax a lot! i will find this video and explore itable :)

  • @mrwilliamz311
    @mrwilliamz311 Рік тому

    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??

    • @AndrewRobinson26
      @AndrewRobinson26  Рік тому

      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.

    • @mrwilliamz311
      @mrwilliamz311 Рік тому

      @@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..!

  • @dorgondius975
    @dorgondius975 2 місяці тому

    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

  • @Kowalski996
    @Kowalski996 Рік тому

    Is it possible to assign different metronomes to each row?

    • @AndrewRobinson26
      @AndrewRobinson26  Рік тому

      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

  • @SuperBluep10
    @SuperBluep10 Рік тому +1

    I found this tutorial before charlie

  • @WARDISWARD
    @WARDISWARD Рік тому

    Congratulations , you know made a sequencer that is driven by Max's shitty scheduler, for anything except TIGHT timing and accuracy .
    LOL

  • @sonnyobrien
    @sonnyobrien Рік тому

    getcolumn $1 not working

    • @AndrewRobinson26
      @AndrewRobinson26  Рік тому

      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

    • @rastgelegaliba
      @rastgelegaliba 10 місяців тому

      @@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.