clinton/scratch.git
5 years agoled-controller: improve driver loop master
Clinton Ebadi [Wed, 26 Nov 2014 00:57:12 +0000 (19:57 -0500)]
led-controller: improve driver loop

`fx-driver' runs an fx function, passing time + delta time. Updated
simple hsv loop to run from `fx-driver'.

Miscellaneous code cleanup. Define tau, move all initialization to the
top of the program, kill some dead code. Defer delivery of interrupts
while communicating with the serial device.

5 years agoled controller: port to teensy 3.1
Clinton Ebadi [Wed, 26 Nov 2014 00:53:49 +0000 (19:53 -0500)]
led controller: port to teensy 3.1
 - For now, only target the teensy 3.1.
 - Target full 16-bit pwm (not sure if clock set correctly for full use
   though)
 - Eliminate color correction code
   - Likely wrong anyway
 - Revert to simple text based protocol
   - Teensy I/O is buffered, this is easier
 - Blink random colors when no device has the serial port open

5 years agoRename arduino led driver to appease arduino IDE
Clinton Ebadi [Wed, 26 Nov 2014 00:50:49 +0000 (19:50 -0500)]
Rename arduino led driver to appease arduino IDE

5 years agoarduino rgb led strip driver
Clinton Ebadi [Mon, 24 Nov 2014 04:48:40 +0000 (23:48 -0500)]
arduino rgb led strip driver

A few iterations in, time for version control. led-controller.scm
interfaces with this.

This supports driving an arbitrary number of rgb led strips. All
currently are set to the same color. You just wire up the pins, and
send it three bytes (r, g, b) and read the response line to keep in
sync.

Originally read r g b using Serial.parseInt(). Returning to that soon
as I am porting it to Teensy 3.1 and it has fast buffered
communication making the current approach unsuitable.

It uses a basic intensity correction table from another
project (generated by gamma.py). This is most likely wrong... each
color needs its own table, I think.

5 years agoxbmc file upload / playlist insert example
Clinton Ebadi [Mon, 24 Nov 2014 03:15:25 +0000 (22:15 -0500)]
xbmc file upload / playlist insert example

XBMC party mode is good for background music at parties, but sometimes
guests want to listen to their music and not mine. After trying to get
UPnP/DLNA and bluetooth streaming to work I gave up and threw together
a trivial file upload + python script.

Primitive, so far. It lets users upload a single file to a specified
directory, replaygains it (if it is mp3/flac/vorbis at least), and
then inserts it at a random position on the playlist.

5 years agoExperiments in controlling LEDs using Guile + Arduino
Clinton Ebadi [Mon, 24 Nov 2014 03:09:31 +0000 (22:09 -0500)]
Experiments in controlling LEDs using Guile + Arduino

led-controller.scm is the current working daemon. It is licensed under
the GPLv3 as it is becoming a "real" program and will likely be
released on its own.

picker/* are from the raphael js graphics library demos and are MIT
licensed. They connect to the led daemon using GET requests to set the
current color.

fade3.scm, fade4.scm, and led-web.scm are hacks that gradually evolved
into led-controller.scm

5 years agodualshock 3 -> zsnes button converter
Clinton Ebadi [Mon, 24 Nov 2014 03:03:22 +0000 (22:03 -0500)]
dualshock 3 -> zsnes button converter

zsnes explodes when you attempt to configure a dualshock 3 button in
the gui. This lets you convert whatever button/joystick numbers
reported by your favorite input driver for a dualshock 3 to the
internal button codes used by zsnes.

This will work for arbitrary joysticks. You must redefine axis-count
and button-count to match your device.

5 years agoCommon Lisp hack to rename some videos
Clinton Ebadi [Mon, 24 Nov 2014 03:01:20 +0000 (22:01 -0500)]
Common Lisp hack to rename some videos

X-Files file names in my copy of Season 01 were making xbmc unhappy,
use fad and cl-ppcre to move them. Because `rename' doesn't
exist (d'oh).

5 years agoBasic gimp gradient loader
Clinton Ebadi [Mon, 24 Nov 2014 02:59:58 +0000 (21:59 -0500)]
Basic gimp gradient loader

Can generate a linear blend of arbitrary steps from a gimp gradient
file. Kind of works for generating input for my arduino led controller.

5 years agoSomething about generating smooth playlists
Clinton Ebadi [Mon, 24 Nov 2014 02:58:30 +0000 (21:58 -0500)]
Something about generating smooth playlists

I think this code is intended to use the bpm of a library of input
files and generate a playlist that picks songs gracefully moving
toward a changing target bpm.

5 years agoPartial implementation of scsh define-record
Clinton Ebadi [Mon, 24 Nov 2014 02:55:42 +0000 (21:55 -0500)]
Partial implementation of scsh define-record

5 years agoBeerXML to xhtml
Clinton Ebadi [Mon, 24 Nov 2014 02:54:53 +0000 (21:54 -0500)]
BeerXML to xhtml

Brewtarget html output is bad. A first attempt at hacking together an
html generator for beerxml. Pretty incomplete, might serve as an
trivial base for something better.

5 years agoPainfully trivial automata
Clinton Ebadi [Mon, 24 Nov 2014 02:53:05 +0000 (21:53 -0500)]
Painfully trivial automata

5 years agoConverting old unused darcs scratch repo to git
Clinton Ebadi [Mon, 24 Nov 2014 02:51:42 +0000 (21:51 -0500)]
Converting old unused darcs scratch repo to git

I've got an entire two commits in my old scratch repo ... throwing
everything that has accumulated there and isn't *too* embarrasing into
a git repo.

Curse you magit for becoming better than darcsum.