#milkymist IRC log for Monday, 2012-01-30

Fallenougn800:46
kristianpauln800:48
kristianpaulstekern: the only part you replaced from the upstream SoC was the lm32?00:55
kristianpaulwhat about conbus?00:56
GitHub171[flickernoise] wpwrak created direct-midi (+12 new commits): http://git.io/rFAXug01:24
GitHub171[flickernoise/direct-midi] renderer/stimuli.c: unified control input handling - Werner Almesberger01:24
GitHub171[flickernoise/direct-midi] compiler.h: wrap nasty long lines - Werner Almesberger01:24
GitHub171[flickernoise/direct-midi] compiler: include basic elements for unified input events in patch structure - Werner Almesberger01:24
stekernkristianpaul: yes, only replaced lm3203:20
kristianpaulstekern: no other "to replace" plans?03:25
stekernnaw, no such plans03:30
GitHub136[flickernoise] wpwrak pushed 2 new commits to direct-midi: http://git.io/HVh90A03:38
GitHub136[flickernoise/direct-midi] compiler: update pointers after realloc() in patch_add_cvar - Werner Almesberger03:38
GitHub136[flickernoise/direct-midi] midi control: added processors for encoders sending acceleration - Werner Almesberger03:38
kristianpaulhmm how do clean build directory now..03:41
kristianpaulmake clean from flash dint work03:41
kristianpaulstekern: good :)03:41
Action: kristianpaul miss clean_all.sh03:44
xiangfukristianpaul, you mean the milkymist?03:53
xiangfukristianpaul, run make clean under the root folder of milkymist same as clean_all.sh03:53
kristianpaulahh03:55
kristianpauli missed the new Mafefile, sorry for noise :)03:55
Action: kristianpaul download what it seems mico8 gcc source code04:20
Action: kristianpaul is looking for a state machine replacement in software04:23
n0carri3rmorning all16:18
n0carri3rwas out using the M1 this weekend:16:19
n0carri3rhttp://www.twitvid.com/G7BVI16:19
n0carri3rthe "N" logo and the greenish-scanlines are PNG's using the new image support16:19
n0carri3rthe B/W house exploding is another program, however (was using a video mixer to key the signals)16:19
n0carri3rhope to have better pics and video soon16:19
n0carri3rgonna ask my usual question: how is USB-MIDI support coming along? :)16:23
lekernelhi16:25
lekernelwell, Werner just implemented new patch commands to support multi-channel controllers like the Faderfox LV316:26
lekernelhttp://blog.gmane.org/gmane.comp.multimedia.milkymist.devel16:27
lekernelhttp://downloads.qi-hardware.com/people/werner/tmp/T.fnp16:27
wpwrakyeah. and a bit of crud removal is coming soonish :) (the whole cvar business i had added. silly over-engineering)16:29
lekerneln0carri3r: wow, you made that with the M1?16:29
lekernel"some SRSLY FLY vizzzz for @Nullsleep by Cosmic Morning "16:29
lekernelthat one?16:29
lekernelwpwrak: I guess you're going to remove the midiX variables too?16:31
wpwrakpity that the exploding house is a video feed16:31
wpwraklekernel: i very much looking forward to their killing :-) do you see any need to keeping them around for compatibility ? i don't thing there are a lot of people using them16:32
wpwraks/thing/think/16:32
lekernelwpwrak: yeah, just remove them16:34
lekernelit's easy to copy and paste "midiX = ..." in any affected patch, anyway :)16:34
n0carri3rlekernel: yes, that top video16:36
n0carri3rwill the M1 ever support animated GIFs?16:36
n0carri3rwould be great - then the exploding house could be on the M1, too :)16:36
lekernelit can be done :)16:36
wpwrakmaybe just an array of images ?16:37
n0carri3rreally? that would AMAZING :)16:37
lekernelwpwrak: yeah :)16:38
wpwraki have such a thing planned. now that the compiler is more or less under control, it won't be too hard to implement it. (the array of images)16:38
lekernelwhich is read automatically when a GIF image is loaded16:38
wpwrakdo we have a GIF reader yet ?16:38
lekernelno, but we probably can just compile some linux library16:39
n0carri3rthat would be great16:39
wpwrakokay, ffs ;-) in any case, you can just do individual frames.16:39
lekernelthere's MNG too (which can be read with libpng) but it's lesser known than GIF16:39
wpwrak(copy & paste midiX) yes, unless you rely on the MIDI settings dialog to switch between different controllers or controller configuration. but then, i realize that i may be the only one doing that on a regular basis ;-)16:42
lekerneln0carri3r: your video is great! and with Nullsleep, wow :)16:42
n0carri3rthanks! we're good friends - and roommates :)16:43
wpwrakbut i can fix that too by introducing another layer of abstraction. for now, i'll just cram everything into the patch, so it's easy to experiment with things.16:43
n0carri3rthe moire patterns in that video are the M1, too - using two PNG16:44
n0carri3rwith transparency and sine based movements16:44
lekerneln0carri3r: which USB-MIDI controllers do you have?16:44
n0carri3rand the "N" logo appears over top, because i found a way to jam multiple keys on the keyboards to "mix" patches - then let go of one key to allow one patch to take over16:44
lekerneland plan to use with M1?16:44
lekernelyeah, I added that "patch jam" feature as a little toy in the latest software release :)16:45
lekernelnice to see it used :)16:45
lekernelanyway, next sw should also allow you to have more pictures than 2 per patch16:46
n0carri3ri plan on using the korg nanoKONTROL16:48
n0carri3rhttp://www.amazon.com/Korg-nanoKONTROL-USB-Controller-Black/dp/B001J8LJWK16:48
n0carri3rits very cheap and i think many would purchase it to use with the M116:48
n0carri3rhas dials, sliders, and buttons on it16:48
n0carri3roh, it seems there is a newer one, too: Korg nanoKONTROL216:49
n0carri3rbut i have the previous one. i'm sure they are very similar16:49
wpwrakthe iCon i-creativ can also be an interesting choice16:49
wpwrakstill inexpensive but feels a little less cheap than the nanoKONTROL2. there's a solid chunk of metal in there, making it heavy.16:50
wpwrakyou can switch it between various types of controls, X/Y pad, faders, etc.16:51
wpwraknow to the achilles heel: they imho stupidly and unnecessarily limited the resolution of the pad to 16x816:51
wpwrakso in X/Y mode, you only have 16 horizontal values, 8 vertical ones. if you use faders (except the analog one), then they also have only 8 values.16:52
wpwrakthis limits what it can do. but it's still very versatile.16:53
n0carri3ryeah16:53
n0carri3rwhatever gets supported, i will buy it right away :)16:53
lekernelafaik the nanoKONTROL2 is working (I remember wpwrak doing some tests with it). we didn't try the 1st version.16:54
wpwrakoh, pretty much anything usb-midi ought to work now :)16:54
wpwrakyes, i have a nanoKONTROL2. works fine. just feels incredibly cheap ..16:55
n0carri3roh, really? USB-MIDI is supported in the current software?16:55
wpwrakaye :)16:55
n0carri3rwow! okay, i must finish my class prep for now, or i will spend my entire day playing around!16:56
wpwrak;-))16:56
lekernelit's just that we haven't sent it through the web updates yet16:56
wpwraknow we need more USB ports to be able to connect a lot of devices :)16:56
lekernelbut we will :)16:56
n0carri3rah! so its not on the web updates, yet? ok!16:57
lekernelno, it's only in the source code on github atm :)16:57
wpwrakfor now, i still use my PC as "midi mixer": connect all the devices to it, the then send all the traffic via OSC16:57
n0carri3ri like the portability of the M1 for a live show with no laptop, though :)16:58
wpwrakas long as you don't run out of USB ports, you're fine :)16:58
n0carri3ri usually disconnect the mouse as soon as my "performance" is running, to avoid problems16:59
n0carri3rand just use the keyboard, for now16:59
wpwrakwe're evaluating one of these little RF keyboard with integrated touch pad to replace the rubber keyboard in the future17:01
wpwrakthat would need one port less. plus, you can turn it off when not in use.17:01
wpwrakand shipping weight goes down ;-)17:02
n0carri3r:)17:05
lekerneln0carri3r: would you have an higher-resolution version of that video?17:05
n0carri3rnot at the moment, but my friend emily shot the entire set, along with a few other people17:06
n0carri3rwhen the videos surface, i'll let you know17:06
n0carri3rok, i really wanna try that USB-MIDI. is it pretty easy to update the software manually from git?17:21
n0carri3ror will it be available soon via update?17:22
lekernelare you running Linux?17:23
n0carri3rOSX17:24
lekernelhmm ... in fact, we do have OSX instructions :)17:28
lekernelhttps://github.com/milkymist/scripts/blob/master/README.html17:28
lekernel(just clone the "scripts" repository)17:29
lekernelbut this is experimental development code, you have been warned :)17:29
n0carri3ryes, of course - i'll be sure to back up!17:30
n0carri3rand i won't be trying it now, or i may not go to work :)17:30
wpwrakexperimental with known M1-crashing bugs. but they're getting fewer :)17:31
n0carri3ri'm happy to say i've had zero crashes!17:31
n0carri3reven with jamming on multiple keys for extended periods of time :)17:32
wpwrakkewl !17:36
wpwrakoh course, this is kinda bad news: now, i can only make things worse :)17:36
n0carri3rok, gotta run - take care!18:22
GitHub197[flickernoise] wpwrak pushed 7 new commits to direct-midi: http://git.io/Gd1I2g19:08
GitHub197[flickernoise/direct-midi] experimental/T.fnp: Tornado Rain Dance variant for new MIDI control selection - Werner Almesberger19:08
GitHub197[flickernoise/direct-midi] controls: removed indirection via cvar array - Werner Almesberger19:08
GitHub197[flickernoise/direct-midi] renderer: keep patch_lock around and clear current_patch when stopped - Werner Almesberger19:08
Fallenouso far : does not work => http://pastebin.com/H607uXLV20:38
Fallenoulet's find the issue :)20:38
wpwrakalready looks promising :)21:03
Fallenouhehe thanks, looks horrible to debug too21:17
GitHub71[flickernoise] wpwrak pushed 2 new commits to direct-midi: http://git.io/98PJ8A21:19
GitHub71[flickernoise/direct-midi] stimuli: added processor for acceleration with an unbounded range - Werner Almesberger21:19
GitHub71[flickernoise/direct-midi] stimuli: remember and update base pointer for stim_redirect - Werner Almesberger21:19
lekernelFallenou: I'd suggest you simulate it... it works with xilinx isim21:41
lekernelwhat do you think of using normal videos instead of GIF? I already got FFMPEG compiled...21:42
lekernelof course I don't expect realtime decoding from the LM3221:42
lekernelbut pre-decoding small 1s-2s clips during patch compilation seems possible21:42
wpwrakhmm, with all the downconverting etc. you have to do on the video first, it may not be excessively useful21:49
wpwrakbut then, it looks good on the feature list ;-)21:50
lekernel'all the downconverting'?22:00
lekernelyou'd typically have to cut it already, even simply for aesthetic purposes... so resizing it at the same time doesn't sound like a big constraints22:01
Fallenouyou can provide scripts to change size using gstreamer or ffmpeg so that the user can do it easily without being a pro of video editing22:03
Fallenoulekernel: oh simulating the whole lm32 cpu ? i didn't know it was possible22:04
wpwrakwhat i mean that you'll already edit it heavily, so rendering the result to images would't make much of a difference22:04
GitHub101[flickernoise] wpwrak pushed 4 new commits to direct-midi: http://git.io/jO2kjA22:09
GitHub101[flickernoise/direct-midi] compiler: fix NULL pointer bug when running patches that don't use direct MIDI - Werner Almesberger22:09
GitHub101[flickernoise/direct-midi] stimuli.c: ptrdiff_t is defined in stddef.h, not sys/types.h - Werner Almesberger22:09
GitHub101[flickernoise/direct-midi] compiler: don't include \n in "cannot add stimulus ..." message - Werner Almesberger22:09
Fallenoulekernel: do you have a link that gives a few intel about how to simulate lm32 with isim ?22:09
Fallenouif not I will start with reading isim doc :)22:10
lekernelFallenou: you have to connect the buses to some simulated memories, with code in the instruction one22:10
lekernelthen the isim command is confusingly named "fuse" and it compiles the verilog code into an executable binary22:11
wpwraklekernel: are you working on adding movie support ? if yes, maybe i should merge some of my stuff into master, so we don't get a huge merge conflict later22:11
lekernelwpwrak: I can add it into libpixbuf and test it a bit, then you can make use of it?22:11
Fallenoulekernel: simulating wishbone accesses, I hope it won't take too much time to do22:12
wpwraksounds good. i still need to to the multi-image support anyway22:12
lekernelwe can simply treat the movie as one pixmap with multiple frames in it22:12
lekerneland the pixmap object has a new 'frame count' field22:12
wpwrakthat should actually be easy now ... hmm ... but how do deal with the unfinished pile MIDI stuff ... ?22:13
lekernelwhat 'unfinished pile MIDI stuff' ?22:13
FallenouI guess I can find already done "wishbone blockram slave"22:13
wpwrakmy direct-midi branch22:13
Fallenouin order to plug to data and instruction wishbone path22:14
lekernelFallenou: you can try the new migen stuff to build wishbone block rams :p22:14
wpwrakit's actually not that bad ... less than 1000 lines22:14
lekernelwpwrak: and what's the problem with it?22:14
Fallenoulekernel: I am planning on learning migen, but not now :p22:14
lekernelFallenou: this gets you a full fledged wishbone block ram with migen: https://github.com/milkymist/milkymist-ng/blob/master/milkymist/sram/__init__.py22:15
Fallenouoh, if it's already done, good :)22:15
Fallenouawesome22:15
wpwrakthe problem is that, if adding multi-image support off the master branch, i'll conflict with direct-midi. and i dislike merge conflicts ...22:15
lekernelwpwrak: continue with direct-midi... and we connect it to the movie-enabled libpixmap later22:16
lekernelafter direct-midi has been merged into master22:17
lekernelI guess there will be no merge conflicts in libpixmap, right?22:17
larsclekernel: does this look ok, for the splitter control fragment? http://pastebin.com/bw16qDUe it is basically the same as for the combinator, just with a extra buffer which saves whether a output token has been acked since the last input token22:18
wpwrakalight, let's do multi-image after direct-midi then. no, there shouldn't be any conflicts. i just made changes in renderer/ and compiker.22:18
wpwrakwell, there will be a clash in src/Makefile, but that's kinda unavoidable22:19
wpwrak(and usually simple to solve)22:19
lekernellarsc: n = len(self.endpoints) will count both the sources (which you want) and the sinks (which I think you don't)22:20
lekerneln = len(self.endpoints)-1 ?22:21
larscyes22:21
larsci guess22:21
lekernelacked = Signal(BV(n), name="acked") <= the name parameter will automatically be set to "acked" (thanks to the bytecode hack), no need to duplicate it manually22:24
larscis the bytecode hack already commited?22:25
lekernelyes22:25
larsccause it didn't work here22:25
lekernelare you using cpython?22:25
larsci guess22:25
larscthe python form python.org22:25
larsc3.1 though22:25
lekernel$ python3 --version22:25
lekernelPython 3.2.122:25
larscit seems to work for some of the signal names, but not in this specific case22:28
lekernelah22:28
lekernelyou're only declaring one signal in this frame, so there are no conflicts... maybe it simply omits it during the final naming phase22:29
lekernelwhat name do you get?22:29
larscthe opcode it gets during the name lookup are STORE_NAME, STORE_DEREF22:30
larscopcodes22:30
lekernelhmm maybe we need to handle STORE_DEREF too22:32
larscyes22:32
FallenouOK let's install migen then22:33
lekernellarsc: other than these two details, it looks good :)22:35
lekernelshould I commit it?22:36
Fallenoulet's first install python 3.2 :/22:36
lekernelFallenou: MMU, Migen... you'll soon become the pro of experimental milkymist code :-)22:37
lekernellarsc: ah, no, you must also deassert the source stb after it has acked it22:39
lekernelotherwise you'll get duplicate tokens22:39
larscright22:40
Fallenoulekernel: ahah yep I hope =)22:41
larschm, ok, fixed the auto namer22:49
Fallenoulekernel: that's impressive, I just generated the build/soc.v using migen22:56
Fallenouvery impressive what it's already capable of :)22:56
larscis there a way to get the bv of an expression?22:56
larsci guess not, unless the expression is just a signal22:59
Fallenougoing to sleep, gn8 !22:59
--- Tue Jan 31 201200:00

Generated by irclog2html.py 2.9.2 by Marius Gedminas - find it at mg.pov.lt!