[{"data":1,"prerenderedAt":373},["ShallowReactive",2],{"project-12762611":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":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":42,"post_text":44,"what":45,"said":77,"maker_in_thread":152,"shape":164,"grid":169,"attempts":334,"same_week":335,"maker_shows":166,"maker_hidden":365,"reader_version":366,"card":367},"12762611","Quiet","TCP over sound on Android","title","Show HN: TCP over sound on Android","https:\u002F\u002Fgithub.com\u002Fquiet\u002Forg.quietmodem.Quiet","github.com","brian-armstrong",1477071316,2016,179,62,168,2264,8,"notable","languages","audio data transfer library","library",[24,25,26,27,28],"data over sound","audio modem","android","tcp over audio","libquiet","curious",0.129,{"positive":32,"neutral":33,"mixed":34,"critical":35},3,13,0,1,17,{"performance":38,"privacy":39,"idea":40,"execution":41},{"positive":34,"critical":34},{"positive":34,"critical":34},{"positive":32,"critical":35},{"positive":34,"critical":34},[32,34,34,32,32,34,34,34,34,34,34,34,34,34,32,34,34,43,43,32,34,35,32,32,34,43,34,32,34,32,32,32,34,32,34,34,34,34,34,34],5,null,{"problem":44,"audience":44,"pricing":44,"motivation":44,"time_to_build":44,"stack":46,"openness":76,"stage":76,"team_size":76},[47,54,62,66,70],{"value":48,"source":49,"evidence":50},"C","maker",[51],{"id":52,"by":11,"text":53},"12767112","Well, the JNI means you get to run native code. For something like this, I think that's actually a requisite. My reasoning would be a) This is real-time and could potentially be…",{"value":55,"source":56,"evidence":57},"Java","inferred",[58],{"id":59,"by":60,"text":61},"12767069","ryanlm","Interesting use of the JNI. Why did you need to use JNI?",{"value":63,"source":49,"evidence":64},"liquid dsp",[65],{"id":52,"by":11,"text":53},{"value":67,"source":49,"evidence":68},"OpenSL",[69],{"id":52,"by":11,"text":53},{"value":71,"source":49,"evidence":72},"JavaScript (quiet.js)",[73],{"id":74,"by":11,"text":75},"12766571","In general, I think you are definitely right about this. Sound does have some potentially interesting applications. For example, if you had an exhibit that you wanted guests to…","unknown",{"praise":78,"objections":91,"requests":103,"questions":115,"alternatives":137},[79],{"value":80,"source":81,"evidence":82},"Concept of data over sound is appealing","commenter",[83,87],{"id":84,"by":85,"text":86},"12763221","theprotocol","I don't have much to say other than I love the concept of doing something like this.",{"id":88,"by":89,"text":90},"12765554","jewel","This would be great for cross platform zero-config party games. A lot of game genres can get by with surprisingly little bandwidth. Although for a noisy environment like a party…",[92,99],{"value":93,"source":81,"evidence":94},"Raw throughput of about 7kbps is slow for TCP",[95],{"id":96,"by":97,"text":98},"12765315","steventhedev","Seems like this would benefit from not using standard TCP (which assumes that a dropped packet is always due to congestion), and maybe use one of the WiFi retransmission…",{"value":100,"source":81,"evidence":101},"Standard TCP misreads loss as congestion over audio links",[102],{"id":96,"by":97,"text":98},[104],{"value":105,"source":81,"evidence":106},"Use a retransmission protocol such as V.42, xmodem or zmodem",[107,111],{"id":108,"by":109,"text":110},"12765919","noselasd","Presumably the old V.42 protocol used for modems would be quite suitable for this - it does re-transmissions.",{"id":112,"by":113,"text":114},"12766232","emmelaich","Yes, or perhaps xmodem or zmodem.",[116,123,130],{"value":117,"source":81,"evidence":118},"How does packet loss change with background noise?",[119],{"id":120,"by":121,"text":122},"12770771","anindha","Is the packet loss the same when there is background noise?",{"value":124,"source":81,"evidence":125},"Does it handle collisions with multiple transmitters?",[126],{"id":127,"by":128,"text":129},"12768585","amelius","Does it also solve collision problems, when there is more than one transmitter?",{"value":131,"source":81,"evidence":132},"Would it run on a microcontroller like ESP8266?",[133],{"id":134,"by":135,"text":136},"12765404","zokier","Would it be feasible to implement this on a microcontroller, lets say medium sized Cortex-M or ESP8266? Would be useful in IoT, especially for initial setup phase.",[138,145],{"value":139,"source":81,"evidence":140},"Chirp",[141],{"id":142,"by":143,"text":144},"12765297","joshumax","For anyone interested, there is an app called Chirp by Animal systems that attempted to make data transfer over audio a relevant form of communication. It actually works quite…",{"value":146,"source":81,"evidence":147},"Amazon Dash button audio pairing",[148],{"id":149,"by":150,"text":151},"12768300","madeofpalk","I believe this is how the Amazon Dash buttons receive wifi network details from your phone.",{"comments":153,"answered":43,"key":154},9,[155,158,161],{"id":156,"text":157},"12765911","Maybe - in my experience with this, when the devices are within a foot or so, there really isn't much packet loss, maybe as low as 10^-6 or so. But I haven't really explored…",{"id":159,"text":160},"12765741","That's a neat idea. You could imagine doing this in DTMF. The fridge could even place the call!",{"id":162,"text":163},"12768106","If there's anything that Chirp does that you feel is missing from Quiet, please let me know. I'd love to expand the feature set and make it more useful.",{"commenters":165,"max_depth":166,"maker_replies":153,"first_comment_mins":167,"lifespan_hours":168},48,4,56,55,[170,172,176,179,182,183,185,186,187,190,193,197,199,202,205,208,211,212,214,217,219,222,224,228,231,234,237,239,242,243,245,249,251,255,256,258,260,264,268,272,273,276,279,280,283,287,289,292,296,299,301,303,305,309,312,315,318,321,323,326,329,331],[96,34,32,171,97,34],"project\u002Fneutral\u002Fperformance",[173,34,34,174,175,34],"12765425","commenter\u002Fneutral\u002Fnone","0xdeadbeefbabe",[177,34,34,174,178,34],"12766648","krallja",[180,34,34,174,181,34],"12765586","Cyph0n",[156,34,34,171,11,35],[120,34,32,184,121,34],"maker\u002Fneutral\u002Fperformance",[108,34,32,171,109,34],[112,34,34,174,113,34],[188,34,34,174,189,34],"12767322","kyberias",[191,34,34,174,192,34],"12768588","aexaey",[194,35,34,195,196,34],"12765508","other\u002Fneutral\u002Fnone","emcrazyone",[159,35,34,198,11,35],"other\u002Fneutral\u002Fidea",[200,35,34,195,201,34],"12767773","ex3ndr",[203,35,34,195,204,34],"12767543","kranner",[206,35,34,198,207,34],"12767758","milankragujevic",[209,35,34,195,210,34],"12768025","cuu508",[149,35,34,195,150,34],[142,213,34,195,143,34],2,[215,213,34,195,216,34],"12767757","moreati",[162,213,34,218,11,35],"project\u002Fneutral\u002Fidea",[220,213,34,174,221,34],"12771073","john_reel",[223,213,34,174,143,34],"12771738",[225,32,32,226,227,34],"12765092","project\u002Fneutral\u002Fprivacy","advisedwang",[229,32,34,195,230,34],"12767438","CompuHacker",[232,32,34,195,233,34],"12768150","nly",[235,32,34,195,236,34],"12768853","jmiserez",[88,166,43,238,89,34],"project\u002Fpositive\u002Fidea",[240,166,43,238,241,34],"12768066","Jyaif",[134,43,32,171,135,34],[244,43,34,171,11,35],"12765730",[246,43,32,247,248,34],"12767542","project\u002Fneutral\u002Fexecution","mschuster91",[250,43,34,247,11,35],"12767596",[252,43,35,253,254,34],"12766506","project\u002Fcritical\u002Fidea","revelation",[74,43,34,218,11,35],[257,43,32,218,135,34],"12767711",[259,43,34,195,150,34],"12768307",[261,43,32,262,263,34],"12768541","project\u002Fneutral\u002Fnone","eveningcoffee",[265,266,34,195,267,34],"12768781",6,"maxaf",[269,270,34,195,271,34],"12767002",7,"droopybuns",[84,18,43,238,85,34],[274,153,34,195,275,34],"12769089","jrz53",[59,277,32,278,60,34],10,"maker\u002Fneutral\u002Fexecution",[52,277,34,247,11,35],[281,277,34,174,282,34],"12768068","kuschku",[284,285,32,171,286,34],"12765122",11,"GroSacASacs",[288,285,34,171,11,35],"12765154",[290,285,32,171,291,34],"12766693","esaym",[293,294,34,195,295,34],"12776162",12,"larvyde",[297,33,32,278,298,34],"12767925","mbrock",[300,33,34,247,11,35],"12767962",[302,33,34,174,298,34],"12768165",[127,304,32,171,128,34],14,[306,307,34,198,308,34],"12766013",15,"thirdreplicator",[310,307,34,195,311,34],"12766331","j4_james",[313,307,34,195,314,34],"12766491","pacaro",[316,307,34,195,317,34],"12767930","mSparks",[319,307,34,195,320,34],"12768730","tonyedgecombe",[322,307,34,195,178,34],"12766612",[324,307,34,195,325,34],"12767338","kalleboo",[327,307,34,195,328,34],"12767345","niftich",[330,307,34,198,216,34],"12767763",[332,307,34,198,333,34],"12768250","infodroid",[],[336,341,346,351,356,360],{"id":337,"name":338,"points":339,"category":340},"12786935","LiquidTime",301,"productivity",{"id":342,"name":343,"points":344,"category":345},"12782881","Simple Highway Simulator",219,"learning_science",{"id":347,"name":348,"points":349,"category":350},"12752125","hnlive.tk",109,"data",{"id":352,"name":353,"points":354,"category":355},"12751595","Nuage",79,"web_saas",{"id":357,"name":358,"points":359,"category":345},"12795711","Modular JavaScript",73,{"id":361,"name":362,"points":363,"category":364},"12780220","Mediachain Attribution Engine",64,"ai",false,"v2",{"id":368,"name":5,"line":6,"ai":365,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":369,"top":18,"kw":370,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":371,"url":9,"mix":372,"praise":80,"objection":93,"sub":21},12762611,0.13,[24,25,26,27,28],"3003300000000030055301330503033303000000",[32,33,34,35],1794036548768]