Archive for June, 2004

Physical Music

Posted by todbot on June 22nd, 2004

There’s at least two ideas I’d love to see implemented:

  • Lego-esque modular MIDI controllers
  • Physical tile-based Music Clip UI for Acid/Garageband/Logic/Cubase/etc.

Both of these ideas have been percolating around the my local noosphere
for some time. So I don’t forget, or the ideas mutate, I’m going to try to
describe each one.

  • Lego-esque modular MIDI controllers
    For better or worse, we’re in an age of software synthesizers, software mixers, software effects, and so on. Plug-in hell. While the malleability of software allows a diverse culture of interfaces, we humans must still interact with them with the anemic interface of a single 2-D pseudo-analog pointer. Interacting with these software doppelgangers via such an input is tiresome and inefficient compared to the rich multivariate interfaces of the devices they are based on.

    One might argue that there exists many external MIDI controllers or ‘control surfaces’ to help one break out of the mouse jail, but these devices suffer from being either too generic (a bank of blank knobs) or too specific (a bank of mixer sliders).

    Instead, imagine a collection of physical UI modules: a slider, a knob, a button, a display, and a controller that has the MIDI interface. To make a mixer, you grab a bunch of sliders, click them together, and click the controller to the end. To make a sequencer trigger, click together a bunch of buttons and displays.

    Ahh, but a problem with this concept: no feedback from the the software app about the state of the button, knob, slider. This can perhaps be solved by embedding simple displays within the ‘input’ devices, like what the Nord Lead has.

  • Physical Tile-based Music Clip UI
    The ‘clip’ interface present in Acid/GarageBand/Logic/etc. is pretty powerful: horizontal axis is time, vertical axis is ‘track’. An audio clip can be ‘drawn’ across a time range to indicate when it should play, and it can be truncated on either end to state at what point in the clip it should start and stop (or loop).

    Now think of how this could be implemented physically. I’m thinking: tiles representing audio clips on a surface
    that reads both the tile identity and its position. [...tbd...]

Sloppy Focus Tricks

Posted by todbot on June 21st, 2004

Are you a Unix geek who has been seduced by Mac OS X?

Are you totally frustrated with the lack of ’sloppy focus’?

Here’s some tricks to do, depending on what you want to do:

  • for just Terminal windows:
     %  defaults write com.apple.Terminal FocusFollowsMouse -string YES
    
  • for X11 windows:
     % defaults write com.apple.x11 wm_ffm true
    
  • for most other Mac apps:

    use Codetek Virtual Desktop

OS X MIDI Blog

Posted by todbot on June 15th, 2004

Andrew Choi has an OS X Programming blog which contains a lot of useful and interesting observations and test code as he builds a auto-accompaniment application.

Potentially useful to my KCS remake idea (assuming I can use MusicPlayer and not have to write my own scheduler) are his experiments with the MusicSequence and MusicPlayer APIs that are part of Core Audio (and not, confusingly, really considered part of Core MIDI). Particularly useful is his MusicSequenceTest code that shows how to use it in a lot clearer way than the official example given in /Developer/Examples/CoreAudio/Services/PlaySequence.

Aside: just found this page on with data flow diagrams on MIDI Operations in Core Audio that seems kinda useful.

Question: since there is a one-to-one relationship between MusicSequence and MusicPlayer, and the MusicPlayer is what has the transport controls (stop,start,etc), can I instantiate many MusicPlayers (say 128 of them) and start/stop them all at various with impunity, with multiple MusicPlayers running concurrently? If so, the hard part of KCS is done.

Tiny Access Points as 802.11 Coprocessor

Posted by todbot on June 15th, 2004

I’ve essentially given up getting something like the DPAC Wireless module (even though Circuit Cellar has had at least two nice articles about it). However, I recently found a consumer access point that is cheaper and almost as small.

The Asus WL330 Pocket Access Point was recently
reviewed
by Tom’s Hardware (I didn’t know Asus even made networking gear).

It has some interesting features:

  • Acts as AP, bridge or ethernet adapter
  • tiny: 86mm * 62mm * 17mm (3.4″x2.4″x0.7″)
  • low-ish power: 4VDC @ 1A
  • pretty darn cheap: ~$69 (and getting cheaper it looks like)

From the pictures that Tom’s Hardware took of the internals, it looks like a few more millimeters could be shaved from it’s width (maybe down to 50mm) and a bit from its length (maybe down to 80mm) by removing the outer plastic shell.

And it turns out Asus makes an 802.11g version of this gizmo, called the Asus WL330g Pocket Access Point.

Ambient Orb Technical Resources

Posted by todbot on June 14th, 2004

Wow, those guys at Ambient Devices,
the makers of the fun but useless Orb,

have full
Technical Resources
on how to build your own. Even with schematics.

Useful Tools Recap

Posted by todbot on June 14th, 2004

I just got a new Powerbook and had to re-remember all the bits I need/like:

  • uControl — Capslock -> Ctrl key remapper
    I also use it to remap the ‘enter’ key next to the arrow keys to be a ‘fn’ key, so I can do ‘fn+arrows’ to give me easy pgup,pgdown,home,end.
  • Codetek VirtualDesktop Pro — pager / virtual screen
    Like any good Unix, this functionality should be part of OS X, but oh well. It also supports a hack to sorta give one Sloppy Focus.
  • WindowShade X — Windowshade functionality (window minimizer)
    This was part of MacOS, but left with OS X. Here it is as a third-party app. Sigh.
  • Carbon Copy Cloner — disk backup and cloner
    My backup solution is to clone my Powerbook’s disk to an external disk that I boot from in case of catastrophic disk failure.
  • MenuMeters — menubar stats
    Gives you little graphs of CPU, net, disk, etc.
  • PDF Browser Plugin — view PDFs and .ps files in the browser
  • Adium — multi-protocol IM client
    Adium is based off of libGaim, and supports tabs.
  • Mozilla Firefox — Kick-ass fast browser
    Sort of obvious, yeah, but Firefox still beats out Safari in terms of dealing with all the crazy pages out there
    (especially forms-based broken-ness)
  • Fink — Unix program package manager
    Fink can give you all the crap you can get on RedHat, if you want it.
    Things I use:

    • gnuplot
    • ncftp(get)
    • nmap
    • mtr
    • unrar
    • wget

    All my other Unix needs, even X11, are (surprisingly) supplied by OS X itself.

  • Media players
    Sometimes you just gotta view the occasional .rpm or .avi:
    - RealOne Player
    - Windows Media Player
  • Network Beacon — Rendevous service publisher

Almost recommended:

  • XBattery
    — battery monitoring utility

Modal Sheet Dialog Box Speed-up

Posted by todbot on June 8th, 2004

As
discussed on macosxhints.com
, there is a way of speeding up the
‘drop-in’ speed of those modal ’sheet’ dialog boxes.
Here’s what I like:

 % defaults write NSGlobalDomain NSWindowResizeTime .05

Smaller numbers make it faster, larger numbers make it slower.