00:00:19 elliott: Good design is still hard. :P 00:01:55 -!- pikhq has joined. 00:04:36 -!- pikhq_ has quit (Ping timeout: 240 seconds). 00:06:39 -!- pikhq_ has joined. 00:09:36 -!- pikhq has quit (Read error: Operation timed out). 00:22:05 * Phantom_Hoover → sleep 00:22:07 -!- Phantom_Hoover has left ("Leaving"). 00:22:09 -!- Phantom_Hoover has quit (Quit: Leaving). 00:36:05 Is there any sane way to test for ISO C89? 00:36:12 -!- Vorpal has quit (Ping timeout: 250 seconds). 00:36:32 Feh, I suppose #if __STDC__ will do well enough. 00:39:01 Going to start reading the Less Wrong Quantum Mechanics sequence 00:40:11 if you die from an overdo- 00:40:15 wait what that wasn't even a tylenol line 00:41:05 All my Tylenol lines are now in a msg to myself, and I'll /nick to Sgeo first. ais523 being bothered by it bothered me. 00:42:34 So what you're saying is... ais523 has the power to control your messages to the channel? 00:50:34 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 01:06:38 -!- FireFly has quit (Quit: swatted to death). 01:24:23 http://lesswrong.com/lw/or/joy_in_the_merely_real/iuj?context=1#iuj I'm not sure which is stupider, the comment or the reply 01:49:50 Play chess against an opponent. You are white. Assign a permanent to each opponents piece, then opponent assigns a permanent to each of your pieces. Each piece must have a different permanent assigned to it. When a piece is captured, associated permanent is discarded. At end of chess game, if it ended in checkmate, permanent assigned to losers king is discarded. 01:52:16 -!- pikhq has joined. 01:54:18 You can test for both __STDC__ and __STDC_VERSION__ if you want C89. 01:54:36 -!- pikhq_ has quit (Ping timeout: 240 seconds). 01:54:47 sgeo: I love the reply 01:56:08 And if you want to avoid GNU89 then you can test for that too in some way. 01:56:37 zzo38: Fail. __STDC_VERSION__ was first added in C90. 01:56:58 pikhq: You can compare the value of __STDC_VERSION__ 01:57:09 __STDC_VERSION__ does not exist in C89. 01:57:14 So, no you can't. 01:57:17 Then test it with #ifdef 01:57:29 ... Oh, wait, yes you can. The preprocessor treats undefined macros as "0". 01:58:14 Of course, testing for __STDC_VERSION__ won't help much when what you want is more of "at least C89" rather than "is precisely C89". :P 01:58:36 O, I thought you wanted to test for "is precisely C89". 01:59:18 At least as far as I understand, C99's additions are all undefined behavior in C89, so if you actually get caught by those then you're just doing things wrong. 01:59:49 And I have no desire to help people do things wrong. 01:59:55 No, there are some new reserved words, I think. 02:01:13 Oh, sure enough, C99 is not a strict superset of C89. :/ 02:02:52 So, I should probably make a "c89" test which makes sure that what you have is precisely C89 (or C90, as its only real distinction *is* __STDC_VERSION__), and a "c" test which just tests for __STDC__. (I shall pretend K&R C does not exist) 02:04:04 Perhaps first I should get town to actually generate Tupfiles again, though. :P 02:07:56 -!- oerjan has joined. 02:10:47 OK. That can help. 02:12:02 http://i51.tinypic.com/350uuc5.png 02:12:04 Critical success. 02:12:16 And perhaps also "gnu89" to use the "gnu89" version (Clang also supports "gnu89" mode). 02:13:40 Lymia: What is that, anyways? What does the stuff on the screen means? 02:14:26 Also, I wonder why Sweden isn't on the Euro; it's treaty-bound to. 02:15:23 afaiu they are using technicalities to delay it until they actually want to, and no one wants to push them too hard? 02:24:54 Some of the GNU extensions that Clang does not support are ones that I don't think they even ought to have put in gcc anyways; they like to make GNU software too large in my opinion 02:25:27 zzo38: try -fheinous-gnu-extensions 02:29:33 oerjan: I was asking for "why" not "how". 02:30:04 oerjan: "How" is pretty obvious; "exploit loopholes and watch as the EU doesn't care enough to call them on it". 02:30:20 coppro: What is that? 02:30:41 zzo38: an excellent clang flag 02:30:53 -!- BeholdMyGlory has quit (Remote host closed the connection). 02:30:55 mhm 02:31:39 coppro: What does it do? 02:34:28 zzo38: exactly what it says on the tin 02:34:44 zzo38: I think for GNU extensions I'll probably just have checks for individual GCC extensions. 02:35:05 pikhq: OK, do that, if it is how you want to do that. 02:36:16 -!- copumpkin has joined. 02:37:27 (as it's entirely feasible to use each and every GCC extension from -std=c89 or -std=c99) 02:40:09 Although perhaps it might be useful to have a macro called "gnu89" which tests for all the GNU extensions except the ones that are intentionally not supported in Clang. 02:42:16 (And "gnu99" for the similar thing) 02:48:34 pikhq: Did you finish reimplementing MY REFORM yet? :p 02:48:40 elliott: No. 02:48:45 WORK FASTER 02:49:01 elliott: I've been doing much more thinking about it than actual doing. 02:49:16 leave the thinking to me 02:52:10 __attribute__ is such a misfeature. 02:52:56 Actually, all of GNU C's extensions are misfeatures, because they make it so damned hard to use portably. 02:53:21 They don't have preprocessor defines for each feature, it's all on __GNUC__. 02:54:19 So you can't do, say, #if __has_attribute((foo)). 02:55:30 Well. If it ignores unknown attributes, then if they were sane they could just make if #ifdef __attribute__... 02:56:22 But *no*. If any other compiler wants to actually support a single GNU C extension, they need to define __GNUC__ to make code actually use it. 02:56:43 And if GCC removes an extension, code breaks. 02:57:09 So. Fucking. Stupid. 02:58:09 Now, clang has the right idea. They have a preprocessor check for each and every one of their extensions. 02:58:37 does clang even have clang-specific extensions 02:58:55 Yes. 02:59:03 are they any good 02:59:14 Well, I think it's clang or OSX GCC extensions. 02:59:21 monqy: How do you feel about anonymous functions? 02:59:25 <3 03:00:09 Oh, there's also C++ function overloading in C; you need to use __attribute__((overloadable)) for it to work. 03:01:29 Oh, and some extra builtins. 03:02:55 And you can *actually test for these things* in clang. 03:04:14 __has_builtin, __has_feature, __has_extension, and __has_attribute. GCC really, really, really needs them. 03:04:20 And I need a time machine to make it happen. 03:07:44 *Main> runSym $ product [x,y,z] 03:07:44 ((1 * x) * y) * z 03:07:54 *Main> runSym $ product (map succ [x,y,z]) 03:07:54 ((1 * succ (x)) * succ (y)) * succ (z) 03:08:17 unfortunately it's not all smiles and happiness 03:08:19 *Main> runSym $ concat (map show [x,y,z]) 03:08:21 show (x) 03:08:38 what happened there 03:09:33 monqy: the whole system is based on exceptions 03:09:34 because 03:09:47 *Main> runSym $ product [x,y,z] == x+y 03:09:47 ((1 * x) * y) * z == x + y 03:09:49 (==) returns Bool 03:09:54 so you can't do symbolic stuff with it, usually 03:10:06 so instead, everything takes two arguments, runs them and catches special SymExceptions 03:10:12 which it then extracts the value out of 03:10:17 computes the symbolic expression result 03:10:18 and throws that 03:10:28 the problem is, functions which look at these arguments... trigger an exception 03:11:12 what a lovely hack 03:11:35 monqy: SINCERE OR NOT: a monqy special 03:13:46 http://www.youtube.com/watch?v=B5ZMDzh0EXQ 03:13:48 * pikhq WTFs 03:15:04 nice truck there 03:15:37 http://www.icfpcontest.org/2011/06/task-description-contest-starts-now.html this game looks fun 03:16:47 I have a foot-shooting list tell me of entries I don't have (they can be esoteric programming or not) 03:17:33 two shoot urself in the foot... become a gansgata 03:19:17 monqy: do you want to sign up to the zepto report, it is an irc-based reports of the most and most un- zepto of the land 03:19:20 99 dollars per square mile 03:19:53 what land is this 03:20:13 monqy: the inter - net land 03:22:46 and what's a square mile 03:23:03 -!- Kustas has joined. 03:23:22 monqy: u dont need two know... 03:23:34 clA$$IFIED INFORMATION 03:23:39 INFORMA$ION 03:23:59 informasion 03:24:56 -!- Kustas has left. 03:24:58 informinvasion 03:25:32 goodbye kustas 03:26:20 rip kustas 03:26:22 warrior of zepto 03:28:38 -!- elliott_ has joined. 03:28:39 -!- elliott has quit (Read error: Connection reset by peer). 03:35:45 -!- PatashuPikachuRe has joined. 03:36:17 PatashuPikachuRe: omg 03:36:18 -!- augur has quit (Remote host closed the connection). 03:36:19 ur a pokemons 03:37:29 -!- Patashu has quit (Ping timeout: 276 seconds). 03:38:43 God *damn*. 03:38:51 pikhq: wat 03:39:10 North Korea has... Defeated Hitler, in terms of awful concentration camps. 03:39:19 i liked it before the comma 03:39:36 -!- PatashuPikachuRe has changed nick to Patashu. 03:39:38 this keeps happening 03:39:48 Patashu: i told you about pokemen 03:39:49 etc. 03:40:29 imapokemons 03:40:35 not one but many 03:40:48 They have camps where generations are punished. By which I mean "you will be here your whole life. Your children will be born here and die here. Their children will be born here and die here. And so on." 03:41:54 for this game: http://www.icfpcontest.org/2011/06/task-description-contest-starts-now.html what would an example strategy look like? 03:41:57 I've never done lambda stuff before 03:42:44 characterising the problem of playing the game as "lambda stuff" seems to imply to me a gap in experience too large to articulate the answer... 03:42:49 (not that I know what a decent strategy would be myself) 03:42:55 (I'd have to actually try it to know that :P) 03:43:00 :) 03:43:20 maybe you should verse yourself up in lambda stuff first 03:43:33 I can't believe there are programmers who don't know the lambda calculus :( 03:43:43 :'( 03:44:13 I have a foot-shooting list of "HOW TO SHOOT YOURSELF FOOT BY PROGRAMMING LANGUAGES". 03:44:35 I can see that if you're setting up a huge fuck-the-opponent-over function in a slot and your opponent gets it to 0 vitality then zombifies it 03:44:39 it'll activate and do the opposite 03:47:39 zzo38: such lists are _old_ 03:47:56 oerjan: nss 03:48:04 wat 03:48:29 oerjan: no shit sherlock 03:48:38 ?hoogle cata 03:48:38 No results found 03:49:36 where's the catas at 03:50:05 http://hackage.haskell.org/packages/archive/recursion-schemes/0.5.0.1/doc/html/Data-Functor-Foldable.html here dey are 03:50:10 look behind the zygohistomorphic prepromorphisms 03:51:10 oerjan: I know such lists are old but I have some new one too and want to add some new things if you have ideas. This can include new entries for programming languages that are already on there, entries for programming languages that are not on there, or entries for programming languages that did not exist at that time. It can be esoteric programming and/or not. 03:52:24 haskell: your program appears to prevent you from shooting yourself in the foot, until it suddenly runs unexpectedly out of memory 03:52:32 hmm, it's cataNat :: NatAlgebra a -> Nat -> a, right? 03:52:38 where type NatAlgebra a = (a, a -> a) 03:52:50 Thanks. That is one now I added it 03:53:12 yay 03:54:39 class Catamorphism a alg | a -> alg where 03:54:40 type Cata alg a 03:54:42 oerjan: spot the mistake 03:55:07 hm? 03:55:10 no idea 03:55:24 oerjan: hint: there are no typekinds 03:55:35 you supply the (type-level) _values_ 03:55:46 so for any input number, there is only one valid (a, a -> a) pair 03:55:52 making this totally meaningless 03:56:05 if you say so 03:56:12 oerjan: ARE YOU DOUBTING ME 03:56:34 no, i am just not even remembering what a catamorphism is, much less in the type system 03:56:45 generalised fold / induction / recursion scheme 03:57:03 IF YOU SAY SO 03:57:22 type NatAlg a = (a, a -> a); cataNat (x,f) Z = x; cataNat alg (S n) = f (cataNat alg n) 03:58:10 -!- augur has joined. 03:58:16 missing for f 03:58:21 *binding 03:59:11 oerjan: yeah yeah 03:59:13 alg@(x,f) 03:59:23 * pikhq wonders why in the world Firefox sometimes causes the system to swap like crazy with 0 swap space used. 03:59:37 I should note that yes, it's actually swapping. 03:59:51 kswapd is shown to be working like crazy in iotop. 04:00:01 It's because Firefox sucks TRUE STORIES BY REAL PEOPLE 04:00:14 it's swapping into your hidden NSA disk 04:00:16 True, but not a good explanation. 04:01:26 the disk contains a satellite link to ECHELON 04:01:41 using top secret neutrino transmission 04:07:49 oerjan im starting to think that maybe you cant embed everything in a nice type system library 04:07:54 CRY................. 04:08:06 mostly I hate how type families arent first class :( 04:11:15 Nested type family application 04:11:15 in the type family application: Succ :$ ((Add :$ m) :$ n) 04:11:15 (Use -XUndecidableInstances to permit this) 04:11:17 oerjan im creying 04:12:23 what you cannot nest them? 04:12:28 apparently 04:12:33 the type family rules are some strict bullshit mon 04:12:45 and what happens if you use -XUndecidableInstances 04:12:53 monqy: then..................a baby cries.... 04:12:57 and that baby grows up to be... jesus 04:13:00 and dies on the... cross 04:13:25 oh no 04:15:12 -!- oerjan has quit (Quit: Later). 04:16:22 data Map; data Map' f 04:16:22 type instance Map :$ f = Map' f 04:16:22 type instance Map' f :$ Nil = Nil 04:16:24 type instance Map' f :$ x :@ xs = (f :$ x) :@ (Map' f :$ xs) 04:17:51 Sgeo: yally is invading agora and trying to stop you preventing such evil 04:21:09 o.O 04:22:32 That does not look like an invasion. 04:22:35 But thank you. 04:25:22 oh god youre not actually going to object are you 04:25:30 i fucking hate quorum raisers who never do anything 04:25:32 oh you did 04:26:35 I should look up the quorum rules quickly 04:26:58 you should stop objecting to deregistrations of inactive people 04:27:00 even if those peoplre are you 04:27:30 Should quorum count inactive people? 04:27:51 why should constantly-inactive people be players? 04:27:54 the mechanism is there for a reason 04:28:48 -!- foocraft has quit (Quit: So long, and thanks for all the fish!). 04:29:46 Is quorum fixed at the start of voting period, or determined at end? 04:29:54 Either way, I'm going to sleep now 04:32:08 elliott_, *clap* *clap* *clap* 04:32:30 the mechanism still exists to be used, regardless of quorum rules 04:36:43 elliott_: I would vote for a mechanism to deregister players forcibly who have been inactive for long enough 04:37:16 coppro: it should be without objection from people who aren't the player 04:37:28 elliott_: or that 04:37:29 if someone is trying to exploit a lull in the game to become the dictator... 04:37:31 then that's no good 04:37:34 but yeah 04:37:38 people object to their deregistrations all the time 04:37:44 and its basically never justified 04:59:40 * pikhq gets really, really upset at the unused potential of the Super Gameboy. 05:00:59 Not only could you use the thing to stick SNES games on a Gameboy cartridge, you could use it to supplement the Gameboy game by drawing SNES sprites onto the screen. 05:01:20 There's precisely one example of either feature being used. 05:01:49 It's like Nintendo went "Fuck, let's design this totally awesome hardware and then NEVER USE ITS FEATURES". 05:05:28 pikhq: lolgameboy->console devices 05:05:51 coppro: Yeah, but the Super Gameboy actually did it right, as far as hardware is concerned. 05:06:07 -!- yorick has quit (Ping timeout: 252 seconds). 05:06:14 tbf I owned and enjoyed the game boy player 05:06:21 -!- elliott_ has quit (Read error: Connection reset by peer). 05:07:10 The Super Gameboy could have made Gameboy games look like native SNES games if the developers cared. 05:07:43 But no, they pretty much used it by adding a color pallete. 05:08:06 marginal effort 05:08:06 -!- yorick has joined. 05:08:11 Yup. 05:08:35 Even the Pokemon games did more with it than most. 05:08:55 also <3 Twilight Symphony 05:09:01 (simply by switching palletes for each area and having 3 palletes on screen in battles) 05:09:59 (in case you've not played Pokemon on a Super Gameboy or an emulator that emulates SGB palleting: the life bars each get their own palletes, and each Pokemon has its own pallete.) 05:10:33 (you can assign palletes to screen regions, with an 8x8 granularity) 05:12:20 Hmm. I think the Gameboy Player was *also* horribly underused... 05:13:25 At a minimum, the thing was capable of doing multiplayer in the normal way: with each player having their own controller. 05:14:01 Not to mention horribly underdesigned; it wouldn't have been hard to at *least* support SGB borders and palleting. 05:14:28 yeah 05:14:52 (by doing the same trick that Gameboy emulators do for that; watching writes to the appropriate register and emulating those two features only) 05:15:21 -!- Lymia has quit (Ping timeout: 246 seconds). 05:15:46 And I wouldn't be surprised if that multiplayer trick was pulled off by letting you execute PPC code. 05:16:30 Making it definitely underused. 05:18:20 the best was using it for download play off of another GCN game 05:18:24 like Crystal Chronicle 05:18:28 *Chronicle 05:18:43 ... Wouldn't that require two Gamecubes? 05:18:49 yes. yes it would 05:19:21 Actually, with Crystal Chronicles, that'd be 1+N Gamecubes, where N is the number of players. 05:19:25 I can't wait for the Wii U because two of my favorite GCN games were GBA-enabled ones 05:19:29 ayup 05:19:54 The Wii U only supports a single Wii U pad, BTW. 05:20:08 All other controllers must be Wiimotes, as far as I understand. 05:20:44 And it doesn't do Gamecube compatibility, which makes me kinda sad. 05:20:51 It wouldn't be hard to do. 05:21:10 The only non-trivial hardware change would be making the disc slot handle the smaller discs. 05:23:53 hrm 05:23:59 they better have multiple wii u pads 05:24:08 would be incredibly disappointed if not 05:24:21 possibly a development restriction? 05:24:37 A "streaming 480p over Bluetooth" restriction. 05:24:44 oh :/ 05:25:21 -!- elliott has joined. 05:25:39 tbh I'd be surpried if the king of multiplayer and proprietary lock-in was going to take such a weak technological restriction at face value 05:25:42 i always feel like overcomplicated software is deliberately antagonising me 05:26:23 coppro: I think they're using Bluetooth primarily as a cost-cutting measure. 05:26:45 05:24:37: A "streaming 480p over Bluetooth" restriction. 05:26:47 Remember, though they love doing proprietary tech, the one thing they love more is making cheap hardware. 05:26:48 pikhq: hmm, I suspect terrible compression 05:26:56 bluetooth is horrible 05:27:02 it's inadequate even for low-end headphones 05:27:29 Also, I'm not *sure* it's Bluetooth, I'm just guessing based on what I already know to be in the hardware. 05:27:49 (the Wii U *must* have Bluetooth, since that's what Wiimotes use) 05:29:19 "Important: Many numerical values in the pattern editor are in hexadecimal notation, not decimal 05:29:19 notation. If you would like to know more about HEX, please refer to the “About HEX” topic later in this 05:29:19 guide." 05:29:20 elliott: Bluetooth "High Speed", which is barely used, gets you 24 Mbps. Which is at least *adequate*. 05:29:22 i think renoise was designed by asking 05:29:34 "what are the most pointless, unintuitive elements of the tracker aesthetic?" 05:29:41 and maximising them in a new piece of software 05:33:36 pikhq: someone should bring a sniffer to a game conference 05:33:49 Definitely. 05:33:52 oh, renoise does samples in the stupidest way possible 05:33:59 you assign a sample to a particular note value 05:34:01 arbitrarily 05:34:07 i think 05:34:19 "Many values input into Renoise's pattern editor are hexadecimal (HEX). Because many beginners 05:34:19 have problems with this fundamental concept, we will address that here. 05:34:20 Most people are familiar with decimal because most people have 10 fingers. Instead, let's imagine we 05:34:22 have 16 fingers - which, conveniently enough, comes in very handy for many musical concepts ;-)" 05:34:24 oh my god are you actually going to try and teach me hex 05:34:34 loll 05:34:37 elliott: THAT IS AWFUL 05:34:43 so you have to type everything in hexadecimal 05:34:48 I JUST WANT TO MAKE SOME SICK BEATS STOP DOING HORRIBLE THINGS TO ME 05:34:55 <-- LITERALLY SOBBING 05:35:10 WHY ARE THE PAN AND DELAY COLUMNS IN HEX 05:35:19 THAT IS THE MOST ARBITRARILY THING EVER 05:35:21 hey guys 05:35:28 FUCK THIS SHIT IM CLOSING RENOISE 05:35:29 let's take a human being who's immersed in decimal for their entire lifetime 05:35:36 and yeah that 05:35:50 im just going to buy a casio sk1 and swear off all other sound-producing devices 05:35:56 If entering things in hex is an actually helpful UI feature, then they could just accept 0xFF-type syntax. 05:36:13 you just don't understand pikhq... it's LEET 05:36:16 Rather than doing such a UI sin. 05:36:31 pikhq: it's like a tracker, but modern, except not modern, you see 05:36:44 http://www.renoise.com/files/screenshots/overview-261.png ;; this actually makes it look less horrific to use than it is 05:36:52 crud 05:37:02 what is it with audio software and being a steaming pile of shit 05:37:09 its like the two concepts are intimately linked 05:37:12 elliott: What platform is that running on? 05:37:23 pikhq: windows, but it looks mostly the same pretty much everywhere :P 05:37:28 If you name one I'm familiar with I will stab people. 05:37:34 Fuck, I'm stabbing people. 05:37:37 i can even forgive the non-nativeness 05:37:38 I've lost my supar-awesome keyboard shortcut :( 05:37:40 i don't even give a shit about that 05:37:43 its just unusable 05:37:52 if its not shit like this 05:37:56 its using actual knobs in a computer UI 05:37:59 It looks like it has decided to commit every UI sin. 05:38:00 WHY WOULD YOU EVER DO THAT 05:38:01 USE A FUCKING SLIDER OMG 05:38:15 THEY HAVE THE WONDERFUL SIDE-EFFECT OF NOT MAKING ME WANT TO KILL YOUR FAMILY 05:38:26 seriously, designing audio software to look like audio hardware is 05:38:28 it's just 05:38:30 if you ever do it 05:38:31 i hate you 05:38:33 irrevocably 05:39:20 http://homepage.mac.com/bradster/iarchitect/realcd.htm 05:39:31 Actually worse. 05:39:32 that doesn't count as audio software :P 05:40:10 guys, gimme one reason not to NIH all audio production software 05:40:17 it is literally all the worst 05:40:27 if other software is a steaming pile of shit 05:40:31 You will be forced to also NIH all audio handling APIs. 05:40:36 SoX is not bad. 05:40:38 audio software collapsed under its weight and formed a black hole ten billion years ago 05:40:42 zzo38: :) 05:40:45 zzo38: you make me smile with your words 05:40:46 Even the *best* ones are very undocumented. 05:40:51 i want to make an entire song with just SoX now 05:41:18 And ffmpeg's developers need to learn a thing or two about libraries. 05:41:24 hmm, I remember Reason not being quite an entire steaming pile of crap last time I used it 05:41:28 despite trying to look like audio hardware 05:41:30 Yes, SoX can make music, too. Both equal-temperament and just-intonation. 05:41:40 Namely, "FUCK YOU I DON'T WANT TO HAVE A FULL COPY OF YOUR SOURCE CODE IN MY SOURCE CODE. FUCK YOU FUCK YOU FUCK YOU." 05:41:51 (i'm basically trying all the audio software that exists ever so I can complain about how much of a steaming pile of crap it is) 05:42:03 "INSTALL MOTHERFUCKING LIBRARIES IF YOU EXPECT OTHER PEOPLE TO USE IT YOU ANTI-DEVELOPER COCKS" 05:42:09 05:44:37 oh, i think Ableton Live's only sin that I remember was having knob controls 05:45:18 Still. Why would you ever want knob controls on a fucking computer? 05:45:33 well... they're smaller than a slider i guess 05:45:36 My mouse moves in straight lines with ease. It does not go in circles easily. 05:45:46 pikhq: oh, you can control them with straight lines usually 05:45:49 by going up and down 05:45:55 its just that on a widescreen up and down arent very natural directions 05:45:59 and its reflected very weirdly in the knob spinning 05:46:02 but 05:46:08 i agree that the ones you actually have to go in a circle with 05:46:10 are unforgivable 05:46:31 Also nice about a slider: they present bigger targets. 05:46:38 You don't want small targets. 05:47:01 pikhq: see with *elliottmusicsoftware*, such a continuous selector of a range is an abstract object that can be represented however the user wants them to be, on a default + case-by-case basis 05:47:05 You don't want freakishly big ones either, but it should not be a painstaking exercise to click on your thing. 05:49:48 pikhq: personally, my preferred replacement for knobs would be, visually, a circle with a coloured ring around the edge (knob-style :P) showing the current value, perhaps with the numerical value in the centre; but when you click it, it'd turn into a slider, with the current value of the slider aligned to the position of the cursor 05:49:56 (horizontal slider usually) 05:50:33 elliott: With that, my only complaint would be non-nativenes. 05:51:00 pikhq: yeah, but let's face it, "native" UIs don't exactly have a wealth of useful controls for things of this scale 05:51:27 I mean, a piece of audio software completely following some HIG and using no non-native controls would ... probably not fit on any screen because of how huge everything would be 05:52:25 Well, yeah, I'm not going to complain much about it being non-native if it's working around OS deficiencies. 05:52:34 If it at least *looks* like it belongs there. 05:52:44 And is usable, of course. 05:52:53 If it's not usable then I reserve the right to beat you to death. 05:53:14 I don't even care if all the controls look completely different, to be honest; in audio software, I'd say the situation is kind of opposite of a normal GUI app 05:53:22 In that you have shitloads of controls that you don't want to stand out 05:55:07 Of course, the most important thing is to make it so people can use the software without wanting to stab the developers. 05:55:13 And audio software fails at this. 05:55:30 Things like "looking native" is a nicety on top of that. 05:56:03 lmao, reason demo disables saving 05:57:50 yeah it does suffer from total try-to-look-like-hardware-itis 06:00:25 -!- Kustas has joined. 06:01:26 The non-GUI audio software work better from what I can tell. 06:01:37 yyeaaaaaaaaaaaaaah 06:01:42 pikhq: http://i.imgur.com/GsdRl.png goifjgoidfg it hurts 06:01:49 ok its actually not that bad apart from the visual noise 06:01:58 also half the interface doesn't look like hardware at all 06:02:02 so its only half a crime 06:02:55 *gag* 06:03:07 elliott: Is that a VST? :P 06:03:10 Do these people know *why* physical UIs look like that? 06:03:16 Gregor: I think so? 06:03:18 Of course if it looks like hardware, it should be for a good reason, such as, it emulates hardware and acts like it! Otherwise it is a bad reason and it ought not to be looks like hardware it is bad thing to do that 06:03:23 Gregor: I think Reason's interface is like... 06:03:29 All VSTs are "designed" by retards. 06:03:31 Gregor: One half VSTs and mixers and the like 06:03:33 Plus one half sequencer 06:03:41 zzo38: The thing is, hardware UIs are not intended for use with a pointer device. 06:03:42 Gregor: But that's a global mixer thing so I don't think it's strictly a VST. 06:03:51 zzo38: They are meant for manipulation with actual human hands. 06:03:51 Ah 06:04:09 Gregor: But here's the best part: 06:04:17 Completely different design considerations at hand here. 06:04:40 (One second, screenshotting :P) 06:05:05 Gregor: http://i.imgur.com/UlX2Q.png 06:05:11 THANK YOU, REASON, FOR SIMULATING AN ACTUAL DECK 06:05:17 I WOULD BE TOTALLY LOST WITHOUT THIS HELPFUL BACKGROUND IMAGE 06:05:39 I SURE HOPE THE THREE LINES OF CODE AND THE THIRTY MINUTES IN PHOTOSHOP IT TOOK TO DO THAT WERE WORTH IT 06:06:00 THE WHITESPACE GOD THE WHITESPACE 06:06:09 pikhq: wat 06:06:20 pikhq: Yes; true; but in a few (not all) cases, it might be useful to emulate a hardware and have it displayed on the computer screen. Not in all cases, though. (For emulating GameBoy it is not very useful, but in some cases it might.) (Also, you do not need to display the parts that have nothing to do with the emulation) 06:06:23 elliott: By "white" I mean "empty rack slots" 06:06:31 pikhq: That's scrolled down to the bottom :P 06:06:43 elliott: SUCH A STUPID FEATURE 06:07:21 YESSS IT COMES WITH A COWBELL INSTRUMENT 06:07:28 Why is there even a scrollbar? There is nothing there what is the use of that please 06:07:36 zzo38: um there are more instruments above 06:09:04 There may be but then why is there a space with nothing that it scroll to? Doesn't usually the scroll bar should only scroll the length of what is there? 06:09:08 elliott: Bahahaha 06:09:16 zzo38: Ask the Reason developers :P 06:09:58 Gah, why is it even split vertically, it should be horizontal. 06:12:02 I don't know. SoX works fine, use that for audio. 06:13:51 -!- Kustas has quit (Quit: ChatZilla 0.9.86.1-rdmsoft [XULRunner 1.9.0.17/2009122204]). 06:15:57 Although I think some features ought to be combined ImageMagick with SoX. (At least it is possible to pipe ImageMagick to SoX (or vice versa), though.) 06:16:01 loooooool 06:16:13 oh my god it just kicked me out because i spent twenty minutes messing around 06:16:16 thats actually awesome 06:16:18 speed songwriting 06:18:01 zzo38: ImageMagick to SoX? Why would you do that? 06:18:12 (no, really. I am highly curious what use case that could have.) 06:18:25 I can find songwriting useful using MML (music macro language) based programs, such as PPMCK (I have made some improvements and bugfixes to PPMCK actually, including tail recursion) 06:19:27 dammit, now I've started mentally designing elliottmusicsoftware :( 06:19:29 pikhq: Due to lack of effects in one program or the other. Represent the audio as a ...x1 grayscale image. And then use the various effects (some are useless for audio, some are OK for audio, and -fx is very useful for audio) 06:19:38 elliott: Can you write it down? 06:19:44 zzo38: on irc? 06:19:46 zzo38: Strange. 06:20:18 elliott: No, on a text file in your computer and then sent to sprunge 06:20:28 zzo38: boring :) 06:21:10 Then write it on paper and then put on a wood table and then take the picture and ensure the focus is good enough to read it and then ask someone else to type it into the computer for you. 06:23:06 -!- Kustas has joined. 06:23:36 And be sure to then uuencode and repeat the process. 06:26:39 pikhq: Other cases are for making Fourier transform, and many of the effects in ImageMagick are useful for audio, some of which SoX already has similar things. To me at least it would make sense to combine it in one program 06:30:12 Sounds like you're wanting a linear algebra program. 06:32:16 pikhq: whoops, my audio software design just pulled in an entire lisp 06:34:16 elliott: Now it just needs to do mail. 06:34:54 pikhq: write some network code to do IMAP, plug it into a text-to-speech object, voila! 06:35:41 The alpha channel can also have some uses for doing fading effects and stuff. Many effects in ImageMagick are already useful for audio, but just add a few more such as -echo and so on and then it should be very useful for audio. Stereo files can be represented by having like RED=LEFT GREEN=RIGHT for example. 06:36:41 While -density can be used for sample rate (where 1 second = 1 inch) 06:36:43 come to think of it, I seem to have invented something that can implement Max/MSP as just a certain kind of object 06:36:59 zzo38: inch? lol 06:37:35 zzo38: Like I said, you seem to want a linear algebra system. 06:38:15 Which is much like an audio or image or video manipulation system, but generalised. 06:38:27 pikhq: Maybe something like that. 06:40:50 elliott: It just seems convenient units to use due to the way the program already work 06:41:50 what's an inch 06:42:10 2.54 cenimetres 06:42:18 s/cenimetres/centimetres/ 06:43:31 specify digital images in terms of metres every day 06:44:25 What I might like to have for audio and music making program is something like METAFONT. 06:44:57 monqy: An "inch" is either 2.54 centimeters or 100/3937 meters. (latter definition exceptionally unused) 06:45:59 METAFONT is already one of the best program for font making, and I think a similar thing could be made working with musics somehow. 06:46:01 ("international inch" and "survey inch", respectively) 06:46:44 right but I don't see how inches/metres are useful for digital imaging, aside from translation to/from physical images, unless that's what the command or whatever is for 06:46:58 monqy: He was proposing to use ImageMagick for audio manipulation. 06:47:17 monqy: The -density command in ImageMagick is used when you want to specify what resolution is used for printing this image. 06:47:25 aha 06:49:38 *sigh* US customary units. 06:50:05 So terrible. 06:52:21 DVI units are specified in fractions of decimicrons, allowing for finer resolution than any printer has, as far as I know. 06:55:03 Quick, how many miles per gallon is a league per barony-gill? 06:55:16 (yes, that is a valid unit. League per barony-gill.) 06:56:35 wow, (a = b) = c is valid in C++ 06:56:37 not in C, I don't think 06:57:21 Hmm. Doesn't (a = b) result in an lvalue in C? 06:57:41 I don't think so 06:58:09 what does (a = b) mean as an lvalue? 06:58:25 monqy: Presumably, same thing as a. 06:58:29 Anything else would be mad. 06:58:46 anything at all would be mad 06:59:01 Fair enough. 06:59:04 you decide with operator= 06:59:06 YOU DECIDE 06:59:07 -!- Kustas has changed nick to derrik. 06:59:09 you could return a global 06:59:16 (a += b) -= c; 06:59:19 could increment a by b 06:59:24 then decrement aassoijdioajd by c 06:59:48 I've always wanted to decrement aassoijdioajd by c 07:00:04 in the same statement as incrementing a by b 07:01:37 http://i.imgur.com/uBZOi.png WHY WOULD YOU EVEN DO THIS YOU ARE MAKING ME TURN OFF THE NO-SIDEBAR MODE YOU EXPLICITLY TURNED ON JUST SO I CAN GET TO THE FUCKING APPLICATIONS FOLDER AT LEAST PUT AN ALIAS TO IT IN THE DISK IMAGE GOD DAMN 07:02:26 what kind of gimmicky installation mechanism is that 07:02:38 monqy: its called standard os x installation 07:02:41 or is it user friendly 07:02:41 oh 07:02:46 you download a disk image which contains a filesystem 07:02:50 you mount the file system 07:02:58 you copy the application files to your applications folder 07:03:03 you unmount ("eject") the file system 07:03:07 and then drag the disk image to your trash 07:03:12 its ridiculous and terrible 07:03:38 And you can unmount it by dragging the filesystem to your trash. 07:03:47 Ableton's free 30-day license enables the "Save" and "Export" functions, so you can experience making music with no holds barred. To activate your free license, enter your e-mail address below. 07:03:48 i can hardly wait 07:04:06 And it's still better than Windows installation. 07:04:20 but hey, apparently ableton integrates with Max? 07:04:27 this is cool I guess 07:04:31 big orgy of audio applications 07:05:05 Max is the only well-designed audio application, in fact it's one of the best-designed programs I've used, but unfortunately I am too crappy to make nice sounds with it :( 07:07:43 I think some sort of METAFONT-like program would be good to make a music 07:12:23 "Customize Live's color scheme and display size in the Look/Feel Preferences." 07:12:27 pikhq: monqy: im thinking green on pink 07:12:59 don't forget the yellow 07:13:27 elliott: How Gregorian. 07:28:29 "pad" in SoX is similar to "-border" in ImageMagick. "norm" is probably like "-auto-level". "reverse" is like "-flop". 07:29:22 pikhq: help I accidentally invented the best everything 07:40:48 pikhq: You know, it's not true that _all_ audio APIs are terrible or undocumented... 07:41:01 pikhq: I bet Core Audio is quite nice. 07:41:59 Is it allowed in LLVM for a PHI node to return a label value? If so, can you then use that label in a branch instruction or other instruction? 07:43:22 (Including other PHI nodes) 07:43:28 coppro might know 07:44:58 -!- monqy has quit (Quit: hello). 07:54:20 Is coppro on and available? 07:54:44 he spoke fairly recently 07:55:08 i.e. two hours ago it seems :) 08:05:41 -!- zzo38 has quit (Remote host closed the connection). 08:09:03 -!- derrik has left. 08:21:49 -!- Phantom_Hoover has joined. 08:32:50 pikhq: Hmm... what's actually wrong with PortAudio? 08:33:37 PortAudio has backends for everything[1]. 08:33:41 [1] everything important 08:33:54 Gregor: I'm talking API, latency, etc. wise :P 08:34:41 I've only used PortMIDI, but if that's anything to go by, its API is "dump some bits here lulz" 08:35:24 Gregor: As far as I can tell, my options are exactly twofold: Core Audio, which is reportedly excellent and should basically give me no actual _problems_, but which would restrict me to running things on an OS I don't use day-to-day (although considering Linux's terrible audio situation I probably would anyway), and which also apparently has a rather... horrific API; not in that it's /bad/, but in that it's ... you know ... flexible; 08:35:24 and PortAudio, which would probably be less of a pain and which would be more portable but... might be bad inexplicably???? 08:35:28 Wow that was a long sentence. 08:35:31 That... that was one sentence. Wow. 08:36:22 elliott, oh god what are you trying to do. 08:36:22 Phantom_Hoover: You have 1 new message. '/msg lambdabot @messages' to read it. 08:36:27 Y'know, Linux's audio situation has improved enormously over the last few