00:12:05 <zzo38> There seem some effects of MCK which are not possible in Impulse Tracker or any other tracker formats, such as desynchronized loops, or activating multiple effects for one note
00:13:54 <zzo38> Although for desynchronized loops I could have the program expand the loops until they are synchronized when compiling it
00:21:12 <zzo38> MegaZeux cannot play .NSF files so to create music for MegaZeux game require other program; it can play .MOD, .S3M, .IT, .XM, .OGG, .WAV formats, and maybe a few others too.
00:22:11 <zzo38> Do you know if there is any MML compilers for these formats?
00:24:37 -!- MoALTz_ has quit (Ping timeout: 252 seconds).
00:25:00 -!- nortti_ has quit (Ping timeout: 244 seconds).
00:30:34 -!- MoALTz has joined.
00:43:47 -!- PatashuXantheres has joined.
00:43:47 -!- Patashu has quit (Disconnected by services).
00:43:52 -!- Gregor has quit (Remote host closed the connection).
00:45:18 -!- ion_ has joined.
00:45:52 -!- Vorpal has quit (Ping timeout: 265 seconds).
00:48:21 -!- esowiki has joined.
00:48:22 -!- glogbot has joined.
00:48:23 -!- glogbackup has left.
00:48:23 -!- HackEgo has joined.
00:48:24 -!- EgoBot has joined.
00:48:25 -!- esowiki has joined.
00:48:26 -!- esowiki has joined.
00:50:08 -!- glogbackup has joined.
00:50:14 -!- Gregor has joined.
00:50:25 -!- ion_ has changed nick to ion.
00:51:01 <Gregor> lambdabot: Oh shit you're not here.
00:51:17 <oerjan> Gregor: Oh shit you're here.
00:51:44 <Gregor> Only momentarily. I'm still in China, I just wanted to check how much SHIT WENT DOWN while I was gone.
00:51:47 <Gregor> As it turns out: a lot.
00:52:06 <oerjan> the logs weren't working at one point; i haven't checked them since.
00:52:55 -!- PatashuXantheres has quit (Read error: Connection reset by peer).
00:52:58 <oerjan> well looks like you just got them working
00:53:16 -!- Patashu has joined.
00:53:37 <Gregor> Did glogbackup figure it out? >_>
00:53:53 <Gregor> I may have to implement proper log merging. I'll solicit logs if I need them.
00:54:15 <oerjan> Gregor: no, glogbot was still here, just not logging
00:54:17 <elliott> Gregor: glogbackup was here, I think.
00:54:29 <elliott> Gregor: tunes.org logged everything.
00:55:10 <elliott> Gregor: May I suggest having glogbackup always present?
00:55:47 <Gregor> 'snot a terrible idea *shrugs*
00:56:49 <oerjan> anyway we won't see Gregor again, now that he's blamed China.
00:57:06 <Gregor> Even more dangerously, I'm blaming China from WITHIN CHINA.
00:57:18 <elliott> Gregor: I suspect it might have been a software failure, anyway.
00:57:24 <elliott> Some line caused it to break or something.
00:57:38 <Gregor> No, it was a much more retarded software failure.
00:59:08 * oerjan learns that Thog is also a muppet
00:59:56 <pikhq_> Gregor: Just so long as you don't say it in Mandarin.
01:00:44 <oerjan> if he had said it in Mandarin, he'd been automatically disconnected already. or wait, that is if _we_ said it in Mandarin.
01:00:48 <quintopia> and dont ask them about their grass mud horses
01:00:59 <quintopia> when are you coming home we miss you
01:01:13 <Gregor> I'll be back on the 19th.
01:01:19 <pikhq_> In fact, I'll make it better for you.
01:02:17 <oerjan> also, http://brog.engrish.com/
01:02:29 <pikhq_> (~= "The great People's Republic of China is the best!")
01:02:54 <oerjan> wait, did i just ruin it again
01:03:03 -!- lambdabot has joined.
01:03:41 <oerjan> second item on that site says yes
01:04:38 -!- zzo38 has left.
01:04:56 <quintopia> @tell Gregor you dont have any messages
01:05:29 <elliott> Gregor: Did you know you can say
01:07:24 <shachaf> pikhq_: Do you know how good a game _Zork: Grand Inquisitor_ is?
01:07:44 <shachaf> pikhq_: You should find out!
01:08:54 <Patashu> I stumbled upon this page: http://www.mu6.com/catalan_numbers_growth.html Which seems to show a relationship between the numbers of pascal's triangle and the catalan numbers. However, with pascal's triangle going on forever and ever, I was wondering if you could find such a relationship between pascal's triangle and any series of numbers...
01:09:18 <elliott> Patashu: I have not even scrolled down that page and I can tell you it's the work of a crank.
01:09:43 <Patashu> http://www.mu6.com/images_catalan_numbers/catalan_pascal-208012.jpg picture in question
01:22:00 <lambdabot> Local time for elliott is Sat Jun 16 02:23:22
01:22:39 <Patashu> I'd like that for my own bot
01:22:57 <elliott> * Received a CTCP TIME from lambdabot
01:23:17 <lambdabot> Local time for Patashu is Sat Jun 16 11:23:09 2012
01:27:47 <oerjan> hm wp has formulas for catalan numbers based on binomials, so obviously there is _some_ connection
01:28:34 <oerjan> binom(2n,n) - binom(2n, n+1) for example
01:30:04 <elliott> i was waiting for oerjan to get on the case :P
01:31:45 <oerjan> well the picture _does_ seem to spread them a bit randomly around
01:42:25 <myndzi> oh what am i doing, i bet here's a great place to ask about parsers huh? :P
01:42:29 -!- david_werecat has quit (Read error: Connection reset by peer).
01:42:30 -!- davidwerecat has joined.
01:44:21 <myndzi> i'm trying to figure out what kinds of parser methods are available, which are best and what constraints they operate under
01:44:26 <myndzi> so i can read about one that suits me and implement it
01:45:25 <oerjan> LALR(1), packrat, monadic parsing combinators...
01:45:44 <elliott> ..., recursive descent, ...
01:47:32 <myndzi> haha yeah, i can get more specific
01:47:59 <myndzi> i just got sidetracked by wikipedia
01:48:43 <myndzi> so right, i have a sequence of either html tags or text values; i want to be able to create rules to match sections of the input sequence to identify specific text values with specific meanings and store that data
01:48:51 <myndzi> i don't know enough to know what's best suited to the job
01:48:55 <myndzi> google hasn't been helping much
01:52:01 <myndzi> what i'm trying to figure out is: which kind of parsing is most desirable for speed? what are the restrictions that i have to work in?
02:03:09 <myndzi> (looking at lalr now..)
02:03:29 <myndzi> seems about right i think
02:13:58 <shachaf> elliott: I heard kmc doesn't even own a television.
02:34:28 -!- Patashu has quit (Read error: Connection reset by peer).
02:36:44 -!- Patashu has joined.
02:43:30 <shachaf> kmc: Is it just me or is gcc's inline assembly syntax really badly documented?
02:45:03 <ion> shachaf: Yes.
02:50:14 <shachaf> I wonder how I would've found that out.
02:54:36 -!- oerjan has quit (Quit: leaving).
02:55:58 <kmc> huh that's not even in http://gcc.gnu.org/onlinedocs/gcc/Machine-Constraints.html#Machine-Constraints
02:56:21 <kmc> what's worse is that apparently the constraints for %r8 through %r16 simply don't exist
02:58:08 <kmc> myndzi: ask edwardk about packrat parsing
02:58:11 <kmc> if you can handle it
02:58:34 <kmc> er that's "%r8 through %r15"
02:59:48 <kmc> probably these don't exist because the gcc machine descriptions have not needed them, seeing as they aren't special to particular x86 instructions
03:00:42 <kmc> (whereas, for example, %rax and %rdx are special, because they implicitly hold the result of IMUL or RDTSC)
03:01:18 <kmc> but this is a poor excuse for a lack of uniformity
03:01:45 <kmc> this annoyed me when writing a generic syscall function for amd64 Linux
03:02:05 <kmc> ideally it would just be asm("syscall" : pile of constraints)
03:03:28 <kmc> and then, if the function is inlined, the compiler can arrange for the arguments to be already present in %r10 and %r8 and such, rather than moving them there
03:03:46 <kmc> did you all see http://blog.xen.org/index.php/2012/06/13/the-intel-sysret-privilege-escalation/
03:06:04 -!- pikhq_ has quit (Ping timeout: 246 seconds).
03:06:13 -!- pikhq has joined.
03:06:24 <kmc> yeah, good times
03:06:40 <shachaf> kmc: I was writing asm("syscall" : ...) for 32-bit x86, in fact.
03:06:59 <kmc> not asm("int $0x80")?
03:07:18 <shachaf> (I *was* writing asm("syscall"), in fact, but then I was reminded not to do that.)
03:08:14 <shachaf> Is syscall() the only assembly function you really need to write libc-less C in Linux?
03:08:42 <shachaf> I guess there are a some other parts of libc that you couldn't implement.
03:08:59 <shachaf> By the way, I found out that gdb allocates memory by calling malloc().
03:09:17 <shachaf> So if you p foo("abc") it'll malloc space for that string.
03:09:57 <kmc> it looks up the symbol "malloc" in the target process's address space and calls it??
03:10:07 <kmc> what if you don't have malloc, or just don't have symbols?
03:10:19 <shachaf> The symbol comes from libc, I guess.
03:10:32 <shachaf> If you don't have malloc then it can't do p foo("abc")
03:11:04 <shachaf> I was trying to figure out how gdb does syscalls by unmapping various pages and seeing if it could still manage it.
03:11:10 <shachaf> But I guess gdb doesn't directly do syscalls at all.
03:11:18 <kmc> shachaf: in my most recent libc-less project, I wrote syscall1 through syscall5, rdtsc, and mfence
03:11:41 <shachaf> I just wrote a varargs syscall.
03:11:52 <shachaf> Well, this was 32-bit, which I guess is a bit simpler.
03:12:06 <kmc> varargs :(
03:12:07 <shachaf> You can always load junk from the stack into the argument registers.
03:12:17 <kmc> i wanted the nice inlining behavior
03:12:17 <shachaf> kmc: Hey, I was implementing the spec here!
03:12:22 <kmc> because i was ricing the code
03:12:33 <elliott> kmc: You know what you'd do if you wanted syscall performance?
03:13:04 <shachaf> You know what you'd do if you wanted syscall performance?
03:13:27 <kmc> also i wrote asm for a specific use case of mmap, so i could load immediates into %r10, %r8, %r9 directly
03:13:27 <shachaf> I guess they have syscalls. But you don't *need* to use them.
03:13:56 <kmc> i,i iopl(2)
03:14:01 <shachaf> Did it turn out to be mmap2 instead of mmap, or is that just for i386?
03:14:08 <elliott> People used syscalls on MS-DOS.
03:14:18 <shachaf> elliott: But they didn't *need* to!
03:14:28 <kmc> shachaf: I used __NR_mmap
03:14:39 <kmc> that's a hack to allow >32-bit offsets on 32-bit linux, right?
03:14:50 <elliott> kmc: Can you write @ for me?
03:14:51 <shachaf> No, it's a hack because mmap has 6 arguments.
03:15:00 <shachaf> The old ABI only allowed 4 or 5 arguments or something.
03:15:12 <kmc> a lot of "numbered syscalls" reset to 1 on amd64 because the newer versions predate the amd64 ABI
03:15:25 <kmc> "The mmap2() system call provides the same interface as mmap(2), except that the final argument specifies the offset into the file in 4096-byte units (instead of bytes, as is done by mmap(2))."
03:15:45 <shachaf> Maybe it does both, I don't know.
03:16:00 <kmc> so how did the old ABI work with 5 arguments?
03:16:08 <shachaf> By passing a pointer to some memory.
03:17:28 <kmc> "to get to the other side"
03:18:55 <kmc> shachaf: Did you know there's a patron saint of drug smugglers? http://en.wikipedia.org/wiki/Jes%C3%BAs_Malverde
03:19:18 <kmc> (fake saint, kind of like the "Nobel Prize" in Economics)
03:19:46 <elliott> He is not recognized as a saint by the Roman Catholic Church.
03:20:10 <lambdabot> Gregor: You have 5 new messages. '/msg lambdabot @messages' to read them.
03:20:27 <shachaf> @ask Gregor What are all those messages?
03:20:37 <lambdabot> shachaf asked 10s ago: What are all those messages?
03:20:46 <Gregor> Mostly people saying "AGG UR BOT BORKED"
03:20:49 <shachaf> kmc: Are you ad rug smuggler?
03:20:59 <Gregor> bash: fork: Cannot allocate memory
03:21:15 <kmc> you got punked
03:21:41 <kmc> shachaf: not by trade
03:21:51 <kmc> I have transported illegal drugs through zones in which they are illegal
03:21:54 <kmc> which is everywhere
03:22:18 <pikhq> shachaf: syscall isn't the only function you'll need to write in C...
03:22:35 <pikhq> shachaf: It's just the only function that's really something you care about.
03:22:36 <shachaf> pikhq: It is to write the thing I was writing!
03:22:51 <shachaf> Yes, there are a bunch of others. kmc mentioned some of them and there are others.
03:22:52 <pikhq> I assume you don't care about setjmp, longjmp, et al.
03:23:11 <kmc> i also cheated by using a few GCC builtin functions
03:23:24 <kmc> memset, memcpy, strlen, fmodf, ia32_shufps
03:23:24 <shachaf> I wish setjmp had an equivalent of makecontext().
03:23:52 <shachaf> Is this considered bad C style? { int (*hd2i)(char) = hexdigit2int; ...hd2i()...hd2i()...; }
03:24:00 <pikhq> Ah, yes, another good example of something you won't care much about.
03:24:16 <shachaf> pikhq: Userspace threading is the future!
03:24:27 <kmc> these all (in my use case) expand to inline assembly
03:24:29 <shachaf> kmc: Did your network server do userspace threading?
03:24:39 <pikhq> shachaf: I think more accurately that's considered "C style you wouldn't even realise exists".
03:24:44 <kmc> no, it uses clone(2)
03:25:02 <shachaf> And you call yourself a ricer!
03:25:04 <pikhq> shachaf: Anyways. The thing taht sucks about *context most is they're relatively high overhead.
03:25:11 <kmc> shachaf: i wanted to use multiple cores
03:25:31 <shachaf> pikhq: I know! I spent a while optimizing a low-overhead version of them.
03:25:43 <shachaf> What I ended up with was very close to *jmp.
03:25:45 <elliott> <kmc> memset, memcpy, strlen, fmodf, ia32_shufps
03:25:50 <elliott> you don't need asm for most of those
03:25:58 <pikhq> I've just compared bsnes with libco in asm and libco using *context.
03:26:26 <pikhq> (bsnes cooperatively multitasks each CPU in its emulated systems)
03:26:36 <shachaf> pikhq: You don't actually need assembly, I think -- you can get away with *jmp if you set up your stacks carefully.
03:27:12 <pikhq> shachaf: You need asm to change the stack pointer to a newly allocated stack, though.
03:27:37 <pikhq> (I assume you're not messing with the jmpbuf, which you cannot do without relying on implementation details)
03:27:49 <kmc> 420 rely on implementation details everyday
03:28:06 <shachaf> pikhq: Yes, you have to rely on implementation details.
03:28:11 <pikhq> Well, I guess the asm would do the same.
03:28:15 <shachaf> It's not as if you're not -- right.
03:28:31 <pikhq> Though the asm would only depend on the defined system ABI, rather than whatever the hell the libc is doing.
03:28:32 <shachaf> On the other hand using the assembly yourself is probably nicer.
03:28:38 <pikhq> Which *might* change in different versions of the libc.
03:28:40 <kmc> shachaf: isn't it great how growing pot in your own backyard and then smoking it yourself in your own house counts as interstate commerce?
03:29:22 <pikhq> That is how a drug ban is constitutional.
03:29:25 <kmc> yep, Gonzales v. Raich
03:29:37 <pikhq> Because it's interstate commerce, and therefore Congress has the power to regulate it.
03:29:41 <pikhq> shachaf: Likewise.
03:29:44 <kmc> back in 1920 you needed a constitutional amendment to ban a drug
03:30:08 <kmc> but in the days since then, the supreme court has decided that "interstate commerce" means "absolutely fucking anything"
03:30:24 <kmc> so the federal government can pass laws pertaining to anything it likes
03:30:31 <kmc> which, honestly, might be a more reasonable system in this day and age
03:30:32 <shachaf> "The government also contended that consuming one's locally grown marijuana for medical purposes affects the interstate market of marijuana, and hence that the federal government may regulate—and prohibit—such consumption."
03:30:50 <elliott> [[The environmentalist group Community Rights Council also filed a brief for the government, fearing limitation of federal power would undermine their agenda.[4]]]
03:31:08 <kmc> but it's blatantly not what's in the constitution
03:31:17 <pikhq> Yes, they really think that friggin' *butterfly effects* on the interstate market count.
03:31:26 <shachaf> elliott: That's a long [[Wikipedia:Article title]!
03:31:29 <kmc> well they don't really think that
03:31:40 <kmc> they just want this law to be valid and so they invent a justification out of whole cloth
03:32:05 <pikhq> Okay, yes, they don't *think* it, they just claim that it does.
03:32:24 <shachaf> Is it the growing or consuming part or both?
03:36:29 <kmc> Roe v. Wade is another example of this
03:36:43 <kmc> i'm totally in favor of abortion rights, but the argument used by SCOTUS to get there is pretty fucking dodgy
03:37:12 -!- ion has quit (Ping timeout: 244 seconds).
03:37:49 <pikhq> Also look at some of the arguments used in favor of DOMA (don't think any have hit SCOTUS though)
03:38:58 <pikhq> Honestly, the precedents in place start making the UK look sane.
03:39:11 <pikhq> And the set of UK laws is no longer knowable!
03:39:12 <elliott> kmc: Whta was the dodgingness there? I'm not too familiar.
03:39:58 <kmc> elliott: they invented a constitutional "right to privacy" based on the due process clause of the 14th Amendment and a general gut feeling about the rest of the Constitution
03:40:25 <pikhq> elliott: They ruled that abortion bans are unconstitutional because it violates the right to privacy implied by the 9th amendment and due process stated by the 14th.
03:40:39 <kmc> i think Lawrence v. Texas is a similar argument
03:40:48 <elliott> well frankly the US constitution is pretty draconian :P
03:40:57 <kmc> attributing that to due process seems pretty circular
03:40:59 <elliott> so it's not surprising it's bent so much
03:41:12 <kmc> "you have this civil right because the constitution says we have to respect the civil rights you have"
03:41:29 <kmc> elliott: really? what do you think is draconian, about the constitution as written?
03:41:32 <pikhq> elliott: I should note that the 9th amendment only states that the listing of rights is not comprehensive.
03:41:38 <kmc> i think it just omits a lot of stuff that's important today
03:41:46 <elliott> kmc: draconian in terms of what the government is allowed to do/provide/etc.
03:42:01 <elliott> i guess that's an idiosyncratic use of "draconian"
03:42:11 <elliott> anyway obviously it's bent for good and bad causes and probably more the latter
03:42:18 <elliott> nex ttime take a tip from us
03:42:22 <elliott> don't write the bloody thing down
03:42:31 <kmc> ah SCOTUS "declined to adopt the district court's Ninth Amendment rationale"
03:42:39 <kmc> == elliott
03:43:10 <kmc> it's a weird idiom
03:43:29 <elliott> Historically, "No Act of Parliament can be unconstitutional, for the law of the land knows not the word or the idea."[3]
03:43:32 <kmc> i think the right wing in the USA kind of has a point about "judicial activism"
03:43:39 <kmc> but i think it's the lesser of two evils, in many if not most cases
03:43:54 <elliott> is judicial activism worse than the normal process of amending laws :P
03:44:08 <elliott> it's all kind of fucked up
03:44:43 <elliott> you guys should have just turned into 50 separate countries
03:45:04 <kmc> they tried that first
03:45:17 <kmc> http://en.wikipedia.org/wiki/Articles_of_Confederation
03:45:21 <pikhq> kmc: They also complain about legit uses of the courts as "judicial activism".
03:45:22 <kmc> it didn't work
03:45:47 <elliott> kmc: it's not my fault you guys are incompetent
03:45:49 <kmc> aiui becuase nobody could force the states to pony up some coin
03:45:53 <kmc> we're trying
03:46:01 <pikhq> To the point where I've heard that merely *knocking down laws* is "judicial activism".
03:46:02 <kmc> we could just kick the South out of the country
03:46:08 <kmc> that would solve many if not most problems
03:46:24 <elliott> anyway this is what happens when you stray from the queen and god
03:46:36 <elliott> hope you take this lesson on board in your next reincarnation
03:46:45 <pikhq> I'm of the opinion that the US would function much better as a few different countries.
03:46:50 <kmc> pikhq: so these people reject Marbury v. Madison?
03:46:52 <pikhq> Perhaps one for each major reason.
03:47:01 <elliott> kmc: do you expect they even know what that is
03:47:12 <pikhq> kmc: They would if they knew it!
03:47:13 <elliott> anyway circlejerking about some imagined strawman right-winger is tedious
03:47:20 <elliott> there's too many real ones to bother doing that
03:47:21 <kmc> == elliott
03:47:33 <kmc> circlejerking is tedious
03:48:25 <elliott> http://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/Royal_Coat_of_Arms_of_the_United_Kingdom_%28HM_Government%29.svg/743px-Royal_Coat_of_Arms_of_the_United_Kingdom_%28HM_Government%29.svg.png
03:48:31 <elliott> do you guys have anything this trippy
03:48:46 <elliott> (i could feel it about to happen)
03:48:59 <kmc> circlejerking is tedious, have sex or go home
03:49:02 -!- MDude has changed nick to MDoze.
03:49:03 <pikhq> http://en.wikipedia.org/wiki/File:US_Great_Seal_Reverse.svg Well, there's the reverse of the Great Seal, I guess.
03:49:26 <elliott> take a look at the lions in the middle
03:49:43 <kmc> http://en.wikipedia.org/wiki/File:Great_Seal_of_United_States.jpg
03:50:03 <elliott> pikhq: that thing has always struck me as inviting conspiracy theories
03:50:17 <pikhq> elliott: It does just that.
03:50:18 <kmc> original trolls
03:50:43 <pikhq> Especially the "Novus Ordo Seclorum", which can be interpreted by people not good at Latin as "New world order".
03:57:02 <shachaf> "For me Gentoo is perfect. For you, perhaps not. What is really strage about Gentoo is this: people who like it or dislike it keep constantly refering to Gentoo-when in reality we are refering to Linux. With othert distro's when you have problems they are problems with Redhat or with SuSE or with Lindows. But if you have problems with Gentoo you have problems with Linux. That's because with Gentoo you have returned to the source."
03:59:12 <pikhq> shachaf: Such a bad thing.
03:59:20 <pikhq> They'd almost have a point if it were Slackware.
04:33:38 -!- zzo38 has joined.
04:35:03 -!- MDoze has quit (Ping timeout: 252 seconds).
04:44:15 <zzo38> Is there any audio format that has a header specifying sample rate and stereo but does not include file idenfication or length (so that length is based on the length of the file instead)?
04:45:07 <pikhq> No, but honestly there should be.
04:45:50 <zzo38> I could invent one and suggest supporting in SoX; it should be not too complicated to invent
04:46:35 <shachaf> zzo38: Aren't there streaming audio formats that are like that?
04:48:19 <zzo38> shachaf: Maybe; I don't know. I also don't know if SoX supports them.
04:53:45 <zzo38> Address 0x00: bit0 and bit1 = number of channels (1, 2, 4, or 6); bit2 and bit3 = bits (4, 8, 16, or 32); bit4 = signed/unsigned; bit5 = endian; bit6 and bit7 = unused (set to zero).
04:53:53 <zzo38> Address 0x01: track number.
04:54:04 <zzo38> Address 0x02 and 0x03: video syncrhonization number or album number.
04:54:14 <zzo38> Address 0x04 to 0x07: sample rate in decihertz.
04:54:27 <zzo38> The rest of the data: raw uncompressed audio data.
04:55:49 <kmc> don't pack bits like that
04:56:18 <kmc> cause it's annoying to encode and decode
04:56:35 <kmc> ideally the header would be a sequence of numbers all the same size
04:56:51 <zzo38> It isn't annoying to encode and decode
04:56:58 <kmc> it's more annoying than not doing it
04:57:09 <kmc> also you might want a magic number at the beginning
04:57:16 <kmc> also it's kind of bad to design a format without any extension mechanism
04:57:20 <kmc> no matter how trivial it seems now
04:57:32 <zzo38> My whole point is not to have a magic number at the beginning or any length specifier
04:57:35 <kmc> for example it's not ridiculous to have more than 7 channels
04:57:44 <kmc> magic number has nothing to do with a length specifier
04:57:48 <kmc> why do you want no magic number
04:57:53 <kmc> it just helps identify the file type
04:58:19 <kmc> wait, you aren't even encoding the number of channels
04:58:22 <zzo38> And there *is* an extension mechanism; there are two unused bits.
04:58:29 <kmc> that's... not what i mean, at all
04:58:52 <kmc> is there really no standard container format which is suitable to express this information
04:59:03 <shachaf> mv file file.zzo # extension mechanism
04:59:20 <zzo38> As far as I know all of them require the length in the header too, which is one thing I am trying to avoid
04:59:33 <kmc> what do people use for streaming audio then?
04:59:35 <zzo38> Since the data may be piped from another program which does not yet know the length
04:59:38 <kmc> i know there are mp3 streams of indefinite length
04:59:50 <kmc> and mpeg transport streams generally
04:59:50 <pikhq> kmc: He's wanting raw audio, though...
04:59:58 <kmc> well anyway
05:00:03 <kmc> even if you roll your own format
05:00:10 <kmc> don't do something silly like this 1,2,4,6 enumeration
05:00:20 <shachaf> Apparently .wav doesn't have a file length.
05:00:31 <kmc> the header should be an array of 16-bit little endian numbers
05:00:33 <kmc> for simplicity
05:00:37 <shachaf> It has chunks which have lengths, but you can have as many of them as you want.
05:00:41 <zzo38> shachaf: The data itself doesn't but it is in a RIFF container which does include length
05:00:44 <kmc> it should start with a magic number, a version number, and the length of the header itself
05:01:39 <kmc> this way new headers can have more fields, and yet old programs will just ignore those fields
05:01:57 <pikhq> shachaf: A RIFF file is a single RIFF chunk that can contain chunks.
05:02:10 <kmc> this is something almost every format should do, imo
05:02:10 <zzo38> I don't want to include such redundant things as magic number and the length of the header itself. I might change it but I don't want to add version number either; I want to keep the four byte sample rate and the rest of the header also being exactly four bytes.
05:02:12 <kmc> but like i'm no expert
05:02:26 <kmc> zzo38: from where do you get all these arbitrary constraints?
05:02:44 <pikhq> zzo38: The magic number thing is fairly standard UNIX convention.
05:02:46 <kmc> i mean if you're designing "format to satisfy zzo38's particular aesthetic requirements" then go ahead
05:02:51 <zzo38> kmc: It is going to become too complicated otherwise
05:03:01 <kmc> if you're designing "a good format, which won't pointlessly waste programmer time in the future" then please do not go ahead
05:03:31 <kmc> it's "too complicated" to have channel number be its own field instead of some wacky bit-packed enumeration?
05:03:42 <kmc> i don't understand
05:03:44 <elliott> kmc: why are you arguing with zzo38
05:03:49 <kmc> this seems like absolutely terrible engineering to me
05:03:50 <pikhq> zzo38: Magic number makes things simpler.
05:03:53 <elliott> what benefit are you trying to extract from this energy exertion
05:04:00 <zzo38> I do not want extra metadata. (The reason I included the track number is just because there is room left over; I want eight bytes header so that it will be aligned; instead of using seven bytes or something like that)
05:04:02 <shachaf> elliott: kmc is addicted to IRC arguments.
05:04:04 <kmc> not bit-packing also makes things simpler
05:04:04 <elliott> alternatively what harm are you trying to prevent
05:04:17 <kmc> zzo38: 16 or 32 byte header would also be aligned
05:04:22 <kmc> shachaf: yeah :(
05:04:28 <kmc> i don't know
05:04:29 <zzo38> kmc: Yes it would be, but I don't want it too long
05:04:30 <elliott> i will argue with you if it makes my questions get answered
05:04:35 <kmc> 16 bytes is "too long"?
05:04:36 <elliott> i'm happy to perform this service
05:04:40 <kmc> what fucking planet are you from
05:04:49 <kmc> are you planning to store your audio files on punched cards?
05:05:02 <pikhq> zzo38: It seems what you want is an analog of PNM for audio.
05:05:02 <kmc> somehow real formats get designed with these flaws
05:05:04 <shachaf> kmc: You should charge people for arguing with them.
05:05:06 <kmc> somebody must be responsible
05:05:14 <kmc> somebody must have had the opportunity to stop it
05:05:17 <elliott> <elliott> kmc: why are you arguing with zzo38 <elliott> what benefit are you trying to extract from this energy exertion <elliott> alternatively what harm are you trying to prevent
05:05:22 <shachaf> pikhq: PNM has a magic header!
05:05:22 <pikhq> zzo38: Magic number is reasonable for this.
05:05:27 <pikhq> shachaf: Yes, I know.
05:05:33 <kmc> it's unlikely zzo38's format will catch on, but I think i have some minimal responsibility to try to stop this madness
05:05:39 <zzo38> No of course I will not store them on punched cards; the header is small compared to the audio itself which would be already too large to store on punched cards
05:05:52 <elliott> kmc: don't you think the world would be less interesting without zzo38's designs in them
05:05:53 <kmc> zzo38: you really have no sense of irony do you
05:05:58 <kmc> elliott: it's true
05:06:08 <kmc> i mean i joined this channel largely to argue with crackpots
05:06:13 <zzo38> kmc: Well, you should have free of speech to say what you like and argue what you like, whether some people agree/disagree
05:06:38 <elliott> unfortunately i think there is only one active crackpot in the channel
05:06:41 <shachaf> Free as in free of speech.
05:06:54 <kmc> shacrackpot
05:07:15 <elliott> kmc: anyway instead of arguing with zzo38 implement @ for me
05:07:24 <kmc> it makes sense that esoteric languages would attract the "zomg your program uses 1 MB of RAM" people
05:07:36 <zzo38> I intend for one thing the format to be use as is pipe from one program to another if some header information is still needed (such as sample rate and so on); not to store in a file, although it still can be stored in a file if wanted
05:07:40 <shachaf> kmc: Since when is this channel about esoteric languages?
05:07:54 <kmc> but it makes me really super irrationally angry when this wanking over unrealistic size constraints crosses over into practical non-esoteric designs
05:08:13 <kmc> zzo38: magic number and header size are still important there
05:08:16 <elliott> kmc: are you ever not annoyed at something
05:08:26 <kmc> again, header size preserves compatibility between versions of the format
05:08:27 <shachaf> I wonder whether elliott has me on /ignore again.
05:08:42 <kmc> put another way, are you certain you've just now thought of every field you will ever want
05:09:13 <kmc> so, usefulness of my argument aside
05:09:19 <kmc> do other people agree with what i'm saying
05:09:20 <kmc> or am i crazy
05:09:37 <elliott> i would personally design it the way you suggest
05:09:44 <elliott> i don't think zzo38 is under any particular obligation to
05:09:48 <elliott> and he can design whatever format he wants
05:09:52 <zzo38> Some of the fields I have I think are not even needed
05:10:07 <kmc> right i don't think zzo38 is under any "obligation" either
05:10:15 <kmc> zzo38 is free to design a bad format if they like
05:10:26 <elliott> but really it's pointless arguing with someone who clearly has a different value system for these goals than you here
05:10:30 <kmc> but this started with the question
05:10:32 <kmc> <zzo38> Is this good?
05:10:36 <kmc> and my answer is
05:10:41 <kmc> so that's that
05:11:20 <zzo38> There could be three bytes for indicating number of channels (rather than enumeration) and signed/unsigned and endian and number of bits and then one more for video synchronization number or track number.
05:11:54 <kmc> "When the going gets tough, you don't want a criminal lawyer, you want a *criminal* laywer, know what I'm saying?"
05:12:10 <zzo38> The format is not meant to change
05:12:14 <elliott> kmc: why haven't you coded any @ yet
05:14:23 <pikhq> kmc: Sometimes, I do get offended at programs using 1 MiB of RAM.
05:14:36 <pikhq> ... When that's actually only doable via bad code.
05:14:49 <pikhq> /bin/cat shouldn't use 1 MiB.
05:15:16 <zzo38> pikhq: I agree it shouldn't require that much RAM to run
05:16:01 <pikhq> shachaf: I doubt it.
05:16:15 <pikhq> shachaf: Just using it as an example of something that would be bloated if it were using that much.
05:16:49 <kmc> mightn't cat have a big buffer?
05:17:22 <shachaf> cat on Linux can probably just use something like splice, can't it?
05:17:24 <zzo38> Maybe this way better: Address 0x00 = magic number; Address 0x01 = four bits for number of channels (1 to 16), four bits for number of bits (1, 2, 4, 8, 16, 32, ..., 32768); Address 0x02 = one bit for endian, one bit for signed/unsigned, rest unused should be set to zero; Address 0x03 = track number or video synchronization number; Address 0x04 to 0x07 = sample rate in decihertz. Is this way better? Now it has magic number
05:17:56 <elliott> shachaf: Doesn't splice only work between files?
05:18:53 <shachaf> splice() moves data between two file descriptors without copying between kernel address space and user address space. It transfers up to len bytes of data from the file descriptor fd_in to the file descriptor fd_out, where one of the descriptors must refer to a pipe.
05:19:18 <zzo38> If you want extensions for new version, make the high six bits at address 0x02 to be the number of additional four-byte pieces of heading.
05:19:20 <elliott> Right, well, I knew it was stupid somehow.
05:21:59 <zzo38> Is this way better now?
05:26:00 <zzo38> Actually I think magic number really is not needed. Let's address 0x00 = track number or video synchronization number; address 0x01 = four bits for number of channels (1 to 16), four bits for number of bits (1, 2, 4, 8, 16, 32, ..., 32768); Address 0x02 = one bit for endian, one bit for signed/unsigned, rest unused should be set to zero (reserved for future use); address 0x03 = additional header (after sample rate)
05:26:43 <zzo38> Now I think it is better.
05:29:47 <zzo38> Now you can have more than six channels
05:31:17 <shachaf> zzo38: Why are you worrying about the number of header bits when you'll be sending an uncompressed audio stream over the pipe?
05:33:44 <zzo38> shachaf: I just want to omit redundancy
05:37:05 <zzo38> The data can now be from 1 to 16 channels with from 1 to 32768 bits for the data, and there is still some space left over for future expansion
05:38:47 <pikhq> You're worried about bits in the header.
05:38:47 <kmc> nice arrow bro
05:38:52 <pikhq> I have trillions of them.
05:41:40 <zzo38> If the sample rate is set to zero then it means that there is no setting for the sample rate
05:53:17 -!- calamari has quit (Quit: Leaving).
09:44:41 -!- esowiki has joined.
09:44:43 -!- glogbot has joined.
09:44:43 -!- glogbackup has left.
09:44:45 -!- esowiki has joined.
09:44:45 -!- EgoBot has joined.
09:44:45 -!- esowiki has joined.
09:44:48 <fizzie> The sample audio data compression format is, as far as I know, not really documented anywhere. But if you're writing files, you can just opt to not use it; there's a flag in the sample header that says compressed/not. (I've written my decompression code -- because real Impulse Tracker files *do* use it -- based on the code in libmikmod.)
09:46:26 <zzo38> I have seen tat yes, you can use uncompressed samples. And I am doing writing; I am trying to make "ITMCK", like "PPMCK" and "XPMCK" and so on but for .IT output
09:52:12 <zzo38> (I suppose if the user tells it to load a "IMPS" sample file, it can simply load that and not worry about compression)
09:59:18 <zzo38> Why doesn't the volume/panning column support tremolo?
10:02:07 -!- Phantom_Hoover has joined.
10:03:59 <fizzie> That's a question probably only whoever wrote it can answer. (It does have those effects for the effect column.)
10:05:31 <fizzie> (There's even some unused values for the volume/panning column it could use.)
10:09:32 <zzo38> Yes I did see that
10:13:06 -!- sebbu2 has joined.
10:13:07 -!- sebbu2 has quit (Changing host).
10:13:07 -!- sebbu2 has joined.
10:16:12 -!- sebbu has quit (Ping timeout: 265 seconds).
10:21:19 -!- sebbu2 has changed nick to sebbu.
10:23:18 -!- asiekierka has joined.
10:25:51 -!- zzo38 has quit (Remote host closed the connection).
10:44:01 -!- azaq23 has joined.
11:05:26 -!- derdon has quit (Remote host closed the connection).
11:05:54 -!- derdon has joined.
11:10:08 -!- derdon has quit (Ping timeout: 240 seconds).
11:13:33 -!- augur has quit (Remote host closed the connection).
11:16:52 -!- augur has joined.
11:26:42 -!- TodPunk has quit (Read error: Connection reset by peer).
11:26:57 -!- TodPunk has joined.
11:39:32 -!- john_metcalf has joined.
11:44:18 -!- john_metcalf has left.
11:44:23 -!- john_metcalf has joined.
12:03:14 -!- zzo38 has joined.
12:16:30 <zzo38> How to calculate what tone-portamento speed is required for a specified note in a specified number of frames?
12:29:35 -!- sebbu2 has joined.
12:29:36 -!- sebbu2 has quit (Changing host).
12:29:36 -!- sebbu2 has joined.
12:30:14 -!- sebbu has quit (Ping timeout: 246 seconds).
13:04:40 -!- david_werecat has joined.
14:37:24 -!- esowiki has joined.
14:37:26 -!- glogbot has joined.
14:37:26 -!- glogbackup has left.
14:37:27 -!- HackEgo has joined.
14:37:28 -!- esowiki has joined.
14:37:29 -!- EgoBot has joined.
14:37:29 -!- esowiki has joined.
14:44:38 -!- nooga has joined.
14:54:53 -!- nooga_ has joined.
14:57:11 -!- nooga has quit (Ping timeout: 245 seconds).
15:01:41 -!- Patashu has quit (Ping timeout: 248 seconds).
15:33:45 -!- azaq23 has quit (Remote host closed the connection).
15:34:12 -!- ais523 has joined.
15:46:57 -!- Gregor has joined.
16:03:17 -!- aloril has quit (Ping timeout: 260 seconds).
16:14:14 -!- nooga_ has quit (Ping timeout: 246 seconds).
16:16:11 -!- aloril has joined.
16:17:35 -!- david_werecat has quit (Ping timeout: 252 seconds).
16:26:09 -!- aloril has quit (Ping timeout: 260 seconds).
16:27:59 -!- function has changed nick to constant.
16:28:14 -!- variable has changed nick to Guest24216.
16:28:38 -!- constant has changed nick to variable.
16:38:52 -!- aloril has joined.
16:44:01 <HackEgo> 62) <Oranjer> oohhh <Oranjer> ha <Oranjer> heh <madbrain> and what are your other characteristics? <Oranjer> oh, many, madbrain <Oranjer> but it's hardly worth it to go on with listing that list here
16:44:43 <HackEgo> 569) <Gregor> Phantom_Hoover: Sort of a monadic human centipede.
16:44:43 <HackEgo> 825) <elliott> i just whacked it <monqy> whacking is fine
16:44:43 <HackEgo> 82) <MissPiggy> bi is like sqrt(2)/2 * straight + i * sqrt(2)/2 * gay
16:44:43 <HackEgo> 403) <oerjan> i never meta turing. he died before i was born.
16:45:34 <itidus21> thems some high quality quotes
16:45:45 -!- aloril has quit (Ping timeout: 260 seconds).
16:52:35 -!- Nisstyre has quit (Quit: Leaving).
16:56:09 -!- Nisstyre has joined.
16:58:11 -!- aloril has joined.
17:07:52 -!- david_werecat has joined.
17:09:26 -!- pikhq_ has joined.
17:12:10 -!- pikhq has quit (Ping timeout: 260 seconds).
17:25:24 <fizzie> What a good selection.
17:29:16 <itidus21> i don't like 569 a lot but thats probably because i'm not such a big haskell fan
17:29:32 <itidus21> but it's got substance, even if i can't appreciate that substance
17:31:39 <elliott> 569 could use more context
17:33:43 <itidus21> so i'm getting more used to the idea i am actually mentally ill
17:37:17 <oklopol> take a mentally pill for your mentally ill and you mentally get better will, i'm sure
17:38:12 <fizzie> I am at a social happening, and it's weird.
17:39:01 <fizzie> A spontaneousish thing.
17:39:18 <fizzie> An "after-party" of sorts. You know, that sort of thing.
17:39:46 <nortti> I am just sitting home on irc and programming
17:39:48 <itidus21> i tend to prefer the food to the drink
17:39:49 -!- Taneb has joined.
17:39:59 -!- asiekierka has quit (Remote host closed the connection).
17:40:04 <Taneb> How odd, I'm alive
17:41:45 <itidus21> those mini spinach quiche finger foods
17:41:57 <fizzie> (Actually, it's tangentially related to this "ALT" thing that I've mentioned.)
17:42:04 <Taneb> quiche isn't finger food
17:42:35 <itidus21> is there an image equivalent of @google?
17:43:02 <lambdabot> Title: imagehat studio - a web design company just outside of madison, wisconsin
17:43:39 <itidus21> http://metroespresso.com.au/wp-content/uploads/2012/04/Salmon-and-Leek-Mini-Quiche.jpg
17:44:13 <itidus21> this is what i have in mind approximately
17:45:06 <oklopol> i'm gonna go exchange money for goods
17:45:23 <itidus21> http://www.gourmetdelish.com.au/images/Bacon%20and%20Egg%20Finger%20food.jpg
17:47:41 <itidus21> for every day spent hungry, tired, lost, depressed.. may there be a day of delighting in finger foods
17:55:21 -!- azaq23 has joined.
18:11:31 -!- DHeadshot has quit (Ping timeout: 244 seconds).
18:13:09 -!- KingOfKarlsruhe has joined.
18:18:16 -!- oerjan has joined.
18:22:37 <oerjan> DMM seems to be writing about half of the comments on a postcard these days.
18:23:27 <oerjan> also http://www.irregularwebcomic.net/197.html explains how he has so much time, i think
18:23:45 <oerjan> (even he uses it all up)
18:24:59 -!- oklopol has quit (Read error: Connection reset by peer).
18:30:41 -!- MDude has quit (Ping timeout: 252 seconds).
18:37:19 -!- DHeadshot has joined.
18:43:28 -!- monqy has joined.
18:44:44 <lambdabot> monqy: You have 15 new messages. '/msg lambdabot @messages' to read them.
18:45:29 <monqy> 11:45:19 <lambdabot> Plugin `tell' failed with: thread killed
18:50:22 <nortti> "Only wimps use tape backup; real men just upload their important stuff on ftp and let rest of the world mirror it" --Linus Torvalds
18:51:57 <Taneb> Where wimps == people with no friends
18:53:03 <zzo38> What kind of physical media backup work best?
18:53:23 <Taneb> Expensive and slow, though
18:54:45 <ion> zzo38: Depends on your needs. I’ve backed up some files as QR code on paper with a laser printer.
18:54:45 <oerjan> clay is also fireproof, i think
18:54:49 <zzo38> I have access to a fireproof safe.
18:55:07 <pikhq_> zzo38: Currently, several hard drives.
18:55:17 <oerjan> (fire actually makes it _more_ long-lived)
18:55:48 <pikhq_> And yes, I guess you could glaze in QR codes. :)
18:55:52 <zzo38> pikhq_: All of my data will probably not even fill one hard drive
18:56:07 <pikhq_> zzo38: The "several" bit is for redundancy.
18:56:21 <ion> Just put a “0.” in front of the number representing your entire data and put a mark at that exact point on a wooden plank.
18:56:39 <zzo38> How many are needed for good enough redundancy?
18:57:28 <zzo38> ion: I think that is impossible; no tools are exact enough, the wood can rot, and Heisenberg's uncertainty principle also gets in the way.
18:57:45 <ion> lim_{redundancy→good} numDisks = ∞
18:57:53 <zzo38> Either that or you would need big wood
18:58:00 <ion> zzo38: OH, REALLY?
18:59:33 <nortti> "In short: just say NO TO DRUGS, and maybe you won't end up like the Hurd people."
19:07:55 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.88.2 [Firefox 13.0/20120601045813]).