Settings

Theme

Bongo Cat

bongo.cat

1348 points by mrpadie 5 years ago · 207 comments (206 loaded)

Reader

pornel 5 years ago

Please add `return false` or `event.preventDefault()` to your keyboard handlers!

Otherwise the browser assumes the page didn't do anything with the events and uses its default keyboard handlers. I have find-as-you-type enabled, and pressing keys launches search for me. Handlers need to "eat" the keyboard events to prevent default browser behavior.

  • grishka 5 years ago

    Also: I had Russian keyboard layout when I opened the link, and nothing at all worked. Switching to English fixed it. You should be using key codes, not characters, unless you're accepting text input. Key codes correspond to physical keys on the keyboard, but characters they type don't necessarily.

    edit: oh it's on github, gonna submit an issue

    • dkersten 5 years ago

      Yes! I use colemak, so its rather annoying when there's games that assume WASD but use characters and don't let me rebind the keys.

  • sedatk 5 years ago

    Also HN, please add "`" for inline monospace text.

    • arthurcolle 5 years ago

      what? why?

      backtick code comments/snippets from source text are. really not widely standardized, I don't think it makes sense to encourage them without an accompanying web standard, or at least some kind of standard

      • snazz 5 years ago

        I'd say that CommonMark is a pretty widely-utilized standard defining formatting including `inline code` snippets.

        • arthurcolle 5 years ago

          Gotcha, didn't realize it was standardized. I feel like I heard about CommonMark when it first was announced and I more or less wrote it off as another markup format, but thanks for the clarification.

          My poor little internet points <\3 sorry HN for the unforgivable offense of asking a benign question

      • boogies 5 years ago

        CommonMark is some kind of standard, and HN’s current syntax is a subset of it.

      • Rumudiez 5 years ago

        HN isn’t a web standard.

        • arthurcolle 5 years ago

          The markup that it uses for comments should use one though - and apparently it does! Others have mentioned that it uses a subset of CommonMark as mentioned in your post's sibling comments.

          Thanks

  • timdorr 5 years ago
warenhor 5 years ago

In case you want (like me) to share your best art with you colleagues:

let e = $.Event('keyup'); '09090586 '.split('').map((k, i) => {setTimeout(()=>{$.play(InstrumentPerKeyEnum[k],k,e.type==="keydown")}, i * 200); setTimeout(() => {$.play(InstrumentPerKeyEnum[k],k,e.type==="keyup")}, i * 250)});

  • shmageggy 5 years ago

    I think bongo cat needs a MIDI interpreter

  • boksiora 5 years ago

    let e = $.Event('keyup'); Math.PI.toFixed(50).split('').map((k, i) => {setTimeout(()=>{$.play(InstrumentPerKeyEnum[k],k,e.type==="keydown")}, i * 200); setTimeout(() => {$.play(InstrumentPerKeyEnum[k],k,e.type==="keyup")}, i * 250)});

  • elcomet 5 years ago

    It's not working in the console

thn-gap 5 years ago

While the website has barely any text, consider adding a translated option in Catalan. .cat domain is used to highlight the Catalan language[1]. nyan.cat offers a Catalan version because of this.

I think this is checked regularly, but I'm not sure.

[1] https://en.m.wikipedia.org/wiki/.cat

stevenhubertron 5 years ago

This is great fun. The code may not be perfect, nor translated into 100 languages, nor built with microservices on an instantly scalable architecture, and not even leveraging AI, but that's why it's so awesome. Thank you for posting this today. After the week we had here in Colorado I needed it.

mysterydip 5 years ago

Showed it to my young kids who promptly took my phone and ran away making various instument noises until I took it away 15 minutes later. Love it!

v-yadli 5 years ago

FYI: https://www.youtube.com/channel/UCrMH132hWAcvZu1nL1k7-vA

See also: https://www.youtube.com/watch?v=lT1Rowl-EFM

:D

thomasfl 5 years ago

