[{"data":1,"prerenderedAt":325},["ShallowReactive",2],{"project-42513276":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":42,"post_text":45,"what":46,"said":78,"maker_in_thread":181,"shape":191,"grid":195,"attempts":283,"same_week":288,"maker_shows":39,"maker_hidden":317,"reader_version":318,"card":319},"42513276","Trio","A singing synthesizer for the browser with automatic 3-part harmony","title","Show HN: A singing synthesizer for the browser with automatic 3-part harmony","https:\u002F\u002Fpbat.ch\u002Frecurse\u002Fdemos\u002Ftrio\u002F","pbat.ch","zebproj",1735190040,2024,208,34,377,3515,11,"notable","creative","singing synthesizer","web_app",[21,24,25,26,27],"browser","vocal harmony","physical model","web audio","mixed",0.333,{"positive":31,"neutral":32,"mixed":33,"critical":34},9,6,0,2,17,{"idea":37,"design":38,"execution":40,"docs":41},{"positive":34,"critical":33},{"positive":34,"critical":39},1,{"positive":39,"critical":39},{"positive":39,"critical":33},[33,33,33,33,33,33,33,33,33,33,43,33,43,43,33,33,39,33,44,44,43,44,44,39,44,33,44,43,44,33,33,44,43,44],3,5,null,{"problem":45,"audience":45,"pricing":45,"motivation":45,"time_to_build":45,"stack":47,"openness":75,"stage":76,"team_size":77},[48,55,59,67,71],{"value":49,"source":50,"evidence":51},"Rust","maker",[52],{"id":53,"by":11,"text":54},"42517060","Thanks everyone for the suggestions and kind words. Some details: The source code for this project can be found on github [0]. I am using an AudioWorklet node with custom DSP…",{"value":56,"source":50,"evidence":57},"WebAssembly",[58],{"id":53,"by":11,"text":54},{"value":60,"source":61,"evidence":62},"JavaScript","commenter",[63],{"id":64,"by":65,"text":66},"42514919","kitshunt","Source code is here: https:\u002F\u002Fgithub.com\u002FPaulBatchelor\u002FTrio It's written in JavaScript and Rust (compiled to WASM).",{"value":68,"source":50,"evidence":69},"AudioWorklet",[70],{"id":53,"by":11,"text":54},{"value":72,"source":50,"evidence":73},"Canvas API",[74],{"id":53,"by":11,"text":54},"open_source","unknown","solo",{"praise":79,"objections":102,"requests":129,"questions":155,"alternatives":164},[80,95],{"value":81,"source":61,"evidence":82},"Fun and beautiful to play with",[83,87,91],{"id":84,"by":85,"text":86},"42515446","smusamashah","This is awesome fun. Reminds of Google Blog Opera and Pink Trombone. Can we have multiple voices when using multiple fingers please? Edit: I can't sing or play music but this is…",{"id":88,"by":89,"text":90},"42514183","varunneal","so beautiful. I can imagine using this a lot if some buttons are added (start\u002Fstop harmony, view note\u002Fresonance, etc). great job",{"id":92,"by":93,"text":94},"42513877","brunorsini","Fun! I'd love the option to increase (double?) range. It would sacrifice precision somewhat, so a toggle would be ideal. A toggle for quickly visualizing notes would also be…",{"value":96,"source":61,"evidence":97},"Useful for practicing singing",[98],{"id":99,"by":100,"text":101},"42514457","fhackenberger","This is such a great way to practice! Thank you for creating it! Could you perhaps add pitch indicators on the side and multi touch support? Or maybe it's open source?",[103,111,122],{"value":104,"source":61,"evidence":105},"Usually only one voice plays at a time, multi-touch unclear",[106,110],{"id":107,"by":108,"text":109},"42516747","hunter2_","95% of the time, I can only get 1 voice at a time. 5% of the time, I can get 2 or 3 voices at a time (1 variable pitch, the others fixed pitch) but I have no idea what input…",{"id":84,"by":85,"text":86},{"value":112,"source":61,"evidence":113},"iOS Safari selects text and drag gestures interfere",[114,118],{"id":115,"by":116,"text":117},"42519410","zellyn","This is so fun. One note: on iOS Safari on my iPhone, it really believes I’m trying to select everything, do drag and drop, etc. I’m sure someone here knows the proper CSS…",{"id":119,"by":120,"text":121},"42514284","ycombiredd","in Chrome, on my iphone, I can get a cool effect that looks like a glitch, but I wonder if it is a feature. If I hold a note a certain way, where the browser does a “select all”,…",{"value":123,"source":61,"evidence":124},"No explanation of how the harmony works",[125],{"id":126,"by":127,"text":128},"42516596","makapuf","I'm sorry but I can see a small keyboard with selected notes, can some one describe what makes it 3 parts harmony ? Is it a song thing ? Some chord thing ? There is no…",[130,141,146,150],{"value":131,"source":61,"evidence":132},"Add recording and layering of snippets",[133,137],{"id":134,"by":135,"text":136},"42513564","ldenoue","This thing is amazing can you add recording? Perhaps some samples you or visitors create? Then add a little sampler for beat and it’s a fantastic tool",{"id":138,"by":139,"text":140},"42520345","joshuaheard","This is awesome! It would be great if you could record a snippet then layer your recordings.",{"value":142,"source":61,"evidence":143},"Add help text or a tutorial",[144,145],{"id":107,"by":108,"text":109},{"id":126,"by":127,"text":128},{"value":147,"source":61,"evidence":148},"Wider range option",[149],{"id":92,"by":93,"text":94},{"value":151,"source":61,"evidence":152},"Multi-touch support",[153,154],{"id":84,"by":85,"text":86},{"id":99,"by":100,"text":101},[156,160],{"value":157,"source":61,"evidence":158},"How does the automatic harmony work",[159],{"id":126,"by":127,"text":128},{"value":161,"source":61,"evidence":162},"Can multiple fingers produce multiple voices",[163],{"id":84,"by":85,"text":86},[165,176],{"value":166,"source":61,"evidence":167},"Pink Trombone",[168,172,175],{"id":169,"by":170,"text":171},"42513569","_nivlac_","I've also enjoyed Google's blob opera, for something similar! https:\u002F\u002Fartsandculture.google.com\u002Fexperiment\u002Fblob-opera\u002FAAHWrq360NcGbw?hl=en&cp=e30",{"id":173,"by":85,"text":174},"42515456","Also pink trombone https:\u002F\u002Fdood.al\u002Fpinktrombone\u002F",{"id":84,"by":85,"text":86},{"value":177,"source":61,"evidence":178},"Google Blob Opera",[179,180],{"id":169,"by":170,"text":171},{"id":84,"by":85,"text":86},{"comments":182,"answered":34,"key":183},4,[184,185,188],{"id":53,"text":54},{"id":186,"text":187},"42519444","Greetings, What a beautiful idea. Sadly, I do not think I currently have the skills required to build such a tool. The underlying algorithms and vocal models I'm using here are…",{"id":189,"text":190},"42517028","Thanks, I'll look into it",{"commenters":192,"max_depth":182,"maker_replies":182,"first_comment_mins":193,"lifespan_hours":194},25,100,30,[196,198,201,204,207,211,213,214,217,220,222,226,227,230,234,237,238,240,243,246,248,250,252,255,258,261,264,266,267,269,273,275,277,279],[169,33,33,197,170,33],"other\u002Fneutral\u002Fnone",[199,33,33,197,200,33],"42513623","modeless",[202,33,33,197,203,33],"42515245","jcmeyrignac",[205,33,33,197,206,33],"42513953","Bluestein",[208,33,33,209,210,33],"42514001","commenter\u002Fneutral\u002Fnone","chpatrick",[212,33,33,209,206,33],"42517474",[173,33,33,197,85,33],[215,33,33,197,216,33],"42516832","bravura",[218,33,33,197,219,33],"42517009","whilenot-dev",[53,39,33,221,11,39],"project\u002Fneutral\u002Fexecution",[223,39,43,224,225,33],"42519240","maker\u002Fneutral\u002Fidea","atech4826",[186,39,33,224,11,39],[228,39,43,229,225,33],"42521266","maker\u002Fneutral\u002Fnone",[231,34,43,232,233,33],"42514515","project\u002Fneutral\u002Fdesign","butz",[235,34,33,209,236,33],"42516666","skykooler",[189,34,33,229,11,39],[107,43,39,239,108,33],"project\u002Fcritical\u002Fexecution",[241,43,33,242,11,39],"42517027","project\u002Fneutral\u002Fdocs",[244,43,44,245,108,33],"42520317","project\u002Fpositive\u002Fdocs",[84,182,44,247,85,33],"project\u002Fpositive\u002Fexecution",[64,44,43,249,65,33],"project\u002Fneutral\u002Fnone",[92,32,44,251,93,33],"project\u002Fpositive\u002Fdesign",[253,32,44,254,93,33],"42513891","project\u002Fpositive\u002Fnone",[115,256,39,257,116,33],7,"project\u002Fcritical\u002Fdesign",[134,259,44,260,135,33],8,"project\u002Fpositive\u002Fidea",[262,31,33,197,263,33],"42516580","vunderba",[99,265,44,254,100,33],10,[119,18,43,221,120,33],[138,268,44,260,139,33],12,[270,271,33,197,272,33],"42514644",13,"MarkusWandel",[274,271,33,197,263,33],"42516571",[88,276,44,251,89,33],14,[126,278,43,242,127,33],15,[280,281,44,254,282,33],"42513713",16,"blaufast",[284,287],{"id":285,"t":286,"points":43,"comments":39},"41152848",1722771306,{"id":4,"t":12,"points":14,"comments":15},[289,294,299,304,308,312],{"id":290,"name":291,"points":292,"category":293},"42565821","API Parrot",456,"dev_tools",{"id":295,"name":296,"points":297,"category":298},"42559744","trading.snagra.com",270,"ai",{"id":300,"name":301,"points":302,"category":303},"42534931","Anki AI Utils",253,"learning_science",{"id":305,"name":306,"points":307,"category":298},"42524848","DoodleDreams",242,{"id":309,"name":310,"points":311,"category":293},"42521769","GitDiagram",222,{"id":313,"name":314,"points":315,"category":316},"42521773","dutch_vocabulary",157,"languages",false,"v2",{"id":320,"name":5,"line":6,"ai":317,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":321,"top":18,"kw":322,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":323,"url":9,"mix":324,"praise":81,"objection":104,"sub":21},42513276,0.33,[21,24,25,26,27],"0000000000303300105535515053500535",[31,32,33,34],1794036666325]