Mister Bomb

Mister Bomb

Пікірлер

  • @purplebutterflyprod
    @purplebutterflyprod24 күн бұрын

    Great tuto, thanks a lot. Silly question, is there a way to do : sample :bd_haus if a[i] == 1 or 3 sleep 0.25 or the only way is to make two lines like that : sample :bd_haus if a[i] == 1 sample :bd_haus if a[i] == 3 sleep 0.25

  • @MrBombMusic
    @MrBombMusic23 күн бұрын

    Hello! You can do it in one line of code like this: sample :bd_haus if a[i] == 1 or a[i] == 3 Full example: a = [1, 0, 1, 0, 3, 3, 0, 0] live_loop :a do 8.times do |i| sample :bd_haus if a[i] == 1 or a[i] == 3 sleep 0.25 end end Hope that helps. Thanks for watching.

  • @purplebutterflyprod
    @purplebutterflyprod23 күн бұрын

    @@MrBombMusic You have no idea how much you helped me to clean the mess that I name "code" of one of my tracks XD Thanks a lot !

  • @purplebutterflyprod
    @purplebutterflyprod22 күн бұрын

    @@MrBombMusic Aaaaaaand it's me again XD I tried to mess arround with this sequencer style code with synth instead of sample and when the loop is replayed, I have a "parasite" note who comes with the first note of the loop. The way I solved it is to put a rest during a ridiculous short time and on the journal, instead of à 128 I've got a rest, do you think it's normal ? (feel free to take your time to answer of course) Here is my code : use_bpm 80 a = [1, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 5, 0, 4, 0, 3, 0, 2, 0, 3, 0, 4, 0, 2, 0, 0, 0, 7, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 5, 0, 4, 0, 3, 0, 2, 0, 3, 0, 4, 0, 6, 0, 4, 0, 8, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 5, 0, 4, 0, 3, 0, 2, 0, 3, 0, 4, 0, 2, 0, 0, 0, 7, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 5, 0, 4, 0, 3, 0, 2, 0, 3, 0, 4, 0, 6, 0, 4, 0] define :intro do play c4 sleep define :maintheme do 128.times do |i| play :c4 if a[i] == 1 play :g4 if a[i] == 2 play :a4 if a[i] == 3 play :b4 if a[i] == 4 play :c5 if a[i] == 5 play :d5 if a[i] == 6 play :d4 if a[i] == 7 play :e4 if a[i] == 8 sleep 0.25 end sleep 0.00001 ##Told you it's ridiculous end

  • @harryleblanc4939
    @harryleblanc4939Ай бұрын

    Spread is super cool. It's an instant provider of euclidean rhythms (that's the algorithm used to spread them). You can rotate them to shift the beat. You can also use it to calculate odds (e.g, to get a chance of 3 out of 7, just say if spread(3,7).pick). Love these videos!

  • @harryleblanc4939
    @harryleblanc4939Ай бұрын

    Helpful.

  • @michelfelipe875
    @michelfelipe875Ай бұрын

    wow, amazing content, thank you

  • @harryleblanc4939
    @harryleblanc4939Ай бұрын

    So simple and elegant.

  • @harryleblanc4939
    @harryleblanc4939Ай бұрын

    You could also use the .each option to iterate through the outer array. That way, if you added more patterns to the data, you wouldn't have to change the code: outerarray.each do |pattern| pattern.each do |beat| sample kick if beat == 1 sample snare if beat == 2 end #each beat end #each pattern Easy peasy.

  • @harryleblanc4939
    @harryleblanc4939Ай бұрын

    or .pick to choose a random element, without knowing how many elements.

  • @slepxjdkx5028
    @slepxjdkx5028Ай бұрын

    hi can you share her code?

  • @MrBombMusic
    @MrBombMusicАй бұрын

    Here you go: editor.p5js.org/mrbombmusic/sketches/brXO5Aa4 I also made a step by step tutorial on how to do this project on Instructables.com: www.instructables.com/Paper-Doorbell-W-P5js-Makey-Makey/

  • @Chef_John_PSX
    @Chef_John_PSX2 ай бұрын

    hey, i like music but I'm more into coding than music production, I'm sure you've heard this a lot but your videos have been an absolute god send for me, I just wanted to say thanks for doing what you do :) I'm still at the start of my journey with learning sonic pi but I wouldn't have even been able to even get started without your tutorials

  • @MrBombMusic
    @MrBombMusicАй бұрын

    Thank you so much! I always appreciate hearing that these tutorials are helping people on their music coding journey. 🙏

  • @udomatthiasdrums5322
    @udomatthiasdrums53222 ай бұрын

    cool

  • @xavierhollebecq601
    @xavierhollebecq6012 ай бұрын

    thx

  • @jasmine8182
    @jasmine81822 ай бұрын

    is there a way that you can switch bpm during a live set in a way that mkaes it blend fluidly? would love a video on this!! thanks

  • @rosemarydessa3260
    @rosemarydessa32603 ай бұрын

    Love all your work related to Music, especially the ones using Arduino , SO COOL!!!

  • @hachetrescomacatorce2340
    @hachetrescomacatorce23403 ай бұрын

    grettings from colombia

  • @Italanon
    @Italanon3 ай бұрын

    Hi there, I'm someone who has dipped into your very informative and practical videos in the past. Thanks. The other day I saw this video (kzread.info/dash/bejne/op2jmpeFopbWeNo.html ) and thought I would attempt to make the music side happen purely with Sonic Pi. I've been finding it a struggle as it implies reverse engineering the timings and then trying to map it onto what Sonic Pi is capable of. I would be honoured if you can give your valuable opinion on it. I'm wondering if this is something best approached using the Jscript + OSC toolset? (Something I haven't even tried yet)

  • @MrBombMusic
    @MrBombMusic2 ай бұрын

    Hello! Thanks for watching. It seems like there are two things you need to implement here: 1.) Each individual column has two notes that gradually shift out of phase with each other. This could be done with two separate loops in which one loop sleeps for a slightly longer duration. # metronome loop for all other loops to sync with live_loop :metro do sleep 1 end a = 1 notePhase = 0.005 live_loop :a, sync: :metro do play 60 sleep a end live_loop :aPhase, sync: :metro do play 60 sleep a + notePhase end 2.) The multiple columns which also shift out of phase, with each column moving slightly slower than the one before it. This could also be done with loops in which you have a variable representing the phase shift time and then multiply that amount incrementally for each loop. live_loop :metro do sleep 1 end a = 1 totalPhase = 0.01 live_loop :a, sync: :metro do play 60 sleep a end live_loop :b, sync: :metro do play 64 sleep a + totalPhase end live_loop :c, sync: :metro do play 67 sleep a + totalPhase*2 end live_loop :d, sync: :metro do play 72 sleep a + totalPhase*3 end and so on.... To get the full affect, you would need an accompanying phase loop to go with each loop that represents a different column which would look like this: live_loop :metro do sleep 1 end a = 1 notePhase = 0.005 totalPhase = 0.01 live_loop :a, sync: :metro do play 60 sleep a end live_loop :aPhase, sync: :metro do play 60 sleep a + notePhase end live_loop :b, sync: :metro do play 64 sleep a + totalPhase end live_loop :bPhase, sync: :metro do play 64 sleep a + totalPhase + notePhase end live_loop :c, sync: :metro do play 67 sleep a + totalPhase*2 end live_loop :cPhase, sync: :metro do play 67 sleep a + (totalPhase*2) + notePhase end live_loop :d, sync: :metro do play 72 sleep a + totalPhase*3 end live_loop :dPhase, sync: :metro do play 72 sleep a + (totalPhase*3) + notePhase end You may have to experiment with the values to get the right timing but the variables should make it easier to do this no matter how many loops you use. There is probably a more concise and elegant way to write this but this seems to get the effect you are looking for. Hope this helps!

  • @Italanon
    @Italanon2 ай бұрын

    @@MrBombMusic thanks for that - I always try to make things too complicated! I got in a mess using loops of threads or threads of loops :) I will try that approach. It has prompted me to step into the world of p5js which will also prove to be interesting avenue to explore. Thanks so much. Cheers.

  • @SilverStef00
    @SilverStef003 ай бұрын

  • @mariobroselli3642
    @mariobroselli36423 ай бұрын

    I recently found Out that Sonic Pi Compiler is Kind of a Version of sup collider to Run another language 😅😮

  • @mariobroselli3642
    @mariobroselli36423 ай бұрын

    Is it Imperative or functional?

  • @mariobroselli3642
    @mariobroselli36423 ай бұрын

    😮😮😮

  • @casim8842
    @casim88424 ай бұрын

    I've scoured the internet for ages, trying to find advice on receiving OSC in Hydra (from Sonic Pi in my case), have found nothing. Anyone able to help?

  • @MrBombMusic
    @MrBombMusic3 ай бұрын

    Check out this link: github.com/ojack/hydra-osc I was able to get it to work for both sending OSC from Sonic Pi into Hydra and from Hydra to Sonic Pi, although to do that you need to change the client side port to 4560 (The Sonic Pi Incoming OSC port). Doesn't look like this Github has been maintained much over the last two years, but it does work. Good luck!

  • @genwav
    @genwav4 ай бұрын

    Nice

  • @janewatts3834
    @janewatts38344 ай бұрын

    literally clapped out loud at the end, perfectly paced tut thank u for ur service <3

  • @najjaman
    @najjaman4 ай бұрын

    1:11 Lol it _did_ trip the copyright monitoring (besides that, didn't watch the full video yet, but always nice to see your uploads!)

  • @MrBombMusic
    @MrBombMusic3 ай бұрын

    Uhh I know! Included the link to listen to the instrumental instead. Thanks for watching. Appreciate it!

  • @cedriccourtois2724
    @cedriccourtois27244 ай бұрын

    can you help me plz ,i typed exact the same but keep getting errors : a = [ 1,0,0,0,2,0,0,0,1,0,0,0,2,0,0,0] live_loop :drums do 16.times do |i| sample :bd_haus if a(i) ==1 sample :sn_zome if a(i) ==2 sleep 0.25 end end the error I get is :runtime error :[buffer 0 line 6 (((which is sample :bd_haus )) -thread death +-- live _loop_ drums undefined method a no method error did you mean at .that's the error I keep getting. what is it I'm doing wrong?

  • @MrBombMusic
    @MrBombMusic4 ай бұрын

    The issue is that you are using parentheses instead of square brackets in these lines of code: sample :bd_haus if a(i) ==1 sample :sn_zome if a(i) ==2 It should be: sample :bd_haus if a[i] ==1 sample :sn_zome if a[i] ==2 a is a variable which stores an array, so when you use the counter i to iterate through all the indices in that array, you need to be using square brackets for a[i] to evaluate as one of the values in the array. That should work

  • @timestamp-b5p
    @timestamp-b5p4 ай бұрын

    love it! very clear! thaks!

  • @mjejfvqhdb
    @mjejfvqhdb5 ай бұрын

    Hey, huge thanks for your efforts - incredibly enjoy watching your Sonic Pi tutorials and learn how to code. While all my life crunching excel / ppt with finance related stuff and it makes much more sense to me vs other attempts to approach coding One small q - are aware of similar platforms to do data analysis / visualisation tools with same syntax and commands as those from Sonic Pi?

  • @MrBombMusic
    @MrBombMusic4 ай бұрын

    Thank you for your kind words! Sonic Pi is built on top of the Ruby programming language, so if you are looking for something with a similar syntax, it would also have to be based onRuby. I am not sure what types of data viz /analysis tools are available in Ruby, but I would have to imagine they exist. I am a big fan of p5.js for doing data viz. It uses Javascript so not the same syntax as Sonic Pi, but has a pretty low barrier to entry with the ability to do some pretty advanced things. Hope that is helpful for you.

  • @theJamBoxTV
    @theJamBoxTV5 ай бұрын

    imagine Michael jackson using this!?

  • @casim8842
    @casim88425 ай бұрын

    Excellent explanation, I ran into exactly the same challenge myself, without a solution - you clearly have a strong programming background. I. have watched all your vids, and use them in my own teaching.

  • @user-bw5jo9bj4k
    @user-bw5jo9bj4k5 ай бұрын

    Thx)

  • @LeonardoAguiar3D
    @LeonardoAguiar3D6 ай бұрын

    Thank you for sharing your code. Is there a way for the sketch to print out other midi events from which ever key, knob or pad that is changed; so that you can find out what channel each is using?

  • @MangeshMahajan-g8x
    @MangeshMahajan-g8x26 күн бұрын

    console.log(channel) insert this line in your code

  • @luvtv7433
    @luvtv74336 ай бұрын

    I like how this program focus more in the composition of a song, you can quickly arrange something complete.

  • @stefanhansen5882
    @stefanhansen58826 ай бұрын

    This was awesome! Can Hydra also be controlled from TidalCycles and SuperCollider?

  • @franrios3843
    @franrios38436 ай бұрын

    "Question: How do you comment out a code snippet?"

  • @kuimo-Q
    @kuimo-Q6 ай бұрын

    Thank you! This is a cool project!

  • @bigbadvl4d65
    @bigbadvl4d657 ай бұрын

    Hey brother how are you, this is such helpfull stuff. Im working on a django project right now, do you know by change how to integrate this graph, with the live cursor feature into an html page? Thank you!

  • @anairhorn9448
    @anairhorn94487 ай бұрын

    the goat 🐐

  • @zizou37
    @zizou377 ай бұрын

    hi plz it s possible contact you ?

  • @MrBombMusic
    @MrBombMusic7 ай бұрын

    mrbombmusic at gmail dot com

  • @zizou37
    @zizou377 ай бұрын

    @@MrBombMusic code for soni pi ? plz

  • @ananthvedala4106
    @ananthvedala41067 ай бұрын

    hey i want to implement this, how can i contact you

  • @MrBombMusic
    @MrBombMusic7 ай бұрын

    Mrbombmusic at gmail dot com

  • @daaniyaalmirza2060
    @daaniyaalmirza20608 ай бұрын

    Super cool! I'm doing something similar for a project right now :)

  • @MrBombMusic
    @MrBombMusic8 ай бұрын

    Niiice! Let me know if there’s anything I can do to help. Would love to see what you make when it’s done

  • @beryannParker
    @beryannParker8 ай бұрын

    Thanks Mr Bomb, now this notion of "seed" is clear for me!😀

  • @lampenfieber
    @lampenfieber8 ай бұрын

    The 110 pitch really caught me off guard bahahahaha, that sound isn't meant for human ears

  • @blaze.kimbie
    @blaze.kimbie8 ай бұрын

    :)

  • @DIYRobotGirl
    @DIYRobotGirl8 ай бұрын

    I get the remote control. I just don't understand why it just can't be written in the Arduino IDE like a piezo buzzer and make the tone in the synthesizer. Instead of using the using the piezo buzzer. If we wanted a song to play automated while making led lights and servo movements in the microcontroller. There is a lot on Arduino going to the synthesizer but none of it is just writing the music with an embedded system through the Arduino to a synthesizer. I would like to know if we can do these things in separate synthesizers and still have the Arduino involved why is the Movi Audume still a thing. No one has thought to make a voice chatbot with a Sonic Pi or even the Supercollider. Still have the system capable of making music.

  • @andyyyy4102
    @andyyyy41028 ай бұрын

    1:57

  • @jakebrown1879
    @jakebrown18799 ай бұрын

    to consolidate your code just make an array for each sound and you can still use i to sort through it in the same loop.... only reason youd want to seperate into different loop is if you need to change the beat or something... @ 16:15

  • @Dhdk-gu2zk
    @Dhdk-gu2zk9 ай бұрын

    Xnxx

  • @Dhdk-gu2zk
    @Dhdk-gu2zk9 ай бұрын

    xnxx 2:40

  • @prph13
    @prph139 ай бұрын

    why don't you use supercollider?

  • @MrBombMusic
    @MrBombMusic9 ай бұрын

    I'm not really familiar with coding in Supercollider.

  • @edelvemusic
    @edelvemusic9 ай бұрын

    Nice video! Knit ring is very useful for many musical parameters. It's great to work with randomness here, too.

  • @MrBombMusic
    @MrBombMusic9 ай бұрын

    Thanks! Knit is one of my fav data structures in Sonic Pi. Super versitile!

  • @paullambert7376
    @paullambert737610 ай бұрын

    my dog when crazy the first time the doorbell played lmao

  • @MrBombMusic
    @MrBombMusic10 ай бұрын

    🐶 🚪 🔔

  • @georgendwiga3741
    @georgendwiga374111 ай бұрын

    lit bits, ❤‍🔥❤‍🔥🔥 some good work

  • @andreapiovesana
    @andreapiovesana11 ай бұрын

    Very clear and useful playlist! Thanks for the explanations.

  • @MrBombMusic
    @MrBombMusic11 ай бұрын

    🙏