timotimo maybe i'll have to return it and get the next smaller model instead 00:04
or maybe it'd be enough to just get a regular keyboard stand for it 00:06
the 48 keys on top could be used for a 16-step sequencer :D 00:07
01:49 ilbot3 joined
timotimo my table is a bit bent through in the middle, probably from the monitor or just because it's so cheap 02:41
i can notice when playing the piano keys because the piano isn't bent :D
07:23 RabidGravy joined
dalek -Music-Helpers: c6b87cd | peschwa++ | / (2 files):
Fix braino with notenames, for Audio::MIDI::Note compat.
10:27
12:14 xenthree3 joined, xenthree3 left
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
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
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?
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)
s/know/no/
err
*now
timotimo that would certainly be nice
if i had that, i mean
psch idk
i've read that quite a few people that have perfect pitch can't really listen to music 12:28
'cause like, the pitch of e.g. a guitar string depends on how strongly you press on it right?
so nearly every song with a guitar is slightly out of tune
timotimo hah 12:29
psch well, anyway, it's only really those extreme cases that you can't learn
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
even if the tuner says they are 100% correct 12:30
psch like, distinguishing between 440hz and 442hz or stuff like that
timotimo a friend of mine was like "dude, you got perfect pitch"
psch "sound the same" is really hard for string of different thickness (or even composition) :) 12:31
+s
timotimo OK, fair enough 12:32
and when i've learned some intervals i could even learn some chords
psch playing by ear is something i'm really bad at :/
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
timotimo i personally always thought i was tone-deaf 12:34
but i'm gladly going to prove myself wrong about that
what was RabidGravy going to use GTK::Simple for, again? 12:36
psch a simple sequencer i think? 12:38
timotimo neat.
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
tadzik so many projects, so little time
partially due to "Recent Activity: 55.2 hours past 2 weeks" on steam, probably
timotimo *shrug* :) 12:40
can't stay productive if you have to force yourself
tadzik nah, it's not that bad after diving by 14
psch timotimo: vocaroo.com/i/s0ofbQIftSXO which note is different? :)
tadzik yeah, and I actually started programming as a job again recently :)
timotimo the 4th is different 12:41
psch it's only three :/
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
timotimo heh.
so if i did have absolute pitch, 2hz would be possible to distinguish?
psch yeah, it's ridiculous 12:43
timotimo OK, yeah, i don't think i'd want that :)
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:45
tadzik :D 12:46
RabidGravy It was a simple sequencer 12:51
timotimo i like that 12:52
RabidGravy I have however got sucked into "make all the things better in GTK::Simple" rather than staying focussed 12:57
timotimo i'm sorry GTK::Simple is so shitty :S 12:58
psch hrm, i think i'm really being stupid with my chord-pattern generation thingy here /o\\ 12:59
like, a chord can be held for 2 bars, 1 bar, or half a bar
what's all the possible 4 bar patterns?
RabidGravy it's not so much shitty as gtk itselff is a pain in the bum and overly complicated
psch i'm not willing to wait over 20 seconds for that, but apparently i'm not mathy enough to make it clever :| 13:00
tadzik RabidGravy: any particular part you don't like about gtk? 13:04
timotimo i can't seem to get midi data from my device with portmidi 13:10
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
is that in the portmidi repo?
RabidGravy yeah, default-input-device is almost certainly not what you want
timotimo oh? 13:12
but i already set it up using PmDefaults
RabidGravy on Linux it will be the through port
psch default-input-device is probabyl the loopback
or through, yeah
timotimo 2 : VI61 MIDI 1 ALSA -- Out ----
3 : VI61 MIDI 1 ALSA In --- ----
4 : VI61 MIDI 2 ALSA -- Out ----
5 : VI61 MIDI 2 ALSA In --- ----
i already made sure say $idev showed the "In" one
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 ...
psch makes me wonder, should Audio::PortMIDI show up in e.g. qjackctl?
and how would we do that? :P
RabidGravy no
timotimo it does show up as connected in aconnect -l
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 :)
RabidGravy indeed
timotimo RabidGravy: the dump-stream example also only reads 1.
but i get none at all, so ... :\\
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
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
tadzik yeah :/ 13:17
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
tadzik (real-life example: github.com/tadzik/gtkabber/blob/ma...er.c#L216)
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:20
um ... 13:22
poll supposedly doesn't block 13:23
but "say $instr.poll" doesn't give any output
um ... does await on a Channel do what you want? o_O 13:24
ah, indeed 13:25
RabidGravy it's a promise for the next value or something
timotimo i didn't know it also gives you a value
yeah, it does 13:26
so why in the fuck would poll block?
it blocks calling Pm_Poll, the underlying C function 13:30
and all that does is look for Pm_QueueEmpty(midi->queue)
psch behold, a... thing... in perl6, that writes perl6 that plays songs \\o/ 13:53
gist.github.com/peschwa/fc0c9bbfbc...b5971c80ae
well, scaffolding at least i suppose :P 13:54
RabidGravy do it! do it! 13:55
psch do what?
RabidGravy whatever it is
psch i mean, right now i'm pondering an interface for more control over the arrangement
also less iffy control 13:56
vocaroo.com/i/s09N4hTWVIG9 is one possible result of "perl6 composer.pl6 --mode=mixolydian --tempo=210 --root=F --arrangement=AABAACAADAABAACAA" 14:08
where composer.pl6 is the gist linked above
man, this is hilarious and also somewhat sad at the same time :P 14:09
timotimo what's wrong with it? 14:11
psch it's generated fully automatic, in less than two seconds runtime
musicians are obsolete /o\\
timotimo it doesn't do a base drop yet
psch well, i'm obviously not completely serious about that 14:12
it is somewhat of an existential question that forms in my mind though 14:15
"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 :/
timotimo i wasn't that impressed by that "music" :) 14:16
psch well, i was 14:17
sure, there's a melody and all missing
but the harmonic progression is a great accident
or well, maybe *i* am tone deaf :P 14:18
timotimo hahaha
i thought the harmonic progression was what the --arangement argument does
psch nah, the arrangement only tells how many parts there are and in which order they're playe 14:19
d
the specific chords that are played are random
timotimo oh
so it changes the key every bar?
no, that's what --root does?
psch huh?
timotimo ... i don't understand music theory :(
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
like, major chords and minor chords, major keys and minor keys
psch but like, part A consists 5 chords
$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
$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?
psch so it plays part A twice, then part B once
well, not meaningless :)
each letter in arrangement maps to exactly one randomly generated 4 bar chord progression 14:22
where in those 4 bars anything between 2 and 8 chords can appear
repeating a letter in --arrangement just means "play this part again" 14:23
timotimo by meaningless i mean it could just as well have been numbers, roman numerals, or emoji 14:26
psch oh, yeah 14:27
timotimo just their identity matters 14:29
so yeah
psch they're not intrinsically meaningful, yeah 14:33
14:49 lizmat joined
RabidGravy github.com/Perl6-Noise-Gang/Audio-...I/issues/6 :) 16:49
I'm like, "dude if it was easy someone who already have done it " ;-) 16:50
tadzik haha, that'snew :D 17:10
RabidGravy what larks 17:22
psch that is a bit of a silly ticket o.o 17:29
RabidGravy it is really 17:31
but I'm cool with PortMIDI being the "killer app" that causes one person to start using Perl 6 17:32
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:37
RabidGravy :) 17:48
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
but never mind all that, *this* is the coolest thing quantizer.media.mit.edu/
psch spooky 17:50
timotimo neat 17:51
RabidGravy ponders asking for a data feed 17:57