[HN Gopher] Show HN: I built a little online drum machine using ...
       ___________________________________________________________________
        
       Show HN: I built a little online drum machine using 808 style
       samples
        
       Author : berkcebi
       Score  : 97 points
       Date   : 2023-02-14 20:04 UTC (2 hours ago)
        
 (HTM) web link (peel.fm)
 (TXT) w3m dump (peel.fm)
        
       | ibz wrote:
       | Good stuff!
       | 
       | Are you planning to open source it?
        
         | berkcebi wrote:
         | Yes, it makes a lot of sense to open source it -- will do in a
         | day or two!
        
         | cloudking wrote:
         | Yes, please open source
        
       | atentaten wrote:
       | As someone who was into making electronic music back before
       | Fruity Loops and Hammerhead---a time when one coveted actual
       | hardware, but was always searching and dreaming about software
       | drum machines because they were cheaper or free, I always find it
       | amazing that we can do this in the browser. I always love seeing
       | cool projects like this come about.
        
         | jbjbjbjb wrote:
         | Hammerhead now that's a name I haven't heard in a long time...
         | since my teens. Just googled it and there's an mobile app!
         | https://ruismaker.com/hammerhead/
        
       | kingsloi wrote:
       | Awesome job! I've bookmarked it for future use, can't wait to
       | fill the time before meetings start to jam out!
        
       | hougaard wrote:
       | Lo and Hi tom samples seem to be switched?
        
       | kblev wrote:
       | It's really cool that I place the dots just randomly, and the
       | rythm still sounds good.
        
       | cronix wrote:
       | Nice job! A few suggestions: volume control per note (possibly a
       | popup to avoid slider clutter) and the ability to add additional
       | patterns and then sequence them with copy/paste between patterns
       | so you don't have to recreate each one from scratch.
        
         | berkcebi wrote:
         | Makes a ton of sense -- will add to my list!
        
       | vernon99 wrote:
       | Very cool, here's my loop :) https://peel.fm/f3148e6
       | 
       | Now we need more instruments and collab editing and you have
       | fruity loops online :)
        
         | gravitronic wrote:
         | You should take a look at https://sequencer.party
         | 
         | Collaborative real-time audio/video/midi platform that supports
         | VST-like web plugins (the WebAudio Module 2, or WAM2, standard)
        
       | alphabet9000 wrote:
       | nice, the banana tapping to the bpm was a nice touch
       | 
       | https://peel.fm/1dd2e8a
        
         | ncr100 wrote:
         | https://peel.fm/ad54081 - my creation
         | 
         | /random
         | 
         | Banana is underrepresented contributor to technological growth.
         | 
         | See also https://www.converttobananas.com/
        
           | edholland wrote:
           | https://peel.fm/39ecb93
        
             | digitailor wrote:
             | Only bc it's Valentine's Day :)
             | 
             | https://peel.fm/33e538b
             | 
             | Nice work, fun and the repeats system is cool
        
       | maartn wrote:
       | How to get to the second bar?
        
       | janglezz wrote:
       | the banana tapping its foot to the beat is a nice touch.
        
       | patchorang wrote:
       | Woah, I made almost the same thing the other week
       | https://beatmaker.adammenz.com/
       | https://github.com/patchorang/drummachine
        
         | berkcebi wrote:
         | Huh! I love how you can switch between instruments on each
         | track, that's a great idea.
         | 
         | Have you tried Tone.js vs Howler? Any thoughts?
        
           | patchorang wrote:
           | Interesting, I didn't come across Tone.js until now. It looks
           | like it handles a few more things than Howler. Most useful
           | for the drum machine would be scheduling. I'm just using
           | setInterval, which isn't guaranteed to be accurate, but seems
           | good enough for my use case.
           | 
           | I want to build some other browser based audio/synth tools.
           | I'll have dig into Tone.js more for one of those, thanks. I'm
           | re-learning to code with these projects, but the goal is to
           | build a multiplayer web-based modular synth.
        
       | LosMyke wrote:
       | Can't get audio to work on iPad (could be human error).
       | 
       | Beautiful and simple interface, dark mode would be cool.
       | Appreciate you making this and sharing, thanks.
        
         | berkcebi wrote:
         | Thank you! I noticed on my iPhone that if it's on silent, the
         | audio doesn't play -- that could be it.
        
       | parabyl wrote:
       | A little detroit techno vibe? https://peel.fm/15f0762
       | 
       | This is really neat! the kick some _sweet_ distortion when you
       | put an accent on it and have it layered with some other samples.
       | 
       | I've been using the Volca Drum recently and an idea from that
       | which I imagine would be relatively simple to add to this would
       | be a divide step option - allowing for double-time hats and the
       | like. It would make a great addition to this fun little drum
       | machine.
        
       | automatom wrote:
       | Very nice! I love a good drum sampler and this was fun to play
       | with.
        
       | itcrowd wrote:
       | Fantastic, had a lot of fun poking around this little machine.
       | 
       | I really love it, here are some minor improvement points:
       | 
       | - when right-clicking, the intended functionality of selecting
       | the appropriate rhythm works only half the time or so. The other
       | half is the browser modal showing normal right-click action.
       | Consider doing long-press to change rhythm?
       | 
       | - volume per channel feels off. Putting the slider halfway
       | already results in nearly inaudible contribution from that
       | sample. Consider changing the "slope" of the volume slider?
       | 
       | - the BPM slider is a bit on the small side. Consider making it
       | wider for finer control?
       | 
       | - the window at default zoom level (100%, 1080p resolution)
       | doesn't fill the screen. Works perfect on 125% setting. Consider
       | filling the entire screen so that the button sizes etc. are
       | maximized?
       | 
       | Amazing to play around with.
        
         | berkcebi wrote:
         | That's awesome to hear, and thanks so much for the detailed
         | feedback. Really appreciate it!
        
       | davepeck wrote:
       | Fun. Always love playing with toys like this. A little d'n'b
       | loop: https://peel.fm/c275e61
       | 
       | The banana tapping in rhythm is a great little touch. Fruity!
        
       | eajakobsen wrote:
       | Looks great and works great! A reset button would be nice to undo
       | the horrible mess I made.
       | 
       | A minor note, when I load the page I get console warnings about
       | an Audio Context being prevented from starting automatically, but
       | once I click play everything works perfectly fine.
        
         | justsomehnguy wrote:
         | > A reset button
         | 
         | And 'random' button too.
        
           | berkcebi wrote:
           | Oh yeah, adding to my to-do list!
        
             | bsaul wrote:
             | If you're willing to go a bit further, i recommend adding a
             | "groove" cursor, that slightly shift each box within the
             | beat, at random (then you can have more complex algorithm
             | to make the randomisation move the beat toward a ternary
             | rythm instead of completely at random). It's called
             | "humanize" in some audio software and can be fun (if you
             | feel like putting one cursor per track, that's even
             | better).
        
         | atentaten wrote:
         | The audio context thing where it won't start without user
         | interaction is by webaudio API design. OP would need to prevent
         | the errors from coming up though.
        
         | guntherhermann wrote:
         | > A reset button would be nice to undo the horrible mess I
         | made.
         | 
         | The (...) button next to "Your jam" -> Clear does the job for
         | me
        
           | eajakobsen wrote:
           | Ah, I missed that :)
        
       | hoosieree wrote:
       | Cute and fun! The toe-tapping banana is a nice touch.
       | 
       | A minor suggestion for your export format is to switch from an
       | "array of structs" to a "struct of arrays" layout:
       | 
       | For example, change this:                   "steps":
       | [{"isOn":true, "repeat":"1:2"}, {"isOn":false}, {"isOn":false},
       | {"isOn":false}, ...]
       | 
       | To this:                   "steps": {"repeat":
       | ["1:2",null,null,null,...], "isOn":[true,false,false,false,...]}
       | 
       | It's not necessarily more compact, but you can iterate over all
       | of the collections with a single index.
        
       | mattgreenrocks wrote:
       | Love it. Hope you add more samples :)
        
       | painted-now wrote:
       | Here is my loop :-) https://peel.fm/e431e31
        
       | Archer6621 wrote:
       | Very nice! I like the idea that allows you to make notes skip
       | certain bars, keeps the UI compact instead of having to show all
       | the bars.
       | 
       | It would be nice if you could place notes while dragging the
       | mouse instead of having to click all the time, and a clear button
       | would also be cool.
        
       ___________________________________________________________________
       (page generated 2023-02-14 23:00 UTC)