looks like 2010 will be bookended by postings. It's been a year to forget in many ways.
current projects (or things I've been asked to look into):
* For Love: a piece of software to convert text into morse code & play the resulting audio. For some reason or other, I started doing this with Processing (pulling in various other Java language items). It seemed like a good idea at the time, as a framework that encompassed transferring data via http, reading & cleaning up text & generating audio. Ultimately, this app is just a client for a backend which aggregates & stores messages sent from web forms, text message, tweets, whatever, in a predictable format.
* For Money: a package of scripts to generate a quite large brochure-style website from catalogues (manufacturers, items, pricing etc) in an easy-to-edit form (such as Excel spreadsheet). The plan is to employ the site's existing structure & styling but to re-engineer how the content ('the information') is maintained & updated. This is like a classic case of 'separation of content & presentation' that used to be all the rage a few years ago when XML was touted as the next big thing.
I'm using - as a model (& it's the reason I started the conversation to begin with) - something similar I created using Perl & XSL transformation several years ago, which was a solution to create several fiddly table-based webpages that matched data & download links for a file repository at my previous employer.
* sort-of For Money: building new mail/file etc. servers to replace a few boxes for a long-standing associates. I'll probably end up re-cabling their network onsite as well...after the renovations... As this is based upon 64-bit Centos linux, that could have it's intriguing/frustrating aspects as well as this is going out there the the bleeding-edge for some aspects .
* For Love - or something like that: I recently completed building an Octomod & it seems to be working fine. This is a device to convert digital commands (from a computer, via USB) to analogue control voltages. In the event that someone wants to say, use this from an application like Ableton Live they need to map MIDI data from to the OSC data that the device understands & converts. Max patches & also Max 4 Live device to facilitate this conversion are a starting point. Ultimately, a standalone app (could be created using Max) which does this work would be the best for people who don't own either Max or Live.
Thursday, November 11, 2010
Tuesday, January 12, 2010
audio filters & such
I am quite interested in a device like the M Resonator
This machine is essentially a couple of filters in a feedback network. Notwithstanding any particular sound qualities their filters might have,it's a reasonably effective (& old!) idea for shaping music...and it would be fairly easy to build a crappy knock-off myself, using DIY. After all, there's plenty of schematics for the building blocks available on the web.
It's missing MIDI control though. That would be a cute arduino/mididuino project. Edit: in the sense of adding MIDI control to a filter - not simulating audio-rate DSP via an Arduino.
I'm a bit of a Korg Kaoss pad enthusiast but some kind of multi-band resonant filter - with envelope control would be a real nice thing to have as a way of shaping the spectrum of music. Actually, sounds like I'm describing a modular synth now. Especially something a little like the Doepfer A 127 module
This machine is essentially a couple of filters in a feedback network. Notwithstanding any particular sound qualities their filters might have,it's a reasonably effective (& old!) idea for shaping music...and it would be fairly easy to build a crappy knock-off myself, using DIY. After all, there's plenty of schematics for the building blocks available on the web.
It's missing MIDI control though. That would be a cute arduino/mididuino project. Edit: in the sense of adding MIDI control to a filter - not simulating audio-rate DSP via an Arduino.
I'm a bit of a Korg Kaoss pad enthusiast but some kind of multi-band resonant filter - with envelope control would be a real nice thing to have as a way of shaping the spectrum of music. Actually, sounds like I'm describing a modular synth now. Especially something a little like the Doepfer A 127 module
Thursday, November 26, 2009
heart of darkness
that's right, Windows Server 2008. One recurring annoyance (amongst many) is the status of files that are 'blocked' by default ie. cannot be executed or bug you whenever you want to open them.
Normally you will 'unblock' them by getting the file properties in explorer & selecting the 'unblock' button. Bit of a problem in the case of several hundred files in say a webapp installer.
A solution: install sysinternals streams app. This alters the file attributes so as to remove the 'blocking'. Running the following wil recursively fix an entire directory:
streams.exe -s -d blah:\target\directory
Normally you will 'unblock' them by getting the file properties in explorer & selecting the 'unblock' button. Bit of a problem in the case of several hundred files in say a webapp installer.
A solution: install sysinternals streams app. This alters the file attributes so as to remove the 'blocking'. Running the following wil recursively fix an entire directory:
streams.exe -s -d blah:\target\directory
JavaScript print (to console): Rhino
Rhino implements the core JavaScript language. There's no DOM in there to simulate a web browser, so to print lines to the quick & dirty JS shell, you have to use it's own print statement:
print("text here"); unlike the typical: document.write("text here");
the syntax here is just the same as building a JavaScript string: "literal text" + variable...
Likewise Max/MSP has it's specific: post("blah"); to print to the max message window.
print("text here"); unlike the typical: document.write("text here");
the syntax here is just the same as building a JavaScript string: "literal text" + variable...
Likewise Max/MSP has it's specific: post("blah"); to print to the max message window.
JavaScript development environment
disclaimer - these postings are quite unfriendly - perhaps I'll edit them into something more readable when they seem to be kind of complete
so I decided to get back onto the JavaScript thing. The purpose of this being to do work for upcoming projects in Max/MSP and some web application stuff (via ajax kind of ways of doing things I imagine).
What it comes down to is re-learning the language (whoops) and the best way to code particular tasks. So I want something 'platform neutral' ie. not to load into a web browser etc just to see if it works...
Mozilla Rhino comes to the rescue: a JS interpreter written in Java - which opens up some nice ideas for embedding, calling Java classes from your script etc. Here, I'm just going to use the JS shell utility as a simple execution shell to call files containing js code. The method of calling it via the command line is a bit tedious, so the following is neaters:
This is the basic setup once the Rhino download is safely unpacked in /opt (& referred to via a link: /opt/rhino.
a) add the rhino jars (js.jar & js-14.jar) to your CLASSPATH.
b) create an alias in your shell:
> js ./test_file.js
Rhino flags etc should all work etc.
easy. Quick & Dirty.
so I decided to get back onto the JavaScript thing. The purpose of this being to do work for upcoming projects in Max/MSP and some web application stuff (via ajax kind of ways of doing things I imagine).
What it comes down to is re-learning the language (whoops) and the best way to code particular tasks. So I want something 'platform neutral' ie. not to load into a web browser etc just to see if it works...
Mozilla Rhino comes to the rescue: a JS interpreter written in Java - which opens up some nice ideas for embedding, calling Java classes from your script etc. Here, I'm just going to use the JS shell utility as a simple execution shell to call files containing js code. The method of calling it via the command line is a bit tedious, so the following is neaters:
This is the basic setup once the Rhino download is safely unpacked in /opt (& referred to via a link: /opt/rhino.
a) add the rhino jars (js.jar & js-14.jar) to your CLASSPATH.
b) create an alias in your shell:
alias js="java org.mozilla.javascript.tools.shell.Main"
Then you can simply execute a file of JS code with:> js ./test_file.js
Rhino flags etc should all work etc.
easy. Quick & Dirty.
Wednesday, November 11, 2009
http proxy environment variable
I keep on forgetting this - because it's set and forget. Then you move to new machine, try and run apt or something and...
To use the internets from your shell (lynx,wget, apt or yum from the command-line etc) when located behind a proxy server. Set an env var 'http_proxy' in your profile (.bashrc, .profile etc) - or just set it from a script or command line:
export http_proxy=http://your.proxy.address:proxy-port
if the proxy server wants authentication:
export http_proxy=http://username:password@your.proxy.address:proxy-port
(hmm, password in plain text - make sure your dot files can only be read by self)
My problem is that I tend to forget to add the protocol ('http://') to the above line & then waste some time swearing when it doesn't work. I need to setup more machines, then I'd remember.
To use the internets from your shell (lynx,wget, apt or yum from the command-line etc) when located behind a proxy server. Set an env var 'http_proxy' in your profile (.bashrc, .profile etc) - or just set it from a script or command line:
export http_proxy=http://your.proxy.address:proxy-port
if the proxy server wants authentication:
export http_proxy=http://username:password@your.proxy.address:proxy-port
(hmm, password in plain text - make sure your dot files can only be read by self)
My problem is that I tend to forget to add the protocol ('http://') to the above line & then waste some time swearing when it doesn't work. I need to setup more machines, then I'd remember.
Saturday, February 21, 2009
perl one-liner
perl -e 'while(<*.png>){$n=sprintf("%02d",++$i,$_);rename($_,$n."frumpus\.png")}'
append an ascending number to all the files in a directory: ie "27frumpus.png"
append an ascending number to all the files in a directory: ie "27frumpus.png"
Subscribe to:
Posts (Atom)