It uses jQuery extensively. The frontend developer in me wants to make a fork written in typescript using react and redux toolkit to manage keystrokes. Then I realize it is just a fun toy.

  • tambourine_man 5 years ago

    This industry’s best kept secret is that jQuery is as awesome today as it was 10 years ago.

    The DOM API is so much nicer than the native one it’s not even funny.

    And when you are not dealing with thousands of buttons you realize you don’t need a virtual DOM. You may even come to the conclusion that if you have so much state in a single view, maybe your UI sucks.

    And that beneath all the React hype, there were people doing “components“ and “server side rendering” in PHP, Python, Ruby, Java for decades.

    But I’m not gonna get grumpy this early in the morning.

    • whizzter 5 years ago

      While i use React at work for bigger things, I've come to use Vue for almost all my "smaller" hacks since it becomes a win to use almost as soon as you start using inputs. After this it scales pretty well up for anything that is on "one page".

      Apart from work things the main example would be a that I built a small audio sequencer hacked together with Vue. That project would've been suicidal to do in JQuery but also went far quicker to make than if i would've been messing around with doing everything "properly" in React. (Iirc the entire thing is <1000 loc)

      My main "issue" right now is if i should just leave it and let it be useful at the current level (perfect for creating small retro-style chip tunes with fixed audio channel tone generator controls). Or to remake it in React to enable more easily supporting stuff like view plugins (to control parameters custom instrument/filter plugins), I.e. in principle making it more "application" like rather than just a small one-page hack.

      • tambourine_man 5 years ago

        I never understood this “suicidal” critique of jQuery. I've never got so tangled up in my own code to feel the urge to switch to a different model.

        I've seen Backbone.js, Angular, React, etc, all come and go and none ever answered the “why would I want that” question to me. I remember using Prototype.js and MooTools.js and when I saw jQuery's home page I knew instantly the “why” and the answer was an instant and rejoicing “yes”.

        • stevenhubertron 5 years ago

          I use https://umbrellajs.com/ whenever I can get away with it. Lesser overhead than jQuery but much of the convenience I need for my prototypes.

        • whizzter 5 years ago

          (TL;DR; It's just a different way of working with less manual code)

          I never spent much time on webdev in the era where jQuery came into being but as I've understood (and from the jQuery code I've seen since) it solved basic issues in working with manipulating the DOM and gives powerful animation tools,etc. So as you say the upgrade over the browser API DOM manipulation is obvious, clear and direct.

          I'd say that my background is mainly from games, where you usually setup your own data structures and then rendered them as it fit.

          From time to time I've worked on custom tools on native platforms (win32/GDI/MFC, Java/Swing,etc) and working with these is conceptually similar to using the DOM (manipulating objects like adding buttons, responding to events, reading data from input boxes on events,etc) and there is always relatively lot of work with shipping data in and out of the UI objects (either keep data synchronized between UI and internal model or reading data from the UI continually).

          Compared to your game rendering code that usually just needs to iterate internal data this always felt like a lot of manual work to keep UI and internal data in sync.

          Considering for example a 3D program where you can drag around an object with some arrows, while those arrows are dragged an input-box is updated with the new values and if you want to align the position you might edit the value manually in the input box and have the 3D view show the new position as you edit it. On top of these 2 sources of value changes you might have an animation system wanting that might change these values while animating (so that they are visible to the user), this kinda stuff is usually a buggy nightmare to maintain once you have it in a few many places.

          This is why I like Vue and React (Angular.JS also had this to a degree even if it's implementation was weaker than Vue), with both of them you only need to concern yourself with how your internal data works/looks and operations are simple to do since they only operate on that internal data.

          Then the Vue templates (or your React rendering functions) takes care of visualizing it with the associated automatic functionality to adjust the internal values if changed by the user.

        • ep103 5 years ago

          mooTools was great back in the day (oh man, we're old). And jQuery was a great improvement from that.

          Prototype was a great initiative, but I think the community was right when it decided to go the jQuery route, and not append new functions to the prototype. Even though prototype never really caught on, working with websites where it was used partially, or scraping data on websites that used it, has caused me plenty of issues over the years.

          You left out 2 frameworks that are important in answering your question, and those are YUI, and jQuery UI. And both of them attempted to answer the same issue. The issue was thus:

          In jQuery's hayday, developers wrote code by appending jQuery scripts to events. If you click this button, then the code in $(yourButton).click(function(){}) would run. But at the time, writing OOP, or even well moduled code in javascript was extremely difficult to do, as very few developers invested time into setting up a module system via CommonJS, or AMD modules, with requireJS or Browserify or etc, and almost never did so by default with a normal jQuery page.

          The end result is that once your average webpage hit a certain level of complexity, the page itself would have thousands and thousands of lines of JS, each one written as a completely standalone script, triggered off of some jQuery event on the page.

          And this is just fundamentally not a good way to program. In what other world would we write code, and say that our architecture is that each user action can trigger a stand-alone script, and that's good enough? Except for JS it was worse, because without a moduling system, there were often conflicts and soft dependencies everywhere between said scripts. Above a certain complexity level, refactoring code from this timeperiod is a complete and utter nightmare. It doesn't help that the inability to program using cleaner architectures resulted in many programmers writing off JS as a "toy" and not a real language, whereupon many of these programmers would then go on to write "toy" level quality of code.

          jQuery UI, and YUI both attempted to solve this problem by building a component based approach to organizing your events. Basically enforcing a very simple OOP framework in a world where writing AMD or CommonJS modules was a pain in the neck.

          They're both okay. At my company there's still old code from before and after these frameworks came out, and among pages that have thousands of lines of JS, the pages that use these frameworks are miles and miles easier to refactor than the ones that just rely on pure jQuery. We usually take to just completely burning and replacing the pre-Yui/pre-jQuery UI pages, but the Y/jUI pages we can usually refactor or actually debug.

          Backbone.js took the lessons learned in YUI and jQuery UI and wrote the first real framework that was any good at building a modern UI architecture that worked in the browser. I could go to a dev who was building a WPF app in MVVM, and explain backbone.js in a few minutes, and they got it. It wasn't perfect, but it was far better than what we had before.

          Node.JS standardized how to actually write functional or OOP code in JS.

          Angular and React took the lessons learned and failed by backbone, and added in the fact that with the advent of Node, people actually started writing JS as a first-level language.

          Angular was an iteration on the problems attempted to be solved by yUI and jQuery widgets. That's to say, Angular's entire approach was to build a heavily boiler-plated framework so that individual developers could write UI scripts in relative isolation from each other, in a very easy to debug manner. It is and was basically what every large development project manager / team lead has been asking for since the early 2000s for JS development. A framework that is so boilerplate heavy, opinionated, and hand-holdy that it becomes easy to debug and review the majority of the code written by your junior JS devs. Its no wonder it was the first framework to heavily enforce static typing and typescript, or that it was pushed by Google. Though Angular has iterated many times over the years, its initial versions were explicitly written with the intent to be used by project managers writing JS who weren't programmers, and to me, it often feels like it is inspired by enterprise JAVA type decision making. You can use Angular for anything, but to me where it really, truly shines is if you have a webpage with a well defined layout, need specific parts of that page to have heavy but isolated user interaction, and your team is not a JS-first shop. This isn't the only place where Angular shines, but my god does it shine in that particular combination.

          React took the opposite approach. It also iterated on the successes and failures of backbone. But it attempted to do so with an approach that provided the bare minimum for front end developers to write modern web apps, and give developers an opt-in approach to included what parts of the library they would like to use, and make it easy for developers to write their own packages to be used with the library. Where angular attempted to provide its own core libraries (and correct way to use them) for every possible need a developer could have when building a web page, react trusted the community to develop JS on its own.

          Vue, mithril, etc all iterate on react's decisions.

          • tambourine_man 5 years ago

            I enjoyed reading that, thanks. It did, however, reinforced my impression that these frameworks are trying to solve a problem I don't have.

            >But at the time, writing OOP, or even well moduled code in javascript was extremely difficult to do

            JavaScript is still the same, you still can and pollute the global window object, use global variables, etc.

            It seems these frameworks are mostly about enforcing a code style, best practices when dealing with large teams with very different experience levels. Since I work mostly alone and clients don't care what tech stack I choose, I guess I'm in luck.

            • ep103 5 years ago

              > JavaScript is still the same, you still can and pollute the global window object, use global variables, etc.

              If you are writing in a modern framework, this is now not possible, without really, intentionally, breaking a lot of things to be able to do so.

              > It seems these frameworks are mostly about enforcing a code style, best practices when dealing with large teams with very different experience levels.

              Its more like finally having a real programming language, but for backwards compatibility, you can still peer under your framework and libraries and see all the nonsense that used to be available.

              > Since I work mostly alone and clients don't care what tech stack I choose, I guess I'm in luck.

              Most likely if you're a single person working on such projects, you usually won't hit the complexity needed to justify these tools. That said, since most modern work is being done within them, you are also missing out on the ability to leverage those capabilities when needed. But fair enough!

          • bboygravity 5 years ago

            Oh, so that's what all the JS slang was about in all those webdev vacancies I've seen over the past 10 years or so?!

            I'm an embedded guy (very little idea about webdev stuff). Nice summary :)

      • webmaven 5 years ago

        > My main "issue" right now is if i should just leave it and let it be useful at the current level [...]. Or [...] making it more "application" like rather than just a small one-page hack.

        Both, perhaps (ie. fork it)?

        • whizzter 5 years ago

          Maybe down the line (too many side projects already). I really should just add that little extra bit of work to make the Vue version usable.

          UI wise i need to add an envelope editor instead of entering numbers manually, the player code already has support for envelopes although it needs a bit fixing with how sustain is handled.

          Would be fun to "put up" the project for public consumption, took the opportunity to try out a serverless backend (since this isn't something i plan to manage myself or think will pull or cost in any real money) and that was fairly easy for what i have in mind (adding the possibility to share tunes and some 3rd party login for saving stuff maybe)

      • antoineMoPa 5 years ago

        Have you tried webcomponents?

        • whizzter 5 years ago

          Does it solve data-binding? From what I've understood of WC it's about making developing customized elements saner?

  • coddle-hark 5 years ago

    Then you realise this is what a lot of people spend their working lives doing, rewriting frontend code in a different framework for no good reason other than they want to.

    • Accacin 5 years ago

      Yeah, no native tools ever get written in different languages and frameworks. Or is it only not acceptable when Front End developers do it?

      Personally I've never known anyone do this for any other reason but educational reasons. When I wanted to learn React, I copied other websites in React. I do similar things when I'm learning Golang, or C, or any other language I'm interested in.

      • coddle-hark 5 years ago

        I’m not sure what the go/C equivalent of “Ugh, you’re using jQuery? Time for a rewrite” is. It happens a lot more in frontend land than in the rest of the developer ecosystem.

        • webmaven 5 years ago

          > I’m not sure what the go/C equivalent of “Ugh, you’re using jQuery? Time for a rewrite” is.

          Observed "in the wild":

          C » C++

          C++ » C++ w. STL

          C++ » C#

          VB » VB.NET

          WinForms » WPF » Silverlight » UWP

          Edited to add:

          Java EJBs » Java Servlets » Java Spring

          C++ » Java » C#

          • slingnow 5 years ago

            You're describing switching to a different language. There's plenty of that going around no matter what language you're using. But I don't recall once seeing anyone decide to rewrite something in the equivalent of a different C "framework". There's certainly a lot less of that outside of frontend development.

            • Kerrick 5 years ago

              That's because if you want to write for the Web Platform, you haven't been able to switch languages; you were largely stuck with JavaScript for decades.

              Contrast that to writing for the Windows Platform--you could easily choose one of many languages.

            • webmaven 5 years ago

              Several of the examples I listed are frameworks or the equivalent.

        • boogies 5 years ago

          “Ugh, you’re using C? Time for a Rust rewrite.”

    • goodevans 5 years ago

      *somebody wants to...

  • darkhorse13 5 years ago

    You have a fully working application where the only major issues can be easily fixed by adding `event.preventDefault()` to the keystroke handlers. Instead, you want to throw all that away and rewrite it with some new tool/framework, inevitably introducing new bugs and issues. Unless this is a joke, the question is why?

    • taneq 5 years ago

      For the same reason that the original was developed: for fun!

      • tleb_ 5 years ago

        You are having fun using a modern stack? Please teach me!

        • vanderZwan 5 years ago

          Well, for starters, I guess picking a project topic that is fun helps. You could do a lot worse than a bongo cat meme in that regard

        • taneq 5 years ago

          No, but then I didn’t make this.

  • rouxz 5 years ago

    Sad state of JS frontend. Overcomplicating things is the first thought that we have now, then we think about the requirements.

    • whywhywhywhy 5 years ago

      Complain about JQuery yet this loads in less than 300ms.

      Struggle to imagine any React/Redux engineer I know getting this on the screen in even 3 seconds let alone sub 1. Depresses me how even 10 second webpage load times are considered acceptable in that toolchain, I know it's capable of better but it clearly needs more work to get there than people are willing to put in.

    • Accacin 5 years ago

      Why single out JS? Everything developers do nowadays is overcomplicated. See all the posts from large companies saying they switched to this and that for tenuous at best reasons. Then we get a post later saying they're switching back.

    • madeofpalk 5 years ago

      It really isnt. Poor developers might, but poor developers will over complicate things in any domain.

      • grishka 5 years ago

        The problem is, the industry favors overcomplicating developers, because there's more of them, over those who actually have a clue what their code is doing.

  • sildur 5 years ago

    You could also throw a java back end while you are at it.

    • antupis 5 years ago

      Also it is missing MongoDB and Kubertenes cluster.

      • lillecarl 5 years ago

        What about logging? Elastic is a must in every deployment!

        • 0xFFFE 5 years ago

          And we haven't even discussed microservices architecture & CI/CD pipelines. Should we included AI powered monitoring?

          • lillecarl 5 years ago

            Let's bake in some blockchain while we're rewriting this to run serverless with rust->wasm on cloudflare workers to make it 5G ready!

            • t0astbread 5 years ago

              We're still locked into a single vendor! Let's make it hybrid-cloud behind a service mesh and add an on-premises OpenFaaS instance.

  • Shish2k 5 years ago

    Why so oldschool? Isn’t the new coolness to rewrite your frontend in Rust compiled to WASM? :P

    • baybal2 5 years ago

      Yet, it's fast. Browsers will always be optimised for the most common JS functions, which even today are nothing else, but showing very basic jQuery based interactive pages.

  • kgraves 5 years ago

    wait what why?

  • edhelas 5 years ago

    But why ?

  • deepstack 5 years ago

    or Vue

judge2020 5 years ago

If you're not familiar with the origins of bongo cat: https://knowyourmeme.com/memes/bongo-cat

adamddev1 5 years ago

This is delightful. It would be nice though if you could play a full scale/octave of notes on the keyboard and marimba.

Right now you can only play the first 10 notes (semitones) of the chromatic scale so it makes it a little unusable musically.

It would be awesome and playable if it was:

- All 12 semitones plus octave (13 notes total)

or if limited space for buttons is an issue

- 7 notes of a major scale plus octave (8 notes total)

jmiskovic 5 years ago

I made an app in such playful style but without memes, maybe crowd in this thread would appreciate it. It would at least keep your kids occupied for few minutes.

https://play.google.com/store/apps/details?id=com.castlewrat...

https://github.com/jmiskovic/hexpress

  • ghostie_plz 5 years ago

    I love this app! I've had it installed for a while because the hexagonal note layout is fascinating

degosuke 5 years ago

Very fun 2452 997 2452 775 2452 57421175 Rick Astley - Never gonna give you up

rosstex 5 years ago

The fact that this is at the top of HN at 3am gives me hope.

IvanK_net 5 years ago

To play Beethoven, press keys

0 9 0 9 0 5 - 8 6 3

thom 5 years ago

Deeply sad that this makes no sound on my iPhone cos my kids would find this hilarious.

  • alidl 5 years ago

    You have to take it out of silent mode.

    • thom 5 years ago

      Ah, I am so used to video on the web not being muted that this didn't occur to me. Thanks!

      • thom 5 years ago

        Although it then remutes if I lock and unlock, or switch away. iOS is fun.

        • jannes 5 years ago

          You might need to take it out of silent mode with the physical switch on the side of the phone

          • thom 5 years ago

            Yeah, that works the first time, but then sound is gone again when you switch away to another app and back to Safari. It's really no big deal, just feels like it must be frustrating working on user experiences like this across devices!

    • deepstack 5 years ago

      it is web audio api thing. Apple mute the Web Audio Api when it is on vibration mode.

    • sgt 5 years ago

      Confirmed. No sound if in silent mode. Works fine if you switch the sound back on.

  • Angostura 5 years ago

    Working fine here - iPhone 7 running iOS 14.1

bulka 5 years ago

The last time I checked, we didn't have a whole lot of songs that feature a cat playing the cowbell and therefore I would be doing myself a disservice, and every member of the HN if I didn't perform the hell out of this.

zw123456 5 years ago

More Cowbell!!! F F F F F F F F F F F F F F F F F F F F F

Thanks for the fun distraction for a few minutes :)

fredley 5 years ago

The piano and marimba doesn't quite have a full scale, consider using -, = and [, ] to add the extra couple of notes!

I would love to be able to upload a midi to this...

Fnoord 5 years ago

Protip: disable Vimium.

teh_klev 5 years ago

I'd never heard of Bongo Cat until now and it brings back fond memories.

Back in 2006, a while after the passing of my previous cat (Kira), I became the new subordinate of two six week old sibling tuxedo kittens, Buzz (male) and Blossom (female). They were pre-named by the cat rescue place and I didn't have any better ideas, and so those names stuck for a while. Explaining "Blossom" was sometimes a challenge if you know me, 20st at the time, petrol head, beer, curry, other things, but do love cats.

Anyway, Buzz grew into this almost 5ft long (but not fat, or overweight) slightly clumsy cat in his "teens"; there was a laptop flooded by a glass of water, a not inexpensive B&W speaker broken by an attempted leap (grrr)...usual cat stuff.

Privately I started calling him "Bongo", I don't know why, it just seemed appropriate, and suited him. I also started calling Blossom, his sister mini-bongo around the house, but then mini-puss. Blossom was the runt of the litter (there were three cats in the photo, I offered to take all of them, Buzz was the middle cat, Blossom was the tiny one).

Anyway just a story.

Sadly Bongo (Buzz) passed away due to kidney issues at the age of 10 back in 2014. I miss him, he was so good natured (as is Blossom) and an amazing lump of feline friendlyness, seeing this today brought a wee tear to my eye.

Anyway, some links to these awesome pals:

https://imgur.com/bMr725m ("Bongo")

https://imgur.com/YGZZOAW (Younger days)

https://imgur.com/oq124oJ ("Bongo...again")

https://imgur.com/Fsgmqsd (When Buzz broke into a bag of paperwork when I left the house for a couple of hours)

https://imgur.com/NZLsF59 (They still managed to squeeze into their kitten bed somehow even after five years)

https://imgur.com/voqjl0F (Blossom, pretty much today, a bit of a lopsided sit, but 14 and a half years old and still as crazy as ever).

Naac 5 years ago

The Bongos correspond nicely with the left and right hands. Left side ( letter a ) corresponds with the cat's left hand (from my view ), and right side ( letter d ) corresponds with the cat's right hand.

This is reversed for the Piano and Marimba for some reason which I think should be fixed.

tuukkah 5 years ago

I have installed an Android app for use in emergencies: https://play.google.com/store/apps/details?id=com.miknik.bon...

astatine 5 years ago

The interaction mechanism is quite well done - it provides very different (and appropriate) mechanisms for laptop/phone. Though I wish we could tap on the bongos directly instead of using the seperate buttons on an Android phone.

sdfjkl 5 years ago

Finally, some real life use for that n-key rollover feature of my new keyboard :D

sergeykish 5 years ago

After recent guitar lessons copyright disputes I've decided to learn perfect pitch. No need for written material if can hear it.

Online tools I've found present note in all octaves, which I found confusing. So I've created own tool — no frameworks, 5603 bytes, entire code displayed on the page (except soundfont-player library).

http://sergeykish.com/perfect-pitch-ear-training

derac 5 years ago

I logged in on my phone to tell you this is based.

zer0gravity 5 years ago

Feature request: Looping -> Being able to record a sequence or more and then using them as background.

gaius_baltar 5 years ago

Now I just wonder if it is technically possible to save a playing session in a MIDI file.

(I'm musically illiterate but I assume that, except for the meow, all instruments from this site follows the usual music rules. Sorry if what I just written is nonsense)

major505 5 years ago

IS a matter of time befores someone uploads a video playing Is The Final Countdown on this.

globular-toast 5 years ago

The sounds don't seem well balanced. The cow bell is very loud and when I turn down overall volume I can't even hear the bongos. I bet they are normalised rather than balanced for perceived loudness.

cafeoh 5 years ago

Cute toy, but the links right below the buttons are absolutely infuriating.

danwills 5 years ago

Totally worked with sound on mobile Opera, Firefox and Chrome (Android 10)

bongothrowaway 5 years ago

It's getting increasingly more surreal to see Bongo Cat popping up everywhere when you know the person who did the original art for it. NEVER expected to see it here on Hacker News.

Now back to lurking.

  • glouwbug 5 years ago

    Are you the person who created bongo cat

    • bongothrowaway 5 years ago

      No, just happen to be a friend of theirs. More specifically, I know the artist, not the person who made it a meme. It's been very strange seeing their art evolve from doodle to meme to merchandise to whatever this qualifies as. Derivative work?

buro9 5 years ago

Mouse clicks also play the bongos, and other mouse buttons meow.

Minor49er 5 years ago

Very cool. I wish the keyboard and marimba had notes instead of numbers for their button names though. It would open up more possibilities for playing tunes easily

villuv 5 years ago

Nice. Would be extra nice touch if long press would produce muted sound (cut out early) as the cat keeps its paw on the bongo drum / cowbell.

Hypergraphe 5 years ago

It's fun and game, but there is too much latency between my keyboard and the output sound. It is impossible to overdub something.

  • chairmanmow 5 years ago

    I got significant latency as well that made it unusable to play as an instrument, in Safari and Chrome on Mac... surprisingly you seem to be the only other one reporting the issue I see so far though.

  • Kiro 5 years ago

    No latency at all for me. Was able to play pretty complicated stuff and I'm used to the Launchpad X.

beauzero 5 years ago

That took me back to the fun days of the late 90's. Thanks for this I really needed it. The internet can still be fun.

gingahbread31 5 years ago

I can't thank you enough for posting this

mrpadieOP 5 years ago

Came across this little gem earlier - did not expect it to hit the front page! All credit to the original authors. Enjoy!

knodi123 5 years ago

lol, while I was playing with the piano notes, I accidentally hit my laptop's "play" button. Meanwhile, my wife had queued up "spooky background music" in spotify. I was legitimately giving the site props for asking me to play along to a slowed-down electronica version of the Jaws theme.

dluan 5 years ago

cant play bongos and piano at the same time

jakciewell 5 years ago

This is really cool, especially for my 8yo

aloknnikhil 5 years ago

It's impressive that this checks for the system theme switches between dark/light modes

davidwparker 5 years ago

Cute, but some of the keybindings aren't great for (us few) Dvorak users.

nxpnsv 5 years ago

It is perfect the way it is.

plutonic 5 years ago

Press and hold space.

You're welcome ^_^

bluewavescrash 5 years ago

Has anyone mapped a fully functioning "piano" to the keyboard?

skavi 5 years ago

I love how so many recent websites respect system theme preferences.

Shugarl 5 years ago

I needed this, thank you.

Copenjin 5 years ago

Thanks, this is going to be perfect for my daily remote stand-ups!

debarshri 5 years ago

It would be even more fun if there was a looper built into it.

monalisauzi 5 years ago

Just what I needed to jump-start my productivity today!

maztaim 5 years ago

My two year old refuses to stop playing the bongos now.

zer0gravity 5 years ago

Sliding your fingers over more rows at a time is fun.

RoutinePlayer 5 years ago

I just spent 5 minutes on this .. and loved it

clankyclanker 5 years ago

Why does it presume the cat is right pawed?

dsiegel2275 5 years ago

Well, there goes my productivity for today

hideckies 5 years ago

I found hope in my life, thank you.

stuntkite 5 years ago

This is what the internet is for.

henvic 5 years ago

I love it!

zomg 5 years ago

ugh, there goes ANY chance of having a productive friday! ;D

moogly 5 years ago

Not enough instruments to play Steve Reich's Drumming!

terrycody 5 years ago

So cute LOL

api 5 years ago

Disruptive.

gbajson 5 years ago

Feature requests:

- ability to save played melodies,

- ranked playlist.

viach 5 years ago

There is a cat for that (C)

syndacks 5 years ago

HN vehemently attacks FB for removing Holocaust denial groups and upvotes a cat hitting a synth.

Not the same people necessarily, but the same community.

moralsupply 5 years ago

I can't stop hitting the space key

b0rsuk 5 years ago

Needs a replay saving feature.

kackbein 5 years ago

Why am I upvoting this?

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection