00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:08  * ircretaryjoined
00:06:02  * jibayquit (Remote host closed the connection)
00:12:29  * vitorpachecojoined
00:14:53  * ralphtheninjaquit (Ping timeout: 240 seconds)
00:16:31  * ednapiranhaquit (Remote host closed the connection)
00:17:13  * dominictarrjoined
00:27:06  * no9quit (Ping timeout: 264 seconds)
00:36:49  <mikolalysenko>I need a good name for an autotune clone...
00:43:41  <tim_smart>For those who like to tinker https://groups.google.com/forum/#!topic/nodejs/IfKE2uCj1-k
00:43:49  * AvianFluquit (Read error: Connection reset by peer)
00:44:02  <tim_smart>Probably attempted by someone before, so pointers would be nice too :)
00:44:26  * AvianFlujoined
00:44:26  * AvianFluquit (Remote host closed the connection)
00:45:00  * AvianFlujoined
00:46:20  * thl0joined
00:48:40  * timoxleyjoined
00:49:22  <mbalho>mikolalysenko: tune.js
00:52:34  <mikolalysenko>mbalho: could work. I need to think about it a bit
00:52:58  * st_lukequit (Remote host closed the connection)
00:55:58  <mikolalysenko>ok, dinner time
00:57:37  * jxsonquit (Ping timeout: 246 seconds)
01:00:27  * mikolalysenkoquit (Ping timeout: 252 seconds)
01:01:18  * dguttmanquit (Quit: dguttman)
01:09:20  * fallsemojoined
01:20:34  * jxsonjoined
01:23:03  * mikolalysenkojoined
01:24:42  * defunctzombie_zzchanged nick to defunctzombie
01:25:03  * dominictarrquit (Quit: dominictarr)
01:55:57  * tilgoviquit (Read error: Connection reset by peer)
02:01:32  * whit537quit (Read error: Connection reset by peer)
02:01:33  * whit537_joined
02:04:09  * whit537joined
02:05:50  * whit537_quit (Ping timeout: 240 seconds)
02:31:11  * jxsonquit (Ping timeout: 252 seconds)
02:56:11  * defunctzombiechanged nick to defunctzombie_zz
03:02:51  * whit537quit (Quit: whit537)
03:24:40  * thl0quit (Remote host closed the connection)
03:24:46  * dguttmanjoined
03:37:15  * AvianFluquit (Read error: Connection reset by peer)
03:38:00  * AvianFlujoined
03:39:13  * dguttmanquit (Quit: dguttman)
04:06:04  * defunctzombie_zzchanged nick to defunctzombie
04:08:13  * Ikeymanjoined
04:13:33  * dguttmanjoined
04:15:55  * defunctzombiechanged nick to defunctzombie_zz
04:30:53  * dguttmanquit (Ping timeout: 240 seconds)
04:46:15  * nicholasfjoined
04:50:23  * nicholasfquit (Ping timeout: 240 seconds)
05:05:29  * saijanai_joined
05:22:00  <mbalho>substack: in the stream adventure setup.js files are the verify arguments passed in?
05:36:43  <substack>yes
05:37:18  <substack>mbalho: look at meet_pipe/setup.js
05:37:36  <substack>oh wait, "verify arguments"
05:37:52  <substack>only "a" and "b" which are special streams to override the verification steps
05:37:59  <substack>look at the http_server example for how that works
05:38:11  <mbalho>substack: i meant the other way, e.g. passing in argv to https://github.com/substack/stream-adventure/blob/master/bin/cmd.js#L19
05:38:18  <mbalho>substack: i dont think you checked that one in yet
05:40:44  <mbalho>substack: is there supposed to be a http_server folder in https://github.com/substack/stream-adventure/tree/master/problems ?
05:41:25  * jcrugzzquit (Ping timeout: 276 seconds)
05:43:37  <substack>yes
05:44:27  <mbalho>substack: when a person types 'stream-adventure verify foo.js' i need to pass 'foo.js' into my setup function
05:45:12  <substack>ok published
05:45:22  <substack>look now
05:45:44  <Ikeyman>http://www.youtube.com/watch?v=99EkMu6K_yw
05:45:47  <Ikeyman>enjoy :)
05:49:09  <py1hon_>substack!
05:49:14  * py1hon_changed nick to py1hon
05:49:33  <mbalho>Ikeyman: that song made me dance IRL
05:51:16  <Ikeyman>irl?
05:51:24  <substack>py1hon: ahoy!
05:51:26  <Ikeyman>in the real life?
05:51:35  <py1hon>substack: I gave notice at google today :)
05:52:15  <substack>still planning on doing bcache things with other folk?
05:52:51  <py1hon>even better, distributed storage (built on top of bcache actually)
05:54:22  <substack>nice!
05:54:50  <mbalho>substack: oh nvm i can still get process.argv from setup.js cause process is global lolz
05:55:15  * ralphtheninjajoined
05:55:58  <py1hon>substack: I know low level storage has very little to do with what you find interesting but we should probs. hang out more once i'm officially in the startup scene :)
05:56:11  * jxsonjoined
05:56:17  <mbalho>py1hon: you should advise ##leveldb
05:56:25  <mbalho>py1hon: (if that is interesting to you at all)
05:56:33  <mbalho>py1hon: half of the peeps in that channel are in this channel too
05:56:39  <py1hon>psh, leveldb. if i cared enough to port bcache's btree to userspace it'd be faster :)
05:57:13  <mbalho>py1hon: exactly! in node there is an abstract api for range queries and batch writes, alternate backends are encouraged
05:57:37  <mikolalysenko>question: are there any simple streaming libraries for writing audio files?
05:57:52  <mikolalysenko>I can generate a stream of chunks with my vocoder, but need something that can read/write stuff
05:58:07  <mikolalysenko>it isn't quite real time yet, so web audio clicks too much to be listenable
05:58:12  <mbalho>mikolalysenko: maybe check with #ofmlabs
05:58:15  <mbalho>https://github.com/ofmlabs
05:58:35  <py1hon>mbalho: well, thing is i have exactly 0 free time and ripping bcache's btree code out of the kernel is kind of at the bottom of my list. but if anyone else wanted a project I'd be happy to offer guidance and help out a bit
05:58:42  <mbalho>py1hon: ah
05:59:07  <py1hon>kernel stuff keeps me way busy
05:59:19  * py1honis going to be writing real userspace code for the first time in ages and ages soon though
06:02:03  <mbalho>substack: how do i add a problem so it shows up
06:02:33  <substack>mbalho: data/order.json
06:02:40  <jesusabdullah>pbbbbbt
06:02:50  <jesusabdullah>mosquitoes here are terrible
06:03:04  <py1hon>jesusabdullah: that's what you get :)
06:03:13  <jesusabdullah>I had a cloud try to follow me inside after mowing that was so thick my sister thought I ran over a hornet's nest
06:03:22  <jesusabdullah>yeah well
06:03:26  <substack>mikolalysenko: sox can do that kind of thing
06:03:37  <mikolalysenko>substack: is there a good example somewhere?
06:04:02  <mikolalysenko>used to be you could just cat to /dev/dsp, but I have no idea how that stuff works on a mac these days
06:04:02  <substack>node vocoder.js | play -t s16 -r44k -c1 -
06:04:15  <substack>sox works on linux, mac, windows
06:04:31  <mikolalysenko>substack: cool. what if I want to save the file but not play it?
06:04:40  <substack>substitute s16 for whatever output format your vocoder packs bytes as
06:04:49  <mikolalysenko>it uses floats
06:04:50  <substack>mikolalysenko: use `sox` directly
06:05:02  * AvianFluquit (Read error: Connection reset by peer)
06:05:11  <substack>-t f32 for floats
06:05:17  <substack>-t f64 for doubles
06:06:12  <substack>node vocoder.js | sox -t f32 -r44k -c1 - outfile.mp3
06:06:44  <mikolalysenko>substack: thanks!
06:09:10  * ralphtheninjaquit (Quit: Lost terminal)
06:13:24  * timoxleyquit (Quit: Computer has gone to sleep.)
06:17:13  <mbalho>substack: hmm i need to figure out how to get the verify step to wait until the stdin stream I give it from setup emits data
06:18:25  <mbalho>substack: it has this hardcoded in there var a = spawn(process.execPath, acmd);
06:18:35  <mbalho>substack: whereas i just want to give it a stream and have it verify my stream, not run a process
06:23:59  * AvianFlujoined
06:27:53  * mikolalysenkoquit (Ping timeout: 240 seconds)
06:29:56  * jxsonquit (Remote host closed the connection)
06:30:36  * vitorpachecoquit (Ping timeout: 252 seconds)
06:31:04  <mbalho>isaacs: am i dumb or are there no git tags in joyent/node for v0.10.x
06:35:17  <xyxne>mbalho, !
06:35:25  <mbalho>xyxne: yo
06:35:27  <xyxne>where do I get the textures for voxeljs?
06:35:39  <xyxne>grass, dirt, grass_dirt, brick
06:36:05  <mbalho>xyxne: multiple options:
06:36:07  <mbalho>xyxne: https://github.com/maxogden/voxel-fly/blob/master/test.js
06:36:17  <mbalho>xyxne: https://npmjs.org/package/painterly-textures
06:36:56  <xyxne>oh great, thanks :D <3
06:37:03  <mbalho>xyxne: or some simple pngs https://github.com/maxogden/voxel-world-function/tree/master/textures
06:39:21  * shamaquit (Remote host closed the connection)
06:39:28  <xyxne>mbalho, tyvm!
06:39:33  <xyxne>mbalho, also is there a required DOM structure?
06:39:39  <xyxne>#lazyweb
06:42:27  * fallsemoquit (Quit: Leaving.)
06:43:50  * timoxleyjoined
06:49:20  * cianomaidinjoined
06:52:37  * ezkljoined
06:54:41  * cianomaidinquit (Quit: cianomaidin)
07:03:23  <xyxne>nevermind :D
07:06:47  * dominictarrjoined
07:10:19  <substack>dominictarr: when do you arrive in north america?
07:11:28  <dominictarr>20/06/2013 San Francisco(SFO) Arrival: 11:45
07:11:55  <dominictarr>KLM Royal Dutch Airlines
07:11:55  <dominictarr>Flight number: KL0605
07:14:16  <substack>soon!
07:16:31  * jibayjoined
07:17:36  * no9joined
07:17:37  <chapel>fun, you fly in the day after I fly back to spokane to finish the move down
07:19:51  <jesusabdullah>I'm sorry I thought this was AMERICA
07:19:59  <jesusabdullah>ohey chapel do you have a car? I don't remember
07:20:36  * cianomaidinjoined
07:20:59  <jesusabdullah>shit I should probably put together resources for the hangout I said I'd do XD
07:33:43  * mikolalysenkojoined
07:38:39  * mikolalysenkoquit (Ping timeout: 252 seconds)
07:40:22  * jxsonjoined
07:43:16  * cianomaidinquit (Quit: cianomaidin)
07:45:10  * jxsonquit (Ping timeout: 256 seconds)
07:50:30  * tilgovijoined
07:50:49  * djcoinjoined
08:05:05  * nicholasfjoined
08:14:28  * sveisveiquit (Ping timeout: 260 seconds)
08:14:28  * Raynosquit (Ping timeout: 260 seconds)
08:19:01  * ralphtheninjajoined
08:20:05  * ralphtheninjaquit (Client Quit)
08:21:17  * ralphtheninjajoined
08:34:43  * no9quit (Ping timeout: 264 seconds)
08:47:59  * no9joined
08:48:33  * tilgoviquit (Remote host closed the connection)
08:52:17  * Ikeymanquit (Quit: Ikeyman)
08:56:54  * cianomaidinjoined
09:04:40  <Altreus>sorry this is amurca
09:32:34  * dominictarrquit (Quit: dominictarr)
09:38:34  * ralphtheninjaquit (Quit: Lost terminal)
09:51:15  * mbalhoquit (Read error: Operation timed out)
09:53:07  * paul_irish_quit (Quit: ZNC - http://znc.sourceforge.net)
09:54:07  * paul_irishjoined
09:54:32  * mbalhojoined
09:54:58  * ins0mniajoined
10:12:13  * dominictarrjoined
10:12:51  * Raynosjoined
10:15:08  * sveisveijoined
11:02:24  * no9quit (Read error: Operation timed out)
11:03:21  * yorickjoined
11:03:24  * cianomaidinquit (Ping timeout: 260 seconds)
11:04:47  * dominictarrquit (Ping timeout: 260 seconds)
11:09:15  * timoxleyquit (Quit: Computer has gone to sleep.)
11:18:05  * no9joined
11:19:28  * thl0joined
11:20:38  * whit537joined
11:28:31  * ezklquit (Quit: Textual IRC Client: www.textualapp.com)
11:46:04  * cianomaidinjoined
11:51:34  * timoxleyjoined
11:59:16  * dominictarrjoined
12:02:36  * thl0quit (Remote host closed the connection)
12:03:59  * thl0joined
12:09:19  * thl0quit (Remote host closed the connection)
12:09:45  * thl0joined
12:49:23  * snojjoined
12:58:12  * thl0quit (Remote host closed the connection)
12:58:48  * thl0joined
13:02:17  * kevino80joined
13:02:55  * thl0_joined
13:03:03  * thl0quit (Read error: Connection reset by peer)
13:05:15  * thl0_quit (Remote host closed the connection)
13:23:15  * mikolalysenkojoined
13:27:29  * ednapiranhajoined
13:29:33  * thl0joined
13:36:09  * no9quit (Ping timeout: 252 seconds)
13:46:00  * ednapiranhaquit (Remote host closed the connection)
13:47:09  * ednapiranhajoined
13:48:00  * tmcwjoined
13:48:57  * no9joined
13:51:34  * fallsemojoined
13:52:32  <dominictarr>substack: https://github.com/substack/insert-module-globals/pull/13
13:52:39  * whit537quit (Ping timeout: 252 seconds)
14:00:25  * cianomaidinquit (Quit: cianomaidin)
14:02:43  * cianomaidinjoined
14:07:18  <substack>live nsa hearing http://www.c-span.org/Live-Video/C-SPAN3/
14:08:55  * snojquit (Ping timeout: 264 seconds)
14:14:11  * brianloveswordsquit (Excess Flood)
14:15:46  * brianloveswordsjoined
14:30:24  * dguttmanjoined
14:36:49  * no9quit (Ping timeout: 248 seconds)
14:37:56  * yorickquit (Read error: Operation timed out)
14:48:52  * no9joined
14:57:06  * whit537joined
14:57:17  * dguttmanquit (Quit: dguttman)
15:08:12  * AvianFluquit (Read error: Connection reset by peer)
15:08:48  * AvianFlujoined
15:11:31  <mikolalysenko>if this is working, then all the hard stuff involved in making an autotuner is pretty much done now: https://github.com/mikolalysenko/pitch-shift
15:11:44  <mikolalysenko>last step is adding a layer on top to do pitch correction/quantization
15:11:55  * yorickjoined
15:23:11  * kevino80quit (Remote host closed the connection)
15:23:17  <jez0990>mikolalysenko: this is nice ...and presumably everything needed to do general voice changing fx? could be pretty fun in a voxel game :)
15:23:31  <mikolalysenko>yeah!
15:23:39  <mikolalysenko>you could pretty much do whatever type of audio processing you want
15:23:56  <mikolalysenko>I did it this way since I didn't want to try making some super complicated control panel like in the real autotune
15:24:30  <mikolalysenko>it is too annoying to translate all that psuedomathematical musicology gobbledygook into stuff I understand like physics/geometry
15:24:54  <mikolalysenko>so I figured this would be a better solution, since then artistic people can figure out how they want it to sound themself and just use the technology as is
15:24:59  <dlmanning>mikolalysenko: you should do a live autotuned talk on it
15:25:06  <mikolalysenko>haha, maybe
15:25:24  <mikolalysenko>it would be tough to prevent feedback effects though
15:25:41  <dlmanning>mmm
15:26:11  <mikolalysenko>maybe if the speakers were configured carefully
15:26:17  <mikolalysenko>it would at least be worth trying
15:27:30  * tmcwquit (Remote host closed the connection)
15:28:05  * tmcwjoined
15:28:44  * tmcwquit (Read error: Connection reset by peer)
15:29:04  * tmcwjoined
15:33:59  <jesusabdullah>great news :D
15:34:38  <jesusabdullah>hahaha, how epic would that be to give a talk at a conference about implementing autotune while having yourself autotuned with said implementation the whole time
15:35:42  * jxsonjoined
15:36:07  <jesusabdullah>I'm just saying, dlmanning had at least one good idea once
15:36:26  <dlmanning>Ah, I love you too, jesusabdullah
15:37:42  <dlmanning>mikolalysenko: For my part I'm definitely using your work to produce a track of whalesong autotuned to "My Heart Will Go On"
15:42:12  * kevino80joined
15:49:39  <mikolalysenko>does anyone here know the webaudio api reasonably well? I am trying to figure out why my pause/play button doesn't work right here: http://mikolalysenko.github.io/pitch-shift/
15:49:58  <mikolalysenko>here is the file: https://github.com/mikolalysenko/pitch-shift/blob/master/example/index.js#L60
15:52:38  * no9quit (Quit: Leaving)
15:52:40  <mikolalysenko>dlmanning: also, if you do that you have to send me an mp3 of what it produces
15:53:51  <dlmanning>mikolalysenko: Oh, it's gonna happen ;)
15:55:58  * snojjoined
15:59:03  <jez0990>mikolalysenko: I should resist the urge to get too distracted, but have you seen the pause/play implemented here -> http://www.html5rocks.com/en/tutorials/webaudio/intro/js/filter-sample.js ?
16:00:13  <isaacs>mbalho: i would never call you dumb, but: https://github.com/joyent/node/commit/v0.10.11 https://github.com/joyent/node/commit/v0.10.10 etc
16:04:38  <mbalho>isaacs: hmm i wonder why this doesnt work: git checkout v0.10.11
16:04:40  <mbalho>error: pathspec 'v0.10.11' did not match any file(s) known to git.
16:09:39  * shamajoined
16:09:42  <isaacs>mbalho: git fetch -a origin
16:09:52  <isaacs>mbalho: or git fetch -a git://github.com/joyent/node
16:10:15  <isaacs>mbalho: by default, git-fetch does not fetch tags, only refs.
16:23:14  * AvianFluquit (Read error: Connection reset by peer)
16:23:51  * AvianFlujoined
16:27:16  * jcrugzzjoined
16:27:56  * jxsonquit (Remote host closed the connection)
16:29:01  <chapel>jesusabdullah: whats up?
16:30:40  <jesusabdullah>n2mu?
16:30:58  <jesusabdullah>got my paypal riggledogged to my bank account so I should be gettin' paid soon
16:31:21  <jesusabdullah>someone's draggin' their feet at walmart, still waiting for news there
16:31:35  <jesusabdullah>change.org scooted up my phone interview out like 3 weeks >_<
16:33:42  <chapel>that last sentence contradicts itself
16:33:49  <chapel>scooted up vs out
16:34:07  <chapel>you asked about me having a car?
16:36:37  <jesusabdullah>oh yeah
16:36:44  <jesusabdullah>I probably asked you about this before
16:36:54  <jesusabdullah>I'm trying to rethink my storage unit strategy after marak fucked it all up
16:37:12  <jesusabdullah>was wondering how plausible it would be for me to get you slightly involved
16:37:32  <jesusabdullah>so I don't have to try FOAFing it again
16:37:39  <chapel>foaf?
16:37:43  <jesusabdullah>friend of a friend
16:37:47  <chapel>ah
16:37:51  <jesusabdullah>thing is
16:37:52  * kevino80quit (Remote host closed the connection)
16:37:54  <chapel>want to take it to pm?
16:37:59  <jesusabdullah>sure
16:41:24  <mikolalysenko>oh god. I just ran the gettyburg address through this and created a satanic lincoln...
16:46:31  <dlmanning>http://www.lsa.umich.edu/UMICH/lsa/Home/LSA%20Today/2012/images/satanicabe.jpg
16:48:49  * timoxleyquit (Quit: Computer has gone to sleep.)
16:52:25  * kevino80joined
16:53:52  <mbalho>mikolalysenko: hahaha
17:29:52  <mikolalysenko>ok, I tossed it on npm. seems to be working well enough for now
17:30:47  <jcrugzz>mikolalysenko: link?
17:30:53  <mikolalysenko>http://mikolalysenko.github.io/pitch-shift/
17:31:02  <mikolalysenko>and here is the github link: https://github.com/mikolalysenko/pitch-shift
17:31:16  <mikolalysenko>you can just install it using npm install pitch-shift
17:31:59  <mikolalysenko>I also twittered it
17:32:51  * thl0joined
17:33:46  <jcrugzz>cool thanks :).
17:34:30  <mikolalysenko>to make an autotune with this you would basically rescale the pitch to be some integer multiple of a base frequency
17:34:38  <mikolalysenko>so just call math.round and multiply basically
17:35:27  <mikolalysenko>I will probably make one later but for now I have to get back to work on other stuff
17:36:13  <jcrugzz>understandable
17:37:27  * calvinfoquit (Ping timeout: 245 seconds)
17:45:34  * thl0_joined
17:45:34  * thl0quit (Read error: Connection reset by peer)
17:46:16  <jjjohnny>mikolalysenko: awesome!
17:49:16  * calvinfojoined
17:51:05  <jjjohnny>mikolalysenko: how do you set the pitch change value?
17:52:43  <mbalho>lol @ lincoln
17:54:17  * mikealjoined
17:54:41  <mbalho>jjjohnny: whats ur tweeters again
17:54:42  * Baribaljoined
17:55:05  * dguttmanjoined
17:56:41  <Baribal>Hi. I was searching for channels with "kvm" in the name nd stumbled over this one. What did I get myself into?
17:56:58  <mbalho>node.js hacker back channel
17:57:09  <Baribal>I mean, so far I haven't done madder science than cloning, and I'm dabbling in AI research.
17:57:24  <mbalho>cloning is pretty mad!
17:58:04  <Baribal>Well, it's the only way to preserve superior specimen while still enjoying them.
17:58:30  <mikolalysenko>jjjohnny: you write a callback
17:58:38  <mikolalysenko>the callback takes two parameters, t and pitch
17:58:47  <mikolalysenko>then you return the pitch scale from the callback
17:59:48  <jjjohnny>pitch scale in what?
17:59:56  <mikolalysenko>jjjohnny: so 1.0 is normal speed, 0.5 is half speed, 2.0 is double speed
18:00:03  <jjjohnny>ah ha
18:00:07  <mikolalysenko>it is in dimensionless parameters
18:00:15  <mikolalysenko>the inputs though are in seconds and hertz
18:01:10  <mikolalysenko>it should work with streaming audio, inluding microphone input
18:01:23  <mikolalysenko>I didn't use streams since the webaudio api doesn't really work well with that concept
18:01:38  <mikolalysenko>but I will probably make a webaudio/streaming specific wrapper for the library to simplify stuff
18:03:22  <jcrugzz>mikolalysenko: yea how is the webaudio api, i played with it a little bit but it didnt seem too friendly?
18:03:23  <mikolalysenko>jjjohnny: the default parameters should be good for 1channel 44.1khz audio streams
18:03:41  <mikolalysenko>jcrugzz: it is reasonable, but I think there is room for improvement
18:03:55  <mikolalysenko>had some issue where I couldn't restart my audio sources without just recreating them...
18:04:10  <jjjohnny>what sources?
18:04:21  <mikolalysenko>jjjohnny: I had an oscillator and some buffer sources
18:04:25  <jjjohnny>also in the wbe audio api you can't control sampleRate.
18:04:31  <jjjohnny>does this work with any sampleRate?
18:04:31  <mikolalysenko>jjjohnny: yeah, I know
18:04:36  <mikolalysenko>yeah
18:04:44  <mikolalysenko>but you have to specify it in the constructor
18:05:01  <mikolalysenko>there is an option you pass called "sampleRate"
18:05:13  <mikolalysenko>though for this demo it would make no difference
18:06:51  <mikolalysenko>the only thing it gets used for is the unit conversion for the pitch parameter in onTune
18:07:06  <jjjohnny>mikolalysenko: AudioBufferSourceNode's use node.start(when, offset, how_long)
18:07:23  <mikolalysenko>yeah, this is implemented as a filter and I loop all my samples
18:07:26  <jjjohnny>so you can go back to the beginning with node.start(0, 0)
18:07:37  <mikolalysenko>jjjohnny: I tried that, but it didn't work
18:07:46  <Baribal>Are you doing realtime sound processing? VoIP? A synthesizer?
18:07:49  <jjjohnny>I think its new
18:08:01  <jjjohnny>Baribal: 1 and 3
18:08:06  <mikolalysenko>Baribal: I just made this like a few minutes ago:
18:08:06  <mikolalysenko>13:00 < jjjohnny> ah ha
18:08:13  <mikolalysenko>err middle click..
18:08:17  <mikolalysenko>http://mikolalysenko.github.io/pitch-shift/
18:08:18  <mikolalysenko>there
18:08:40  * calvinfoquit (Ping timeout: 256 seconds)
18:09:14  <mikolalysenko>it takes a few seconds for it to load all the samples so be patient
18:09:18  <Baribal>I assume that the big red bar reading "Requires WebAudio! " means I don't have it? ^^
18:09:28  <mikolalysenko>Baribal: yeah, probably
18:09:35  <mbalho>Baribal: try it in google chrome
18:10:15  <mikolalysenko>obviously audio processing in js will not be possible if you do not have a browser that is webaudio capable
18:10:26  <mikolalysenko>chromium/chrome and latest releases of firefox should work
18:10:35  <mikolalysenko>ie/safari/etc... not so much
18:10:47  <Baribal>Chrome and Safari only: http://caniuse.com/audio-api
18:10:49  <mikolalysenko>http://caniuse.com/audio-api
18:11:01  <mikolalysenko>well, firefox nightly has it
18:12:07  * calvinfojoined
18:12:28  <Baribal>Reminds me of when I tried writing a synthesizer in Python, though. As I wasn't using numpy (and was using a rather academic class structure), computation speed fell below realtime pretty soon.
18:13:32  <mikolalysenko>Baribal: there is probably lots of room for optimization. the fft code I'm using is not yet highly optimized
18:14:03  <mikolalysenko>though there are plenty of synthesizer projects in js
18:14:26  <mikolalysenko>and they run pretty well in the browser (assuming you have webaudio)
18:14:59  <Baribal>I wasn't even doing calculation in frequency space, my oscillators spat out raw amplitudes which where then mangled in amplitude space, too. :)
18:15:26  * dominictarrquit (Quit: dominictarr)
18:16:04  * jibayquit (Ping timeout: 276 seconds)
18:16:09  <jjjohnny>mikolalysenko: I think the way to restart a source node is to create a new one, but recycle the buffer
18:16:21  <jjjohnny>you shouldnt have to recreate the buffer tho
18:16:23  <mikolalysenko>jjjohnny: that's what I ended up doing. it seemed stupid though
18:16:28  <jjjohnny>yeah
18:17:20  <jjjohnny>especially since you can just read the buffer yourself and create a more better source node out of a processing one
18:17:51  <mikolalysenko>I think it is so that it can stream while it decompresses audio files, which makes sense for performance reasons
18:18:03  <mikolalysenko>but recreating the sourcenode is just silly
18:18:10  <mikolalysenko>you should be able to reset them
18:18:24  <jjjohnny>mikolalysenko: i'm planning to do most of my work in processing nodes, b/c w/e implementation the API uses for things like filters and FX are just going to be their one way, out of inifite possibilities
18:18:54  <jjjohnny>its like if we all played the same yamaha keyboard synth :p
18:19:10  <jjjohnny>buffer source nodes are not fx or filters tho
18:19:14  <mikolalysenko>jjjohnny: well, a linear filter is a linear filter and (one would think) that whatever implementation is in chrome it would be pretty fast...
18:19:28  <mikolalysenko>but yeah, I think the whole web audio thing is crazy complicated
18:19:36  <mikolalysenko>it should be something like the canvas pixel interface
18:19:43  <mikolalysenko>you give it a blob of bytes and it spits out some sound
18:19:44  <mikolalysenko>done
18:19:53  <mikolalysenko>throw in streaming parser for a few file types and you are golden
18:19:55  <jjjohnny>well thats the processing node
18:20:04  <mikolalysenko>yeah, but why have all the other crap?
18:20:27  <jjjohnny>b/c they man childs of google et al want to have they fun?
18:20:39  <mikolalysenko>haha, that's one theory
18:20:50  <mbalho>lol
18:20:56  <jjjohnny>they didnt trust js scripting would work
18:21:29  <mikolalysenko>in a way, it kind of makes some sense
18:21:48  <mikolalysenko>as js doesn't have proper threads it is one of the few ways to get truly async audio processing
18:22:13  * LOUDBOTquit (*.net *.split)
18:22:13  * simcop2387quit (*.net *.split)
18:22:14  <mikolalysenko>so for just playing back sounds and stuff with precanned filters I can see web audio working
18:22:24  <mikolalysenko>especially for stuff like videogames and so on
18:22:44  <mikolalysenko>but for real audio processing/synthesis it is a ridiculous system
18:22:46  * shuaibjoined
18:23:08  <mikolalysenko>what they could've also done was created a worker interface for webaudio that way you could still meet the realtime constraints
18:23:48  <jjjohnny>yeah that would have been a good idea
18:24:06  <mikolalysenko>ah well, sometimes these things are only obvious in hindsight
18:25:22  <jjjohnny>i hope asm.js catches on
18:25:48  <mikolalysenko>jjjohnny: I have mixed feelings about it. I think the basic concept is sound, but the implementation has serious problems
18:26:03  <mikolalysenko>like it would be very difficult to get asm.js to play nice with npm
18:26:11  <mikolalysenko>or any module system for that matter
18:26:18  <jjjohnny>its no different than "use strict"
18:26:25  <mikolalysenko>no, it is very different
18:26:27  <jjjohnny>and asm code is just plain javascript
18:26:40  <jjjohnny>so it doesn't matter if your runtime supprts asm
18:26:47  <mikolalysenko>at that superficial level, yes
18:26:52  * simcop2387joined
18:27:01  <mikolalysenko>but asm.js encourages a type of coding style that is incompatible with modular programming
18:27:28  <mikolalysenko>also even though it is still ordinary js, interpreters that don't properly support it probably won't be able to run asm.js anyway
18:27:31  * cianomaidinquit (Quit: cianomaidin)
18:27:48  <mikolalysenko>since the problem is that you need to allocate a big heap up front for each of your asm.js modules
18:27:58  <jjjohnny>mikolalysenko: i dont think you include asm.js itself in your code
18:28:12  <mikolalysenko>asm.js as a compile target makes sense
18:28:19  <mikolalysenko>but asm.js as part of npm doesn't work
18:28:21  <jjjohnny>you write "use asm.js" and if the runtime supports it, it optimizes your code
18:28:26  <mikolalysenko>no
18:28:34  * jcrugzz_joined
18:28:35  * jcrugzzquit (Read error: Connection reset by peer)
18:28:37  <mikolalysenko>asm.js requires you to write specially optimized code
18:28:48  <mikolalysenko>or else it won't do anything except slow down parsing on systems that support it
18:28:55  <jjjohnny>yes, but you don't actually include asm.js source in your source
18:29:05  <mikolalysenko>your module has to follow a very specific protocol regarding how it accesses memory and what variables/functions it uses
18:29:23  <jjjohnny>and the code you write, in terms of optimization, is good for non asm compatible runtimes
18:29:51  <mikolalysenko>jjjohnny: well you *could* but obviously you wouldn't want to. and I disagree that writing asm.js code is going to improve performance on non-asm.js systems
18:29:57  <jjjohnny>V8 optimizes your code when it can already
18:30:12  <mikolalysenko>in fact I can think of several situations where a non-asm.js routine would slow stuff down
18:30:18  <jjjohnny>and that is based in part on static types
18:30:25  <mikolalysenko>err I mean an asm.js routine in non-asm.js environments
18:30:33  <jjjohnny>why, its just functions
18:30:36  <mikolalysenko>but asm.js is more than just a typing system
18:30:44  <mikolalysenko>it is also a special way to access heap memory
18:30:57  <mikolalysenko>each asm.js block has be wrapped in a special environment
18:31:03  <jjjohnny>and if you seprate your pure math function from your functions with loops in them, V8 is gonna optimize that code on the fly, dynamically
18:31:15  <jjjohnny>nothing special about it
18:31:36  <mikolalysenko>which is a closure that takes 3 arguments: stdlib, foreign and heap
18:31:52  <mikolalysenko>stdlib is basically only math and a few other things
18:32:10  <mikolalysenko>foreign is an object that has functions in it that satisfy some constraints on their signatures
18:32:21  <mikolalysenko>(like no variable arguments, no object arguments, no strings, etc.)
18:32:40  <mikolalysenko>and heap which is the (tough one) is a gigantic preallocated typed array for the working memory of your asm.js module
18:32:57  <mikolalysenko>you can not create local variables in the module scope other than function declarations
18:33:03  <mikolalysenko>all access to memory must go through the heap
18:33:11  <mikolalysenko>so if you get the size wrong it will screw up
18:33:12  * defunctzombie_zzchanged nick to defunctzombie
18:33:19  * jcrugzz_changed nick to jcrugzz
18:33:22  <mikolalysenko>also creating/initializing an asm.js context is really expensive
18:33:36  <jjjohnny>mikolalysenko: watch this https://developers.google.com/events/io/sessions/324908972
18:33:37  <mikolalysenko>so you probably don't want to have more than 1 of them in your program at any time
18:34:04  <mikolalysenko>yeah, I know all that stuff
18:34:39  <jjjohnny>sounds like a pain, sure, but then you can run blazing awesome code in js
18:34:42  <mikolalysenko>but asm.js is not necessarily faster. for example if you have to process objects or something you would probably slow your code down if you put it in asm.js
18:35:09  <mikolalysenko>jjjohnny: right. that is why I said it makes sense as a compile target, but my criticism is that it doesn't work so well in the node/npm world of modules
18:35:28  <mikolalysenko>asm.js is very anti-modular, and that may be fine
18:35:43  <mikolalysenko>I think it does open up a lot of possibilities for browsers as a compile target for other languages
18:35:53  <mikolalysenko>but it is not likely to help existing javascript programs much
18:36:24  <jjjohnny>no, but if you are already writing clean math functions, it probably won't cost much work to make them asm compatible.
18:36:30  <jjjohnny>ONLY TIME WILL TELL
18:36:57  <jjjohnny>migt even be able to wrap it somehow, like with web workers
18:37:04  <mikolalysenko>jjjohnny: it might help for simple stuff that doesn't use memory
18:37:20  <mikolalysenko>but even if you are already writing fast math code with typed arrays asm.js will be no use to you
18:37:33  <mikolalysenko>since you would have to copy your typed arrays into the heap of whatever asm.js module you were calling into
18:37:39  <jjjohnny>mikolalysenko: your ffts use a pre-allocated buffer!
18:37:50  <jjjohnny>its not that hard to pre allocate
18:37:54  <mikolalysenko>yeah, but it would be different from the one in asm.js
18:38:08  <mikolalysenko>and I don't preallocate it actually I use typedarray-pool to reuse them
18:38:18  * AvianFlujoined
18:38:20  <mikolalysenko>which gives better cache performance reduces overall system memory usage
18:38:51  <mikolalysenko>I mean if asm.js does become a thing I will definitely look hard at trying to use it
18:39:04  <jjjohnny>using a pool in the wild and reusing the same buffer in a closed block is the same
18:39:05  <mikolalysenko>but right now I am slightly dreading it a bit since it is going to be nasty if it continues on its current path
18:39:14  <mikolalysenko>jjjohnny: but other modules can reuse the same pool
18:39:26  <jjjohnny>exactly
18:39:32  <mikolalysenko>but that won't work in asm.js
18:39:38  <jjjohnny>nope
18:39:42  <mikolalysenko>each asm.js module gets its own heap
18:39:45  <jjjohnny>but functionally, it is the same idea
18:39:50  <jjjohnny>reusing a buffer
18:39:55  <mikolalysenko>yeah, but the details are where it gets ugly
18:40:20  <mikolalysenko>the separate heap for each asm.js module is where it gets bad. and passing in data from outside typed arrays is similarly nasty
18:40:27  <jjjohnny>maybe we can influence the influencers
18:40:40  <mikolalysenko>since you have to copy whatever you have to asm.js and back out each time you call it
18:40:48  <mikolalysenko>and having lots of asm.js heaps around eats up tons of memory
18:41:06  <jjjohnny>luckily audio software can only get so complex
18:41:10  <mikolalysenko>one possible solution is to make a module loader for asm.js, and if it takes off then this is what must be done...
18:41:25  <mikolalysenko>but I am not really looking forward to this situation
18:41:43  <jjjohnny>yeah that would be gross
18:41:58  <jjjohnny>but if the API allows for simply wrapping existing functions, that would be cool
18:42:10  <jjjohnny>presuming the existing functions are pure math
18:42:15  <mikolalysenko>yeah, you can make a closure around the asm.js stuff
18:42:24  <jjjohnny>as in, they get a buffer from their caller
18:42:29  <mikolalysenko>but pure math functions are of limited usefulness and v8 already optimizes those pretty well
18:42:33  <mikolalysenko>jjjohnny: that won't work in asm.js
18:42:45  <mikolalysenko>you can't easily pass buffers in/out of asm.js
18:42:55  <mikolalysenko>only ints which are pointers into the heap of that asm.js module
18:43:22  <jjjohnny>no but a wrapper function could configure the function to the heap
18:43:27  <mikolalysenko>so what you would do to pass it a buffer (hypothetically) is call malloc from the asm.js module, copy your stuff into the heap at that address then pass that pointer to the asm.js module
18:43:57  <mikolalysenko>and hope you don't accidentally forget to free anything along the way...
18:44:26  <mikolalysenko>also if you run out of heap space in asm.js, it is non trivial to allocate more memory
18:44:43  <jjjohnny>mikolalysenko: also I think you can pick what goes into the global, so you could access eg. the web audio interface (I think??)
18:45:00  <mikolalysenko>jjjohnny: you can only access functions that take/return ints and doubles
18:45:02  <mikolalysenko>that's it
18:45:12  <jjjohnny>ok
18:45:18  <mikolalysenko>you can't new objects or read properties
18:45:23  <mikolalysenko>or take objects or arrays as parameters
18:45:58  <mikolalysenko>these are actually somewhat reasonable constraints though
18:46:06  <mikolalysenko>the bad stuff is basically the heap issue in asm.js
18:46:15  <mikolalysenko>and sharing typedarrays between asm.js contexts
18:46:26  <mikolalysenko>if you could somehow pass typedarrays in/out of asm.js I think it would be fine
18:46:39  <mikolalysenko>the interface might be a bit clunky, but I think it would work
18:46:47  <jjjohnny>yeah its not hard to reuse buffers, they should back off that
18:46:56  <jjjohnny>like a good dev needs help with that
18:47:11  <mikolalysenko>I think asm.js is more driven by the needs of emscripten than the needs of developers
18:47:23  <mikolalysenko>the whole interface is basically built around optimizing what emscripten already spits out
18:47:44  <jjjohnny>well ints and doubles are pretty basic
18:47:53  <mikolalysenko>they are also value types
18:48:01  <mikolalysenko>actually you can add bools to that list too
18:48:10  * shuaibquit (Quit: Textual IRC Client: http://www.textualapp.com/)
18:48:15  <mikolalysenko>the bigger issue is that js as a language doesn't support value types, only references
18:48:23  <mikolalysenko>which is super crappy, but by no means unique
18:48:42  <jjjohnny>i dont follow
18:48:52  <mikolalysenko>basically you can't make local copies of stuff
18:49:03  <mikolalysenko>or ensure that nothing else modifies your local view of a variable
18:49:30  <mikolalysenko>which makes some things difficult to optimize and it can also screw up algorithms that are designed with cache/memory layout in mind
18:49:32  * whit537quit (Quit: whit537)
18:49:42  <mikolalysenko>for example, an array of objects in js is basically an array of pointers
18:49:55  <mikolalysenko>and you have no guarantee that they are arranged contiguously in memory
18:50:08  <mikolalysenko>similarly if you make a small say 3d vector in js it is allocated on the heap
18:50:22  <mikolalysenko>and you again have no control of the lifespan of that object or who else might mess with it
18:50:35  <mikolalysenko>this makes passing vector parameters as arrays in js slower than it needs to be
18:50:45  * whit537joined
18:51:02  <mbalho>isaacs: hmm weird when i did git pull origin master in my old node cloned repo i didn't get any newer tags, but when i re-cloned i got all the new tags
18:51:02  * yorickquit (Remote host closed the connection)
18:51:22  <isaacs>mbalho: yeah, clone fetches tags, pull doesn't
18:51:32  <mbalho>isaacs: oh!
18:51:41  <mbalho>isaacs: how should i get newer tags?
18:51:47  <isaacs>git fetch -a origin
18:52:05  <isaacs>mbalho: i tihnk thre's some config to make fetch always fetch tag (which then applies to pull also)
18:52:51  <mbalho>isaacs: cool thx
18:52:57  <mbalho>frikkin git
18:54:04  <jjjohnny>mikolalysenko: so if you arrange nd-arrays as staggered flat arrays, that would be better performance?
18:54:29  <jjjohnny>as one staggered flat array, that is
18:54:53  <jjjohnny>[[1,2],[3,4]] => [1,3,2,4]
18:55:40  <mikolalysenko>jjjohnny: that's how they are implemented. you can specify any 1d store as a backend
18:56:16  <mikolalysenko>jjjohnny: the api is still in development though. in the next version I want to make it so you can also use sparse storage for the underlying data structure
18:56:21  <mikolalysenko>instead of just typedarrays
18:56:23  * fallsemoquit (Quit: Leaving.)
18:56:38  <mikolalysenko>so you could do stuff like create sparse voxel worlds and so on
18:56:46  <mbalho>mikolalysenko: hey do you used any space filling curve techniques for 1d spatial indexes?
18:56:46  <isaacs>mbalho: do this:
18:56:48  <mikolalysenko>this would replace the rle-* stuff I was working on
18:56:50  <isaacs>mbalho: git config --add --local remote.origin.tagopt tags
18:56:58  <isaacs>mbalho: in the registry
18:56:59  <mikolalysenko>mbalho: https://npmjs.org/package/bit-twiddle
18:57:06  <mikolalysenko>mbalho: check out interleave3
18:57:48  * fallsemojoined
18:57:54  <isaacs>mbalho: s/--local/--system/ or s/--local/--global/ to make it apply to ALL git repos
18:57:56  <mbalho>mikolalysenko: nice, i messed with this approach once http://blog.notdot.net/2009/11/Damn-Cool-Algorithms-Spatial-indexing-with-Quadtrees-and-Hilbert-Curves
18:58:02  <mbalho>isaacs: oooh
18:58:23  * st_lukejoined
18:58:49  <isaacs>mbalho: but it's by remote name
18:58:57  <isaacs>mbalho: so, if they're called something other than "origin",it won't work
18:59:03  <mbalho>ah
18:59:04  <isaacs>mbalho: freaking git :)
18:59:07  <mbalho>yea
18:59:57  <mikolalysenko>mbalho: hilbert curves aren't worth it imo. even asymptotically they are no better than z-indexing
19:00:08  <mikolalysenko>and calculating indices for them is terrible
19:00:38  <mbalho>ah
19:01:00  <mikolalysenko>by z I mean interleave/z-order curve
19:01:11  <mikolalysenko>which is super fast and works pretty damn well
19:01:18  <mbalho>i thought the argument that they can increase the length of your sequential reads sounded good
19:01:25  <mikolalysenko>that argument is good
19:01:33  <mikolalysenko>but it is not true for hilbert curves
19:01:37  <mbalho>lol
19:01:46  <mikolalysenko>it is true for z-order though
19:01:57  <mikolalysenko>or at least as true for hilbert as it is true for z-order
19:02:25  <mikolalysenko>basically there is no much advantage to the hilbert curve over z-order, and the hilbert curve is waaay slower to compute
19:02:29  <mbalho>ah
19:03:14  <mikolalysenko>in fact, asymptotically I don't think there is any difference between the two
19:04:13  <mikolalysenko>the analysis for their performance is basically the same; you subdivide your region into cubes on the order of block size and then access ~ number of cubes
19:05:15  * tmcwquit (Remote host closed the connection)
19:10:34  * tmcwjoined
19:28:32  * dominictarrjoined
19:43:00  * tmcwquit (Remote host closed the connection)
19:44:00  * tmcwjoined
19:44:54  * no9joined
19:48:21  * st_lukequit (Remote host closed the connection)
19:55:12  <jjjohnny>is anybody on angel list?
19:55:47  * ralphtheninjajoined
19:56:35  * jibayjoined
19:57:06  * shuaibjoined
19:57:41  <jesusabdullah>I am technically
19:57:51  <jesusabdullah>I'm gonna take myself off though, thanks for reminding me
19:57:54  <jjjohnny>i know its probably not cool, but it might be profitable to troll the VC network
20:00:09  * mikolalysenkoquit (Ping timeout: 256 seconds)
20:00:36  <jjjohnny>also jesusabdullah i got a flagrant error trying b-cdn
20:00:54  <jjjohnny>---FLAGRANT SYSTEM ERROR---
20:00:55  <jjjohnny>Error: "value cannot be an empty String'
20:00:55  <jjjohnny>Get ahold of @jesusabdullah on freenode or twitter with
20:00:55  <jjjohnny>the ENTIRETY of the contents of this message, and he can
20:00:55  <jjjohnny>try to help you out.
20:00:57  <jjjohnny>name: "WriteError"cause: {}message: "value cannot be an empty String"
20:01:26  <jesusabdullah>jjjohnny: do you know how I can repro?
20:01:48  <jjjohnny>i cloned + npm install + npm start
20:02:04  <jesusabdullah>jjjohnny: https://github.com/jesusabdullah/browserify-cdn/issues/8
20:02:20  <jesusabdullah>jjjohnny: it shouldn't be trying to write to level unless you tried to hit a route
20:02:40  <jesusabdullah>jjjohnny: anyways there's an open issue, and I should probably add a guard there
20:02:58  <jesusabdullah>jjjohnny: but when I tried to follow the steps thl0_ gave me I couldn't repro the blank string >_<
20:03:28  <jjjohnny>jesusabdullah: yeah its a levelUp error
20:03:35  <jjjohnny>i tried to run the example
20:03:40  <jjjohnny>clicked the link
20:04:09  <jesusabdullah>jjjohnny: interesting. Can you copypasta the output in a comment on that issue?
20:04:37  <jesusabdullah>jjjohnny: I'll add a guard and some logging statements, maybe that will help
20:04:38  * nicholasfquit (Read error: Connection reset by peer)
20:04:44  <jesusabdullah>jjjohnny: also if you can consistently repro that would be huge
20:05:07  * nicholasfjoined
20:05:53  <jesusabdullah>jjjohnny: I'm wondering if browserify is returning a 0 status but with an error message
20:06:09  <jjjohnny>jesusabdullah: posted logs to that issue
20:06:17  <jesusabdullah>awesome, thanks
20:06:17  * kevino80quit (Remote host closed the connection)
20:06:38  <jesusabdullah>I'll be back in a little while with those changes I talked about
20:06:46  <jjjohnny>i am able to reproduce it on my machine :P
20:06:50  <jesusabdullah>awesome
20:06:55  <jesusabdullah>I'll ping you in a bit then :)
20:06:57  <jesusabdullah>thanks
20:07:03  <jjjohnny>thx
20:07:56  <jesusabdullah>jjjohnny: are you using a mac?
20:08:00  <jesusabdullah>thl0_: Do you use a mac?
20:08:01  <jjjohnny>yes
20:08:09  <jesusabdullah>That might be the similarity
20:08:14  <thl0_>jesusabdullah: yes
20:09:56  <jesusabdullah>jjjohnny: what is nhq?
20:10:34  <jesusabdullah>jjjohnny: wow you have some cool shit in here
20:10:51  * defunctzombiechanged nick to defunctzombie_zz
20:11:39  <jesusabdullah>jjjohnny: /r/ screenshot https://github.com/NHQ/t-dex
20:11:54  * Baribalquit (Read error: No route to host)
20:12:29  * Baribaljoined
20:12:42  * no9quit (Ping timeout: 241 seconds)
20:12:58  * defunctzombie_zzchanged nick to defunctzombie
20:16:30  * st_lukejoined
20:17:29  * whit537quit (Quit: whit537)
20:17:41  <jjjohnny>nhq is national headquarters, my dormant stateless culture company
20:18:26  <jjjohnny>jesusabdullah: if i reload a second time, I get my module
20:19:38  <jjjohnny>and it gets cached properly AKICT
20:19:51  <jjjohnny>i mean AFAICT
20:20:39  <jjjohnny>jesusabdullah: re screenshots http://imgur.com/a/K62n2#3
20:21:01  <jjjohnny>i'll add a better demo there soon, with animation
20:25:13  <jjjohnny>AFAICTYoh wait thats not a screen shot of t-dex, thats https://github.com/NHQ/jsynth-waveform
20:25:32  <jjjohnny>t-dex is a timeline module
20:26:50  <jjjohnny>it draws a lines with tick marks
20:29:42  * tmcwquit (Remote host closed the connection)
20:31:22  * tmcwjoined
20:34:24  * defunctzombiechanged nick to defunctzombie_zz
20:37:59  <jesusabdullah>haha, nice
20:38:02  <jesusabdullah>re: nhq
20:41:29  * mikolalysenkojoined
20:44:26  * st_lukequit (Remote host closed the connection)
20:45:28  * tmcwquit (Remote host closed the connection)
20:48:36  <mbalho>ednapiranha: how does login + sessions work on meatspace right now
20:49:00  <ednapiranha>mbalho: you would have to plug in something else.. like i used generaltoast and persona for that
20:49:04  <ednapiranha>but you can do whatever
20:49:19  <mbalho>ednapiranha: did you see https://github.com/maxogden/doorknob ?
20:49:24  <mbalho>ednapiranha: where is your persona implementation?
20:49:42  <jesusabdullah>jjjohnny: pushed those changes, give 'em a try, probably won't fix anything but might give you more information
20:49:56  <ednapiranha>mbalho: im using express-persona made by a colleague
20:49:57  * tmcwjoined
20:50:25  <ednapiranha>mbalho: https://npmjs.org/package/express-persona
20:50:39  <mbalho>ednapiranha: ah, i would be interested in feedback on doorknob in the event that you didnt want to use express
20:51:02  <ednapiranha>ah ok!
20:52:40  <jesusabdullah>ooh, had an idea, maybe there's a race condition between process.exit and child.stdout.write
20:53:17  <rch>sync on the fd?
20:53:37  <jesusabdullah>and by 'process.exit' I mean 'child.exit'
20:56:09  * djcoinquit (Quit: WeeChat 0.4.0)
21:00:14  * shamaquit (Remote host closed the connection)
21:04:36  * Guest24648changed nick to jden
21:04:51  * Baribalpart ("Leaving")
21:04:59  * mikealquit (Quit: Leaving.)
21:05:06  * jdenchanged nick to Guest42699
21:05:45  * Guest42699changed nick to jden_
21:06:10  * snojquit (Ping timeout: 246 seconds)
21:06:55  <jesusabdullah>jjjohnny: https://github.com/jesusabdullah/browserify-cdn/tree/ensure-stdio Give this branch a shot, it might fix it
21:13:43  * jolissjoined
21:18:34  <Raynos>if I have a function that does async shit including validation should the validation errors go in callback(validationError) ?
21:19:35  <mbalho>i do that, but i think some people would consider validation errors to be a successful response
21:20:10  <ednapiranha>Raynos: i would do that yeah
21:20:24  <Raynos>yeah I'm also thinking validation errors are success
21:20:30  <Raynos>but it's annoying to do
21:20:37  <Raynos>because then you either have to duck test for result or validation error
21:20:52  <Raynos>or return { is: "error", value: validationError } | { is: "result", value: result }
21:29:02  * ednapiranhaquit (Remote host closed the connection)
21:29:05  <thl0_>jesusabdullah: do you still need more info on the cdn issue?
21:29:38  <thl0_>I didn't get around to it yet (was working on valuepack), but if you need it, let me know and I'll try to put some extra logging and send it
21:30:01  <mikolalysenko>ugh... why are get/set for typed arrays so slow?
21:30:15  <jesusabdullah>thl0_: Yeah, that's what we're lookin' at, that branch I linked has code that might fix it
21:30:23  <thl0_>ok
21:30:34  <thl0_>so you got enough info then?
21:30:37  <jesusabdullah>thl0_: it's possible you're getting exit codes before you're getting stdio, is the idea
21:30:44  <jesusabdullah>naw, I just had a light go off
21:30:56  <thl0_>ok
21:31:03  <jesusabdullah>that branch also has the logging though, so we might learn more
21:31:31  <thl0_>ok - I'll clone it tonite and run it
21:31:55  <jesusabdullah>word
21:49:09  * jibayquit (Read error: Connection reset by peer)
21:49:17  * shamajoined
21:58:44  * jolissquit (Quit: joliss)
21:58:46  * no9joined
22:08:34  * st_lukejoined
22:09:05  * whit537joined
22:12:02  * thl0_quit (Remote host closed the connection)
22:13:57  <mbalho>paul_irish: do you know who i talk to to pitch a chrome experiment? (voxel.js based, similar in scope to cube slam)
22:14:11  * defunctzombie_zzchanged nick to defunctzombie
22:17:13  * ins0mniaquit (Ping timeout: 276 seconds)
22:21:16  * jolissjoined
22:22:20  * tilgovijoined
22:22:51  <jjjohnny>mbalho: you can use the web audio api to get pitch data using the analyzer node
22:23:17  <mbalho>lol
22:24:30  <mikolalysenko>jjjohnny: do you think it would be better to have pitch-shift take units in cents instead of a scale?
22:24:57  <mikolalysenko>(asking you as a musician, because to me as a mathematician I have no idea what is common practice)
22:30:56  * jcrugzz_joined
22:31:34  * jcrugzzquit (Read error: Connection reset by peer)
22:32:22  * jcrugzz_changed nick to jcrugzz
22:47:14  <mikolalysenko>also I didn't know webaudio has a pitch detector built in
22:47:28  <mikolalysenko>I know it has an fft analyzer, but that isn't the same
22:47:43  * st_lukequit (Remote host closed the connection)
22:48:50  * st_lukejoined
22:55:26  * ednapiranhajoined
23:04:47  * dominictarrquit (Quit: dominictarr)
23:08:51  * ednapiranhaquit (Remote host closed the connection)
23:09:54  * tmcwquit (Remote host closed the connection)
23:15:18  * ralphtheninjaquit (Ping timeout: 252 seconds)
23:19:38  * nk109quit (Quit: laters...)
23:22:18  * nk109joined
23:22:29  * thl0joined
23:27:25  * thl0quit (Ping timeout: 276 seconds)
23:30:31  * tmcwjoined
23:31:11  * nk109quit (Quit: laters...)
23:32:29  <jesusabdullah>should not have had to write this https://github.com/jesusabdullah/window-stream/commit/8b2e4e592a3ad0dd49f0a4a77605e545e0f85139
23:33:04  * nk109joined
23:42:17  * tilgoviquit (Ping timeout: 246 seconds)
23:47:18  * defunctzombiechanged nick to defunctzombie_zz
23:47:54  * fallsemoquit (Quit: Leaving.)
23:50:46  * AvianFluquit (Remote host closed the connection)
23:51:28  * mikolalysenkoquit (Ping timeout: 276 seconds)