Max/MSP Tutorial: how to make a generative drum machine

แชร์
ฝัง
  • เผยแพร่เมื่อ 19 พ.ย. 2024

ความคิดเห็น • 90

  • @davidcooper8241
    @davidcooper8241  4 ปีที่แล้ว +8

    If you recreate this patch, note that I had the groove objects connected incorrectly through most of this video - which was causing some unintended clicking. Because the groove objects I used were only 1 channel, I shouldn't have connected the second outlet, which was the sync output.

    • @victormartinpardo2752
      @victormartinpardo2752 4 ปีที่แล้ว +1

      Hi David, excelent patch.
      But in 7.17 min, what happened ?, bang , obj random,/100, sig~1., number 0 , trigger b b and sel1, how do all this one element p?

    • @davidcooper8241
      @davidcooper8241  4 ปีที่แล้ว +1

      @@victormartinpardo2752 hi Victor! i think this is where I 'encapsulate' a bunch of objects in order to tidy them into a subpatcher. docs.cycling74.com/max7/vignettes/encapsulate_deencapsulate

    • @victormartinpardo2752
      @victormartinpardo2752 4 ปีที่แล้ว

      Hi @@davidcooper8241 ¡¡ Thanks ¡¡
      I have more question: the sound of buffer~ In which folder were they stored? inside max folder installation?

    • @davidcooper8241
      @davidcooper8241  4 ปีที่แล้ว

      @@victormartinpardo2752 for this patch i just copied the sample files into the same folder the patch was saved in. but you can also add a folder to your 'search path', and then you can do the same thing and type just the name of the file, and not the whole file path. docs.cycling74.com/max8/vignettes/search_path

    • @yernar887
      @yernar887 4 ปีที่แล้ว

      @@davidcooper8241 hi, is it possible to get the patch file please. Thank you for the videoooo!!!

  • @6amsunset_
    @6amsunset_ 4 ปีที่แล้ว +51

    this is my first day with max and this is my first tutorial and oh boy

  • @AidaKhorsandi
    @AidaKhorsandi 3 ปีที่แล้ว +12

    Hi David, thanks for this tutorial! Loads of possibilities with this generative drum machine! What are the filter presets (eqs)? That section of the videos goes so fast, I didn't get where those came from (15:37). Thanks!

  • @danvaguer
    @danvaguer ปีที่แล้ว +2

    great tutorial - would love to see a video showing off what you did in the part at the end that was sped up. I'm looking to create some self generating ambient stuff and that last part sounds like the sort of thing i'd like to do.

  • @midinerd
    @midinerd 7 หลายเดือนก่อน +1

    13:00 "there's probably a way of doing this with the counter object itself" -> the +1 sel 50 constants are looking for the overflow bang, which is one of the outlets. you're wanting to bang on the overflow, it appears

  • @Echoes1967
    @Echoes1967 4 ปีที่แล้ว +5

    Fire dude,very Autechre/Aphex-ish, exactly the type of good stuff to get started with Max. Many thanks to you and Artiom !

    • @WARDISWARD
      @WARDISWARD 4 ปีที่แล้ว

      Sure , but this would take me literally about 20 seconds to achieve in renoise

    • @sonnizen1426
      @sonnizen1426 4 ปีที่แล้ว

      @@WARDISWARD Would love to see a video of you doing that

    • @WARDISWARD
      @WARDISWARD 4 ปีที่แล้ว +1

      @@sonnizen1426
      I guess you don't really know how a tracker works , and it's effect command lanes
      Just for starters , slice command which offsetst the sample and the ym command for probability ,, throw in 0cxy for for volume cuts and some 0dxy , 0uxy for pitch up down etcc , and I haven't even talked about the phrase sequencer in renoise .
      The groove~object is great , sure automating the loopints with line etc.. but renoise is great too and tjhe showcased example is really that hard to do in renoise

    • @davidcooper8241
      @davidcooper8241  4 ปีที่แล้ว

      haha , i guess lots of the things you can do in max can be done more efficiently in other more specialised programs :)

    • @WARDISWARD
      @WARDISWARD 4 ปีที่แล้ว

      @@davidcooper8241
      I am totally into supercollider right now
      Sure the syntax is pretty hard( Imean verry hard for a non coder ) but the included u-gens sound amazing . from the filters to he extrem to the phase mod osc's etc..
      Absolutely stunning sounding , and I have been coding in reaktor core for over a decade
      Supercollider is easy on par with the best sounding stuff out there
      THere is nothing even remotely to be found in max msp unless you start to code in gen~`
      This is some simple code for kick drum I made in supercollider
      (
      {//variables//
      var sweep,ampenv,stfreq,amount,ampatt,ampdec,ampdeccurve,sweepdeccurve,sweepatt,sweepdec,overdrive;
      ampdeccurve= -9;//amp envelope decay curve
      sweepdeccurve= -20;//pitch envelope decay curve
      ampatt=0.000;//amp envelope attack time
      ampdec= 1.50;//amp envelope decay time
      sweepatt=0.0;//pitch envelope attack time
      sweepdec= 0.550;//pitch envelope decay time
      amount=300;//pitch envelope Amount
      stfreq= 50;//initial sart frequency
      overdrive=14;//amount into tanh
      ampenv=EnvGen.ar(Env.perc(ampatt,ampdec,curve:ampdeccurve),doneAction:2);
      sweep=EnvGen.ar(Env.perc(sweepatt,sweepdec,curve:sweepdeccurve),doneAction:0)*amount;
      (SinOsc.ar(stfreq+sweep)!2*ampenv*overdrive).tanh*0.5
      }.play
      )

  • @linfengji753
    @linfengji753 3 ปีที่แล้ว +2

    could i ask that why my drum machine has no sound. I just follow your steps

  • @lodew
    @lodew 3 ปีที่แล้ว +1

    Hey man, thanks for this tutorial. I was also interested in the loopers part, please consider to make a video about that!

  • @ayankoko
    @ayankoko 2 ปีที่แล้ว +1

    hi david , came across your few videos and it's really great stuff ! please do a video about the end of this one where you could explain more about the eqs, filters , and manipulation of waveforms with coll object , it's super cool done this in max ! best

  • @JB-ng7be
    @JB-ng7be 3 ปีที่แล้ว +1

    really nice work, would be really nice to see a separate video on the melody part?

    • @davidcooper8241
      @davidcooper8241  3 ปีที่แล้ว

      cheers, will try and put one together some time

  • @artemteregerenko8063
    @artemteregerenko8063 2 ปีที่แล้ว

    Thank you for this tutorial! How can i get this biquad_degrade_biquad.maxpat and groove_looper_line_11.maxpat , that you used in bpatcher. I've recreated this patch, but on 15 minute everything become so fast, i can't understand.

  • @hello.steve.newcomb
    @hello.steve.newcomb 2 ปีที่แล้ว +1

    Can't wait to have a crack at this!

  • @laurinbaumann
    @laurinbaumann 7 หลายเดือนก่อน

    awesome! can you do a tutorial on thos granular synths?

  • @exactspace
    @exactspace 10 หลายเดือนก่อน

    I could not get the buffer sounds to load until I realized I was missing spaces in the filenames compared to the ones used in the tutorial. Filenames that include spaces also need beginning and ending quotes.

  • @ayankoko
    @ayankoko 2 ปีที่แล้ว

    was trying the same gate possibility for adjusting the speed of the samples but it didnt really work...
    could send you a pic

  • @dariuseggel
    @dariuseggel ปีที่แล้ว

    Great video ! Thanks ! Just have one question: at 13:26 when i connect the metro to the counter, i have a message that say counter: stack overflow. Is there a solution to that ? Sorry i'm new to Max...

  • @henriquematias1986
    @henriquematias1986 2 ปีที่แล้ว

    lovely turorial, thanks for that! super cool stuff with the bpatchers! is there a video where you explain how you did the "granular" bpatchers you added last? pretty cool stuff

  • @disheveledevents3411
    @disheveledevents3411 3 ปีที่แล้ว

    Some real Autechre vibes on this patch.

  • @TRaddcliff
    @TRaddcliff 3 ปีที่แล้ว

    would it be possible to record your output [numerical output] from each track, loop that, and use a toggle record or lock the loop. that would be madness.
    your video is awesome. no messing about, straight to it!

  • @jakaarh8957
    @jakaarh8957 3 ปีที่แล้ว +3

    Great video! I have a question about the last part - when you introduce your b-patchers for playing samples, how did you avoid the annoying click in the groove object, when the loop restarts? Thanks a lot!

    • @davidcooper8241
      @davidcooper8241  3 ปีที่แล้ว

      i think I had the groove objects set up to start with as 1 channel, instead of stereo... so the 2nd inlet, (when they were 1 channel) was not audio; it was the sync ramp (its a signal that just ramps up from 0 to 1 over the length of the loop)... so fixing it involved making the groove objects 2 channel, i.e. stereo... by putting the proper argument in. does that fix it for you?

    • @davidcooper8241
      @davidcooper8241  3 ปีที่แล้ว

      oh no, hang on, i didn't make them stereo - just connected the 1-channel audio to left and right channels - compare the connections coming out of the groove objects at the start and end of the vid

    • @jakaarh8957
      @jakaarh8957 3 ปีที่แล้ว

      Thanks for your reply! I am reading back my question and I obviously wasn’t clear enough, sorry for that.
      I was referring to the b-patchers - how come they don’t click when the loop changes? Especially when the starting point changes. Do you work with poly~ or some kind of window? Thanks!

    • @davidcooper8241
      @davidcooper8241  3 ปีที่แล้ว

      @@jakaarh8957 ah see what you mean - there's a bunch of different ways to avoid clicks with groove without getting into poly~... there's an option in groove object itself to position loop points at the 'zero crossing', or you can use windows by exploiting the sync output (rightmost outlet of groove)... i go over a couple of these methods in one of the vids I made, can't remember which off the top of my head but will update if I remember!

    • @davidcooper8241
      @davidcooper8241  3 ปีที่แล้ว

      ps, I think that with that bpatcher I was just using the zero crossing option, rather than properly windowing it. using a window gives you more control though - you can control the 'smoothness' or clickiness of the sound by adjusting the parameters of the window

  • @3xAudio
    @3xAudio 4 ปีที่แล้ว +1

    Thanks for sharing looks and sounds great

  • @hughmadafaka4433
    @hughmadafaka4433 2 ปีที่แล้ว

    Infotainment! Nicely done.
    (Clicks & Cuts II - Farben (...?))

    • @davidcooper8241
      @davidcooper8241  ปีที่แล้ว

      haven't come across that series before, it looks great, I'll have a listen :)

  • @proteinburger5194
    @proteinburger5194 4 ปีที่แล้ว +3

    whats teh shortcut to do this p order

    • @pinkphoenixvids
      @pinkphoenixvids 2 ปีที่แล้ว

      highlight the ones you want to encapsulate, then click edit at the top and encapsulate

  • @nightonmars
    @nightonmars 2 ปีที่แล้ว

    You might want to use [expr random (0, 100] - [scale 0. 100. 0. 1.] as then it's easier to set the limits. Set the values as wanted.

  • @edmoor9366
    @edmoor9366 3 ปีที่แล้ว +1

    Hey man, thanks for the video. My samples cannot be loaded separately, meaning when I load a new one to the second buffer, it automatically changes the first and rewrites it. Any thoughts?

    • @davidcooper8241
      @davidcooper8241  3 ปีที่แล้ว

      have all your buffers got unique names?

  • @DM-gd8ik
    @DM-gd8ik 4 ปีที่แล้ว +1

    sorry completetly new to max = how do you create the object at 2:05 that has a filled in forward arrow and the 0 ?

    • @davidcooper8241
      @davidcooper8241  4 ปีที่แล้ว

      N for new object, type the greater than symbol

  • @sonnizen1426
    @sonnizen1426 4 ปีที่แล้ว +1

    Hey David, great stuff. These are the type of sounds that draw me into Max. I just recently started so my way around the patches is not very fluent yet. If you have the time, I would love to know more about the way you made those drum samples work. I tried recreating the patch and I created buffers and wrote file names as the second argument but nothing happens. When I click on them, empty boxes appear. Thanks for any clarification!!

    • @sonnizen1426
      @sonnizen1426 4 ปีที่แล้ว +1

      Aha, I put the samples in the folder where my patch is located and I think it is working. Cool, made me go past 3 minutes. :)

    • @sonnizen1426
      @sonnizen1426 4 ปีที่แล้ว

      Alright. I made it and it was very useful. Learning a lot like this. I hope to see a video on those things you do towards the end. Are they your own patches?

    • @davidcooper8241
      @davidcooper8241  4 ปีที่แล้ว +3

      great, glad you got things working! yeah those are my own patches, a few people have expressed interest so I'll try and put a video together explaining the devices at some point

    • @sonnizen1426
      @sonnizen1426 4 ปีที่แล้ว

      @@davidcooper8241 Awesome, I'll keep my eyes peeled for that video.

  • @MrBadeshi
    @MrBadeshi 4 ปีที่แล้ว

    nice and clear explanation

  • @Fuiape
    @Fuiape 2 หลายเดือนก่อน

    Uhmm real honest question here, but why spend so much time creating a beat on this software instead of laying the beat in a DAW like Ableton and create music? May I kindly ask if this is what people learn in a Music Technlogy course? I would love to understand more so I can decide in studying songwriting and producing or Music and Technology. Thanks

  • @tomcostello7479
    @tomcostello7479 3 ปีที่แล้ว +1

    Just a quick question from someone who is v much a beginner - when you were uploading your samples into the buffers, where did you save them as files to allow you to load the samples up when clicking on buffers? I have a drum sample saved into the Sample Collection, but it doesn't load just by typing the sample file name like it does with you... Thanks!

    • @davidcooper8241
      @davidcooper8241  3 ปีที่แล้ว +2

      samples saved in same folder as the patch will be found automatically when referenced with just the filename - anything in the 'search path' will also show up - look at the 'file preferences' option in one of the menus and you can add locations that max will be able to find automatically.

    • @exactspace
      @exactspace 10 หลายเดือนก่อน

      For me it was missing spaces in the filenames compared to the ones used in the tutorial. Filenames that include spaces also need beginning and ending quotes.

  • @loidis9347
    @loidis9347 3 ปีที่แล้ว +1

    Thanks for this

  • @Spearced
    @Spearced 3 ปีที่แล้ว

    Excellent. Instant subscribe.

  • @jakemegabyte896
    @jakemegabyte896 3 ปีที่แล้ว

    Wow cool

  • @nightonmars
    @nightonmars 2 ปีที่แล้ว

    Neat!!

  • @manuelbadano9403
    @manuelbadano9403 4 ปีที่แล้ว

    QUEEE gracias nacho x el dato

  • @sofiatsiligianni7403
    @sofiatsiligianni7403 4 ปีที่แล้ว

    Name a laptop for this programme

  • @enricociacchi94
    @enricociacchi94 3 ปีที่แล้ว

    Great work !!! i'm recreating the patch but i've some doubts: i connected to every "buffer- beat" a "replace" object to call back the file from my library. Is it a good idea? Thanks

    • @davidcooper8241
      @davidcooper8241  3 ปีที่แล้ว

      hi, not totally sure I follow you here, but I think that sounds all good. in the video I include a filename for the sample in the buffer object itself just to avoid having to manually load samples each time... but you could use any system for getting samples into the buffers. 'replace' messages are a great option, would allow you to swap samples on the fly also

  • @manuelbadano9403
    @manuelbadano9403 4 ปีที่แล้ว

  • @bikotje
    @bikotje 3 ปีที่แล้ว

    can you share the samples?

    • @davidcooper8241
      @davidcooper8241  3 ปีที่แล้ว

      they're from a free set of drum samples - search 'SampleRadar: 1,000 free drum samples'

    • @davidcooper8241
      @davidcooper8241  3 ปีที่แล้ว

      can't remember exactly which ones i used here - it was one of the full kits within that sample pack, maybe the acoustic ones

  • @KNGMO23
    @KNGMO23 3 ปีที่แล้ว

    lmao bro can you slow it down

  • @treyGivens1
    @treyGivens1 3 ปีที่แล้ว

    Why would you use this?