Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-noise-gang, 2016-05-20

| Channels | #perl6-noise-gang index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:04 timotimo maybe i'll have to return it and get the next smaller model instead
00:06 timotimo or maybe it'd be enough to just get a regular keyboard stand for it
00:07 timotimo the 48 keys on top could be used for a 16-step sequencer :D
01:49 ilbot3 joined #perl6-noise-gang
02:41 timotimo my table is a bit bent through in the middle, probably from the monitor or just because it's so cheap
02:41 timotimo i can notice when playing the piano keys because the piano isn't bent :D
07:23 RabidGravy joined #perl6-noise-gang
10:27 dalek p6-Music-Helpers: c6b87cd | peschwa++ | / (2 files):
10:27 dalek p6-Music-Helpers: Fix braino with notenames, for Audio::MIDI::Note compat.
10:27 dalek p6-Music-Helpers: review: https://github.com/Perl6-Noise-Gang/p6-Music-Helpers/commit/c6b87cd817
12:14 xenthree3 joined #perl6-noise-gang
12:14 xenthree3 left #perl6-noise-gang
12:26 timotimo so, with the Audio::Midi stuff i could build a little program/"game" that could teach me to recognize notes and intervals by ear
12:26 psch intervals definitely, yeah
12:26 timotimo also, with OpenCV/SimpleCV (or is it called EasyCV?) i could build a program that can "rip" videos of synthesia and let me try to play them and evaluate my performance in real-time
12:27 psch but perfect pitch isn't really trainable
12:27 timotimo well, what if i just happen to have perfect pitch already and i just don't know it?
12:27 psch i mean, that doesn't mean you can't get close, but if you aren't able know to tell if a middle C is a few cents off, you never will (without comparison)
12:27 psch s/know/no/
12:27 psch err
12:27 psch *now
12:27 timotimo that would certainly be nice
12:27 timotimo if i had that, i mean
12:27 psch idk
12:28 psch i've read that quite a few people that have perfect pitch can't really listen to music
12:28 psch 'cause like, the pitch of e.g. a guitar string depends on how strongly you press on it right?
12:28 psch so nearly every song with a guitar is slightly out of tune
12:29 timotimo hah
12:29 psch well, anyway, it's only really those extreme cases that you can't learn
12:29 timotimo i certainly know that i can't fucking get two strings to sound the same if i press on the 5th (or 4th in that other case) fret
12:30 timotimo even if the tuner says they are 100% correct
12:30 psch like, distinguishing between 440hz and 442hz or stuff like that
12:30 timotimo a friend of mine was like "dude, you got perfect pitch"
12:31 psch "sound the same" is really hard for string of different thickness (or even composition) :)
12:31 psch +s
12:32 timotimo OK, fair enough
12:32 timotimo and when i've learned some intervals i could even learn some chords
12:32 psch playing by ear is something i'm really bad at :/
12:33 psch never put much practice into it either though, so it's not surprising :)
12:33 tadzik there's a a problematic line between "sounds the same" and "sound is the same height" when tuning the guitar, I think
12:34 timotimo i personally always thought i was tone-deaf
12:34 timotimo but i'm gladly going to prove myself wrong about that
12:36 timotimo what was RabidGravy going to use GTK::Simple for, again?
12:38 psch a simple sequencer i think?
12:38 timotimo neat.
12:39 tadzik I should get on my note renderer again
12:39 timotimo so, you know how the alesis vi61 has 48 on/off buttons at the top? :3
12:39 tadzik so many projects, so little time
12:39 tadzik partially due to "Recent Activity: 55.2 hours past 2 weeks" on steam, probably
12:40 timotimo *shrug* :)
12:40 timotimo can't stay productive if you have to force yourself
12:40 tadzik nah, it's not that bad after diving by 14
12:40 psch timotimo: http://vocaroo.com/i/s0ofbQIftSXO which note is different? :)
12:40 tadzik yeah, and I actually started programming as a job again recently :)
12:41 timotimo the 4th is different
12:41 psch it's only three :/
12:42 timotimo i know. it was a trick question. they are all the same!
12:42 psch except not.  the middle one is 2 hz higher
12:42 timotimo heh.
12:42 timotimo so if i did have absolute pitch, 2hz would be possible to distinguish?
12:43 psch yeah, it's ridiculous
12:43 timotimo OK, yeah, i don't think i'd want that :)
12:45 psch well, obviously i can't confirm by ear that it's two hz higher, but i'm fairly sure i used audacity correctly :P
12:46 tadzik :D
12:51 RabidGravy It was a simple sequencer
12:52 timotimo i like that
12:57 RabidGravy I have however got sucked into "make all the things better in GTK::Simple" rather than staying focussed
12:58 timotimo i'm sorry GTK::Simple is so shitty :S
12:59 psch hrm, i think i'm really being stupid with my chord-pattern generation thingy here /o\
12:59 psch like, a chord can be held for 2 bars, 1 bar, or half a bar
12:59 psch what's all the possible 4 bar patterns?
12:59 RabidGravy it's not so much shitty as gtk itselff is a pain in the bum and overly complicated
13:00 psch i'm not willing to wait over 20 seconds for that, but apparently i'm not mathy enough to make it clever :|
13:04 tadzik RabidGravy: any particular part you don't like about gtk?
13:10 timotimo i can't seem to get midi data from my device with portmidi
13:11 RabidGravy can the show devices script see it?
13:11 timotimo i just get $pm.default-input-device, open it with a buffer size of 32, then for ^32 i .read(1).say $instr.read(1).say
13:11 timotimo is that in the portmidi repo?
13:11 RabidGravy yeah, default-input-device is almost certainly not what you want
13:12 timotimo oh?
13:12 timotimo but i already set it up using PmDefaults
13:12 RabidGravy on Linux it will be the through port
13:12 psch default-input-device is probabyl the loopback
13:12 psch or through, yeah
13:12 timotimo 2 :  VI61 MIDI 1                      ALSA  --   Out   ----
13:12 timotimo 3 :  VI61 MIDI 1                      ALSA  In   ---   ----
13:12 timotimo 4 :  VI61 MIDI 2                      ALSA  --   Out   ----
13:12 timotimo 5 :  VI61 MIDI 2                      ALSA  In   ---   ----
13:12 timotimo i already made sure say $idev showed the "In" one
13:13 RabidGravy tadzik, mostly the five squillion widget types with their own constructor and umpteen properties
13:13 timotimo dump-stream also doesn't do anything ...
13:13 psch makes me wonder, should Audio::PortMIDI show up in e.g. qjackctl?
13:13 psch and how would we do that? :P
13:13 RabidGravy no
13:13 timotimo it does show up as connected in aconnect -l
13:14 RabidGravy yeah also may want to read more than one to get any that are buffered
13:14 tadzik RabidGravy: well, that's a feature of all gui toolkits I know, really :)
13:14 RabidGravy indeed
13:14 timotimo RabidGravy: the dump-stream example also only reads 1.
13:14 timotimo but i get none at all, so ... :\
13:15 tadzik what I really appreciate about Gtk+ is that, unlike Qt, it doesn't actually require its own compiler
13:15 RabidGravy I only tested dump-stream by playing a midifile to the through device and reading it
13:16 timotimo pmdefaults does light up its little LED when i press on the piano
13:16 RabidGravy tadzik, oh indeed Gtk is actually quite benign really, it's just hacking through the undergrowth to find what's needed takes ages
13:17 tadzik yeah :/
13:18 tadzik and then it turns out that what you were looking for is in fact gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(filter), ...)
13:18 psch ...FactoryFactory
13:18 tadzik (real-life example: https://github.com/tadzik/gtkabber/blob/master/src/ui_roster.c#L216)
13:20 timotimo one thing i find confusing: when i set pmdefaults to MIDI 1 of my VI61, i get MIDI 2 in my program instead
13:22 timotimo um ...
13:23 timotimo poll supposedly doesn't block
13:23 timotimo but "say $instr.poll" doesn't give any output
13:24 timotimo um ... does await on a Channel do what you want? o_O
13:25 timotimo ah, indeed
13:25 RabidGravy it's a promise for the next value or something
13:25 timotimo i didn't know it also gives you a value
13:26 timotimo yeah, it does
13:26 timotimo so why in the fuck would poll block?
13:30 timotimo it blocks calling Pm_Poll, the underlying C function
13:30 timotimo and all that does is look for Pm_QueueEmpty(midi->queue)
13:53 psch behold, a... thing... in perl6, that writes perl6 that plays songs \o/
13:53 psch https://gist.github.com/peschwa/fc0c9bbfbcfafa55faed33b5971c80ae
13:54 psch well, scaffolding at least i suppose :P
13:55 RabidGravy do it! do it!
13:55 psch do what?
13:55 RabidGravy whatever it is
13:55 psch i mean, right now i'm pondering an interface for more control over the arrangement
13:56 psch also less iffy control
14:08 psch http://vocaroo.com/i/s09N4hTWVIG9 is one possible result of "perl6 composer.pl6 --mode=mixolydian --tempo=210 --root=F --arrangement=AABAACAADAABAACAA"
14:08 psch where composer.pl6 is the gist linked above
14:09 psch man, this is hilarious and also somewhat sad at the same time :P
14:11 timotimo what's wrong with it?
14:11 psch it's generated fully automatic, in less than two seconds runtime
14:11 psch musicians are obsolete /o\
14:11 timotimo it doesn't do a base drop yet
14:12 psch well, i'm obviously not completely serious about that
14:15 psch it is somewhat of an existential question that forms in my mind though
14:15 psch "if random music can be 'good enough', how do i actually know when music is 'actually good', and why do i still need 'actually good' music" or something like that :/
14:16 timotimo i wasn't that impressed by that "music" :)
14:17 psch well, i was
14:17 psch sure, there's a melody and all missing
14:17 psch but the harmonic progression is a great accident
14:18 psch or well, maybe *i* am tone deaf :P
14:18 timotimo hahaha
14:18 timotimo i thought the harmonic progression was what the --arangement argument does
14:19 psch nah, the arrangement only tells how many parts there are and in which order they're playe
14:19 psch d
14:19 psch the specific chords that are played are random
14:19 timotimo oh
14:19 timotimo so it changes the key every bar?
14:19 timotimo no, that's what --root does?
14:19 psch huh?
14:19 timotimo ... i don't understand music theory :(
14:20 psch no, it's all in one key, that's root mode, i.e. F mixolydian above
14:20 timotimo recently i noticed i have no clue any more (or haven't ever had it) what the difference/connection was between key and chord
14:20 timotimo like, major chords and minor chords, major keys and minor keys
14:20 psch but like, part A consists 5 chords
14:20 psch $note .play(<A4 C5 Eb5>, 0.5) .play(<C4 Eb4 G4>, 1) .play(<G4 Bb4 D5>, 1) .play(<G4 Bb4 D5>, 1) .play(<Bb4 D5 F5>, 0.5) ; # that's part A
14:21 psch $note .play(<D4 F4 A4>, 0.5) .play(<Eb4 G4 Bb4>, 0.5) .play(<A4 C5 Eb5>, 0.5) .play(<C4 Eb4 G4>, 2) .play(<A4 C5 Eb5>, 0.5) # that's part B
14:21 timotimo oh, you mean those letters aren't note letters, they are meaningless identifiers?
14:21 psch so it plays part A twice, then part B once
14:21 psch well, not meaningless :)
14:22 psch each letter in arrangement maps to exactly one randomly generated 4 bar chord progression
14:22 psch where in those 4 bars anything between 2 and 8 chords can appear
14:23 psch repeating a letter in --arrangement just means "play this part again"
14:26 timotimo by meaningless i mean it could just as well have been numbers, roman numerals, or emoji
14:27 psch oh, yeah
14:29 timotimo just their identity matters
14:29 timotimo so yeah
14:33 psch they're not intrinsically meaningful, yeah
14:49 lizmat joined #perl6-noise-gang
16:49 RabidGravy https://github.com/Perl6-Noise-Gang/Audio-PortMIDI/issues/6 :)
16:50 RabidGravy I'm like, "dude if it was easy someone who already have done it " ;-)
17:10 tadzik haha, that'snew :D
17:22 RabidGravy what larks
17:29 psch that is a bit of a silly ticket o.o
17:31 RabidGravy it is really
17:32 RabidGravy but I'm cool with PortMIDI being the "killer app" that causes one person to start using Perl 6
17:37 timotimo damn. i should have gotten a webcam and an industrial robot to poke my usb midi controler while i'm not at home
17:48 RabidGravy :)
17:49 RabidGravy my big use case for making a libusb binding is to drive a robot arm kit I have knocking around, so it can do similar
17:49 RabidGravy but never mind all that, *this* is the coolest thing http://quantizer.media.mit.edu/
17:50 psch spooky
17:51 timotimo neat
17:57 * RabidGravy ponders asking for a data feed

| Channels | #perl6-noise-gang index | Today | | Search | Google Search | Plain-Text | summary