←2007-12-12 2007-12-13 2007-12-14→ ↑2007 ↑all
00:42:19 -!- Slereah has quit (Read error: 110 (Connection timed out)).
00:45:51 -!- ehird` has quit (Remote closed the connection).
01:07:03 -!- Slereah has joined.
01:43:54 -!- poiuy_qwert has joined.
02:56:18 -!- GreaseMonkey has joined.
03:27:43 -!- faxathisia has quit ("Leaving").
03:47:34 <pikhq> oerjan: http://b.nomic.net/index.php/Potential_Gamestates
03:48:09 <pikhq> And that's incomplete.
04:00:19 <oerjan> I like the conclusion :D
04:03:40 <pikhq> A state of emergency is defined by the rules of B Nomic.
04:04:16 <pikhq> And, best of all, it's defined by players panicing.
04:08:10 <oerjan> ah, that would be the one rule you didn't repeal?
04:08:13 <pikhq> Yes.
04:08:43 <pikhq> And the mere *existence* of that repeal is debatable.
04:08:57 <pikhq> If B does not have a Chancellor, B may or may not have a ruleset.
04:10:09 <pikhq> Currently, the gamestates are being rectified. . .
04:10:50 <pikhq> If my repeal happened, then the refresh proposal will reset stuff. If it didn't happen, then if there is a Chancellor, he resets stuff. Otherwise, the refresh proposal does so.
04:37:33 <RodgerTheGreat> oerjan:
04:37:33 <RodgerTheGreat> i say we are in need of something like lambdabot's @quote command <- is this implying you felt that comment deserved to be saved for posterity?
04:37:53 <oerjan> yep
04:38:01 <RodgerTheGreat> thanks. :D
05:13:35 -!- RodgerTheGreat has quit (calvino.freenode.net irc.freenode.net).
05:13:36 -!- sekhmet has quit (calvino.freenode.net irc.freenode.net).
05:13:36 -!- Possum has quit (calvino.freenode.net irc.freenode.net).
05:13:49 -!- RodgerTheGreat has joined.
05:13:49 -!- sekhmet has joined.
05:13:49 -!- Possum has joined.
05:32:05 -!- Sgeo has quit (Connection timed out).
06:25:18 -!- oerjan has quit ("leaving").
06:38:25 -!- immibis has joined.
06:39:13 <oklopol> quotes? hmm, i could add something for that, but that'd require me to get ololobot multinetworkous first
06:39:30 <oklopol> goneeee ->
06:41:28 -!- immibis_ has joined.
06:50:18 -!- poiuy_qwert has quit.
06:54:36 -!- immibis___ has joined.
06:54:56 -!- immibis has quit (Nick collision from services.).
06:54:58 -!- immibis_ has quit (Nick collision from services.).
06:55:01 -!- immibis___ has changed nick to immibis.
07:01:21 * immibis didn't see nything wrong with the names "Worse Than Failure" or "The Daily Worse Than Failure"
07:39:35 -!- immibis_ has joined.
07:55:45 -!- immibis has quit (Read error: 110 (Connection timed out)).
07:58:48 -!- immibis_ has changed nick to immibis.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:06:40 -!- immibis has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. When the chips are down, well, the ).
08:22:14 -!- ihope_ has quit (Read error: 104 (Connection reset by peer)).
08:53:57 -!- GreaseMonkey has quit ("Who keeps reincarnating sliced bread?!").
09:40:12 -!- Tritonio_ has quit (Remote closed the connection).
10:42:24 -!- complexity has joined.
10:42:47 <complexity> does anyone knows where I can find the grammar for brainfuck ?
10:55:35 <oklopol> esolang.org
10:55:39 <oklopol> and check the wiki
10:55:48 <oklopol> uhh
10:55:49 <oklopol> esolangs
11:07:28 <oklopol> okay
11:07:32 <oklopol> i officially own :O
11:08:09 <oklopol> wrote a program to generate random melodies... after changing random_choice to random.choice, it worked perfectly 8|
11:08:15 <dbc> Which grammar?
11:08:18 <oklopol> i have like 20 functions...
11:08:23 <oklopol> well, python ;)
11:08:49 <oklopol> okay, i don't own, just proved once again you can't make mistakes in python
11:09:33 <oklopol> melodies currently only use "good notes", or the notes constituting current chord
11:09:49 <oklopol> and they suck pretty bad
11:10:02 <oklopol> but you can hear the chord anyways, it's kinda neat :P
11:13:03 <dbc> If you want a context-free grammar, one is S -> SS | '[' S ']' | <any character but '[' or ']'> | <empty string>
11:13:29 <oklopol> hmm?
11:13:41 <dbc> "does anyone knows where I can find the grammar for brainfuck ?"
11:13:48 <oklopol> oh
11:13:53 <oklopol> i though that was for me
11:13:54 <oklopol> :D
11:14:01 <dbc> Nope.
11:14:06 <oklopol> the earlier one too was for the earlier request then
11:14:21 <oklopol> i thought it was a weird way to ask "what language did you write it in" :D
11:14:25 <dbc> Nope.
11:14:44 <dbc> Sorry :)
11:14:58 <oklopol> "nope"? don't you mean "exactly"?
11:15:10 <oklopol> ooooh
11:15:19 <oklopol> ah, the ambiguities of natural language <3
11:15:37 <oklopol> i need to eat something, anyone wanna hear the chaos my prog currently creates? :P
11:15:41 <dbc> Sure.
11:15:55 <oklopol> that was one weird sentence, but wait, i'll upload
11:16:05 <oklopol> the code, that is, can you run python?
11:16:16 <oklopol> or, i could make it output to a file
11:16:21 <oklopol> can you play raw data? :P
11:16:33 <dbc> Yeah. I'll get the code now and run it later if that's okay.
11:17:21 <oklopol> also, it's played with a broken sine wave, since the player is also written by me, and i was a bit lazy with the design, so it became hard to get adjacent waves to start smoothly.
11:17:35 <oklopol> basically meaning there are clicks, and the overall sound is not good.
11:17:44 <oklopol> but, anyway, i'll upload
11:18:21 <oklopol> http://www.vjn.fi/pb/p615613433.txt
11:19:02 <dbc> Thanks. See you later.
11:19:04 <oklopol> (commenting on the code isn't necessary, since i know everything that's wrong with it and don't care what people think. using python, this just happens to be the easiest way to pass programs on.)
11:19:07 <oklopol> yarrrr
11:19:13 <oklopol> i'll go now, indeed ->
11:21:58 <dbc> actually I have another few minutes. And that seems to work smoothly.
11:23:00 <dbc> What all would need changing to get a different chord sequence?
11:23:06 <dbc> (of different length i.e.)
11:36:47 <oklopol> hmm
11:36:52 <oklopol> see rand_chord_ptrn
11:36:58 <oklopol> rand_rhythm_ptrn
11:37:02 <oklopol> rand_melody_ptrn
11:37:10 <oklopol> the last one is where suckyness comes along
11:37:48 <oklopol> i had written a hundred lines of code up to that point, so was beginning to lose confidence on it working as i wanted :D
11:38:18 <oklopol> so... it just randomizes the melody completely, using the "good notes", or the notes best fitting for the current chord
11:38:39 <dbc> Ah.
11:39:04 <oklopol> the chords are tuples, (base_note in [0..11], a number indicating the type of chord (0 for minor, 1 for major))
11:39:59 <oklopol> if i make a better one, i'll not rely on chords and "good notes", but instead just calculate what notes fit best, and which chords fit best
11:40:20 <oklopol> less "built-in", more fun! (and prolly much much more chaotic :\)
11:41:05 -!- jix has joined.
11:42:37 <oklopol> dbc: what do you mean by "smoothly"? do you hear the clicks between notes, and does the sound "break"... not sure what the correct term is...
11:51:34 <complexity> given a brainfuck program how can one find whether it is syntactically correct or not ?
11:52:11 <complexity> I guess the only place one has to look is the while loops... other than that I guess all other operations are valid.. Am I missing somehting ?
11:56:28 -!- Slereah_ has joined.
11:59:29 -!- jix has quit (Read error: 110 (Connection timed out)).
12:00:38 <oklopol> complexity: CORRECT
12:00:45 <oklopol> WHOOPS
12:14:30 -!- Slereah has quit (Read error: 110 (Connection timed out)).
13:12:06 -!- piksi has joined.
13:13:15 <piksi> Please, play paranoid in a graphical form
13:20:55 <oklopol> ascii form enough?
13:21:24 <oklopol> i shall attempt
13:22:05 <oklopol> 000.000.00.5.7.A.C.5.7.A.C * 4
13:22:28 <oklopol> where . separates two notes, and a note is the number of steps upwards from E
13:22:43 <oklopol> with A... being the numbers 10...
13:22:50 <oklopol> then, verse
13:23:03 <oklopol> C. * 16
13:23:06 <oklopol> A. * 16
13:23:43 <oklopol> F.AAA.C.___.
13:23:52 <oklopol> sorry, failure there :)
13:24:01 <oklopol> A. * 8 in fact
13:24:09 <oklopol> then, chorus
13:24:34 <oklopol> CCCCCCCC.8888.AAAA.
13:24:36 <oklopol> basically.
13:24:47 <oklopol> the rest is repetition, plus a guitar solo, which is prolly improvised
13:24:52 <oklopol> have fun listening
13:25:43 <oklopol> also, irp in #irp
13:35:51 <oklopol> i don't really get why that piece is popular, i've heard small children write better melodies :\
14:02:22 -!- miiro has joined.
14:02:44 -!- tejeez has joined.
14:11:01 -!- jix has joined.
14:21:38 <dbc> I hear the clicks, yes. I don't mind them though :)
14:21:46 <oklopol> :D
14:22:02 <oklopol> well, good, they will go away once i make a better system for the waves
14:22:21 <dbc> Cool. I'm guessing a more complex timbre is in your plans?
14:22:24 <oklopol> currently, waves save information about their actual byte representations themselves
14:23:14 <oklopol> so, they save their base, and their amplitude, and actually themselves apply them to the bytes they produce
14:23:36 <oklopol> the problem is, when i start adding waves, i need to remove both those, add, and put them back
14:23:46 <oklopol> so... the routines have become quite cluttered.
14:24:09 <oklopol> now imagine adding something to make waves start where the last on ended... uhhh the pain
14:25:12 <oklopol> so, i was thinking, i'll just save the function, and ask for it's derivative (optionally), if one is given, it's a trivial task approximating the perfect base for the next wave, and the perfect phase to start from (by newton's method for example)
14:25:20 <oklopol> base
14:25:38 <oklopol> means what value the wave flunctuates around'
14:25:41 <dbc> Hm.
14:25:42 <oklopol> flunctuates?
14:25:46 <dbc> Fluctuates.
14:25:49 <oklopol> ah.
14:25:51 <dbc> They don't fluctuate around zero?
14:25:59 <oklopol> well, the sine waves do
14:26:08 <oklopol> but the actual range is 0...255
14:26:14 <dbc> Ah. I didn't check what other kinds you had.
14:26:27 <oklopol> but, as you may know, the sound is the same no matter what the base is
14:26:43 <oklopol> so... why the fuck would every wave need their own base :D
14:27:40 <oklopol> the base should be 128 originally, but, if it's helpful, it could be changed so that a wave could best fit the last written byte, and the derivative of the last wave at the end point
14:28:04 <oklopol> and could gradually shift back to 128 during the playing of that sound.
14:28:39 <oklopol> because the same wave is generally played for thousands of bytes, you can shift so slowly there's no way to hear it.
14:28:46 <dbc> You are probably going to want to make each note fade out rather than just cut off, at some point, right? That in itself would solve half your problem.
14:29:03 <oklopol> heh, never occurred to me :P
14:29:33 <oklopol> but, yeah, i think i'd've added that anyway once i'd made the wave objects "less raw"
14:29:39 <dbc> having all the wave functions start at x=0 at the start of each note would solve the other half.
14:29:55 <dbc> I think.
14:30:23 <oklopol> the fading might indeed be a better way to do it
14:30:44 <oklopol> but my idea is much harder to implement
14:30:45 <oklopol> !
14:30:49 <EgoBot> Huh?
14:31:53 <oklopol> actually, i think even if they are faded in, the optimal starting point is the point the last note is in.
14:32:23 <dbc> Hm.
14:32:57 <oklopol> well, let's say you shift out the same wave you shift in
14:33:13 <oklopol> in that case, if you start at where the last wave is, it's perfect.
14:33:30 <oklopol> since it's the exact same as if you'd just made the original wave twice as long
14:34:00 <oklopol> now, again, if we start at x=0, you will have a moment where the phase shifts.
14:34:20 <oklopol> since the new wave starts from a different phase than the one the other is in
14:34:35 <dbc> (I wasn't even thinking fade in, just out. Though fading in as well, somewhat quicker, would indeed sound more realistic than an abrupt start. What I was thinking about the start of each note is to arrange them so that all the sine functions are at x=0, y=0 at the start of the note they're part of. I.e. use the note as the basis for the x-scale and not the whole piece, assuming that's what you're doing now.. That will be as smooth a start a
14:34:35 <dbc> s could be asked for.
14:34:57 <dbc> Not sure if I'm being clear though.
14:35:45 <oklopol> you prolly are, i just need a while to grasp anything
14:37:07 <dbc> Am I right in guessing you're now computing amplitudes for each byte on the basis of a sine function whose input is that byte's location in the whole piece of music?
14:37:20 <oklopol> ah
14:37:38 <oklopol> you mean, when i start the note, am i sending the wave function 0 or the number of cycles sofar=
14:37:39 <oklopol> ?
14:37:46 <dbc> Yeah.
14:37:52 <dbc> That's what I'm asking.
14:37:54 <oklopol> sofar.
14:38:10 <oklopol> but, i do a bit of cycling there
14:38:32 <oklopol> i go forward in the wave to find a good spot to start the new sound
14:38:40 <dbc> Ah.
14:39:03 <oklopol> if the last note ended at 200, the note is traversed until it's close to 200, and going the same direction.
14:39:13 <oklopol> i do all this in a very ugly fashion, as you can see at...
14:39:17 <oklopol> wait, i'll locate the function
14:39:33 <oklopol> get_bytes
14:39:41 <oklopol> in hzSound
14:40:37 <oklopol> it's uuuugly
14:40:43 <oklopol> i don't wanna look at ti
14:40:44 <oklopol> it
14:40:58 <dbc> Clear enough.
14:41:22 <oklopol> clear, but ugly1 :D i'm calculating the average of the bases of the subwaves! :D
14:41:43 <oklopol> the composer function doesn't use the feature, but you can actually play chords too
14:42:03 <oklopol> when you have multiple waves, you really hear the clicks and the bad quality of the sound
14:42:10 <dbc> I mean "clear" about "i don't wanna look at it". Then I said "clear enough" as in "i hear you". Ambiguities of natural language again...
14:42:52 <jix> volume ramping?
14:42:56 <oklopol> and, this is bad because playing multiple waves simultaneously is pretty much the reason i made the whole wrapper for waves in the first place :\
14:43:06 <oklopol> jix: perhaps, i'
14:43:09 <oklopol> ...
14:43:11 <dbc> If every sound wave that kicks in does so from zero, and fades out at the end, the function as a whole should be close to continuous.
14:43:22 <oklopol> jix: perhaps, i'm doing this with no knowledge about waves in general.
14:44:04 <oklopol> the problem is, the derivatives must also match.
14:44:28 <oklopol> don't know how crucial that is
14:44:49 <oklopol> but, i think it can be done by changing the base.... or volume ramping? whatever
14:45:03 <dbc> That would be nice, yeah. I'm not seeing how to do that without using fade-in as well as fade-out. Dunno...
14:45:15 <jix> well volume ramping is when you end a sample you fade it out and when you start it you fade it in
14:45:25 <jix> over a very short duration
14:45:33 <jix> => no clicks
14:45:35 <oklopol> the problem is, playing the same wave twice would then create a pause
14:45:45 <jix> then you have to crossfade
14:45:54 <dbc> Playing the same wave twice SHOULD create a pause if they're two notes.
14:46:07 <jix> fade the first one out while fading the next one in (when you want no pause at all)
14:46:20 <jix> but dbc is right... normally there should be a very very short pause
14:46:29 <dbc> If they're just one note, extended, it doesn't get faded out and back in.
14:47:18 <oklopol> crossfading might work, although i still think fading is the wimp way to do it ;)
14:47:41 <jix> well most software does volume ramping
14:47:48 <oklopol> and no, there shouldn't be a pause, i don't want there to be a pause
14:47:59 <oklopol> i want there to be a pause *optionally*
14:48:44 <jix> at least all the trackers out there use volume ramping to avoid clicks.... and the sound chip of the super nintendo does the same
14:48:46 <dbc> Well, you can put the note ends wherever you like.
14:48:56 -!- sebbu has joined.
14:49:05 <jix> and when you want no pause you don't restart the sample but just change the frequency that gives you no gap too
14:49:09 <oklopol> the player should be able to achieve 100% legato
14:49:39 <oklopol> the problem is you can give it any function, not just sines
14:49:50 <oklopol> hmm
14:49:51 <dbc> Fade it out after the next one has already started. Or yeah, crossfade. Hell, if you wanted to you could have the second note start to fade out after the first one has already faded all the way in. Probably sound a little odd, but that'd be almost like an anti-pause.
14:49:52 <jix> well most software works with samples that's like any function
14:50:14 <dbc> second <-> first. Sorry.
14:51:20 <oklopol> <jix> and when you want no pause you don't restart the sample but just change the frequency that gives you no gap too <<< this was what i was doing originally
14:51:23 <oklopol> i mean, was gonna do
14:51:30 <dbc> Other thing as I say is what about timbre? Are you going to add overtones and things to get away from the "pure beep" sound.
14:51:40 <jix> oklopol: if you do it right it doesn't produce clicks
14:51:57 <oklopol> but, indeed, the actual wave functions themselves can easily leave their current value the same and just change frequency
14:52:33 <oklopol> i was trying to do that for the actual compound wave at once by traversing it forward.
14:52:55 <oklopol> dbc: yeah, was gonna add stuff like that
14:53:09 <oklopol> by making better waves
14:54:12 <dbc> One more thing. Just incidentally. The ".au" sound format is very simple--you just have to add a 24-byte header, as I recall.
14:54:23 <oklopol> and then raw data?
14:54:27 <dbc> Yeah.
14:54:32 <oklopol> .wav needs about 80 bytes
14:54:40 <dbc> Just in case you want to output a file format that things will know what the hell it is.
14:55:05 <dbc> Ah.
14:55:09 <oklopol> i think wav is supported more widely
14:55:13 <dbc> Probably.
14:55:28 <oklopol> a wav is nice to create... but hell to play.
14:55:31 <dbc> 80 bytes of what?
14:55:40 <oklopol> ummm, well, crap
14:55:44 <dbc> Ah.
14:56:11 <oklopol> i don't remember, read part of the spec when i was little, and wrote a c program to make random sounds
14:56:25 <oklopol> little... prolly older than half the people in here :\
14:56:27 <dbc> Does it say "Copyright Bill Gates" as part of it?
14:56:35 <oklopol> hehe
14:56:50 <oklopol> and... i've used the c program as the base of all my later wav things :D
14:57:02 <oklopol> have no idea what the bytes mean, and zero care
14:59:45 <oklopol> i also tried making a midi file back then, 7F's were so hard to understand i failed to understand the format well enough to make anything more complex than a piano roll where notes were left on forever :P
14:59:54 <oklopol> back then == the same afternoon
15:00:24 <oklopol> i *might* just be able to conquer midis now, if i tried
15:00:45 <oklopol> although, dunno how that would help.
15:01:15 <oklopol> since i'll wanna make my own timbre anyway
15:01:18 <oklopol> or "tone"
15:19:16 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)).
15:20:33 -!- bsmntbombdood has joined.
15:28:02 -!- complexity has quit ("ChatZilla 0.9.79 [Firefox 2.0.0.11/2007112718]").
17:04:05 -!- oerjan has joined.
17:26:02 -!- Slereah has joined.
17:42:52 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
17:49:50 -!- helios24 has quit (Read error: 104 (Connection reset by peer)).
17:59:47 -!- helios24 has joined.
18:06:32 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
18:17:06 -!- oklopol has joined.
18:38:31 -!- RedDak has joined.
19:04:28 -!- Sgeo has joined.
19:27:41 <oklopol> http://www.vjn.fi/pb/p526564465.txt i have no idea what happened, but i have a new player :\
19:28:06 <RodgerTheGreat> nifty?
19:28:32 <oklopol> no
19:28:50 <oklopol> but the format is quick for writing random riffs :D
19:29:16 <oklopol> a-z0-9A-Z for notes, in that order, 0 being 440 hz
19:29:33 <oklopol> #(some float) specifies speed
19:29:41 <RodgerTheGreat> not bad
19:30:14 <oklopol> #1 is 4 notes a second, 0.5 is 8 notes etc
19:33:31 <RodgerTheGreat> ah
19:34:43 <oklopol> http://www.vjn.fi/pb/p116211461.txt xD
19:34:47 <oklopol> i'm such a fucking mozart.
19:35:13 <oklopol> i want someway to multiply in the code itself... and make that tc 8DD
19:37:09 <RodgerTheGreat> oh good lord
19:37:35 <RodgerTheGreat> a musical programming language
19:37:54 <oklopol> there's one where music *is* the language
19:38:09 <oklopol> but haven't seen (a good) one for actual creation of music
19:38:29 <oklopol> i'm totally addicted to composing on that now xD
19:38:35 <oklopol> guess i'll cook a bit more
19:50:10 -!- RedDak has quit (Remote closed the connection).
20:27:36 -!- RedDak has joined.
20:33:33 -!- oerjan has quit ("leaving").
20:47:38 -!- GreaseMonkey has joined.
20:47:48 -!- RedDak has quit (Remote closed the connection).
20:59:24 -!- cherez has quit ("Leaving.").
21:00:47 -!- RedDak has joined.
21:14:16 -!- jix has quit ("CommandQ").
21:15:20 * Slereah finished his 99 bottles of beer.
21:15:23 <Slereah> http://membres.lycos.fr/bewulf/Russell/99Turingprog4.txt
21:15:39 <Slereah> The interpreter being thar : http://membres.lycos.fr/bewulf/Russell/turingprog2.py
21:16:18 <Slereah> See if you can spot the many traces of lazyness and of abandonned sections of code that I forgot to remove!
22:12:59 <GregorR> * Slereah finished his 99 bottles of beer.
22:12:59 <GregorR> <Slereah> HEREITs ojn teh webhttp://membres.lycos.fr/bewulf/Russell/99Turingprog4.txt
22:12:59 <GregorR> <Slereah> ta;; iNTRpertre benig here:--~~> http://membres.lycos.fr/bewulf/Russell/turingprog2.py
22:12:59 <GregorR> <Slereah> so youlooka t lazyness n abnondnd skt*zzzzzzzzzzzzzz*
22:21:54 -!- miiro has quit (calvino.freenode.net irc.freenode.net).
22:24:03 -!- miiro has joined.
22:46:04 -!- RedDak has quit (Remote closed the connection).
22:53:36 -!- GreaseMonkey has quit ("Who keeps reincarnating sliced bread?!").
23:06:33 -!- oerjan has joined.
23:14:31 -!- Tritonio_ has joined.
23:16:24 -!- miiro has quit (calvino.freenode.net irc.freenode.net).
23:26:50 -!- miiro has joined.
23:41:23 -!- miiro has quit (calvino.freenode.net irc.freenode.net).
23:42:29 -!- miiro has joined.
23:42:30 -!- miiro has left (?).
23:42:30 -!- miiro has joined.
←2007-12-12 2007-12-13 2007-12-14→ ↑2007 ↑all