Hacker News new | ask | show | jobs
by Applejinx 3345 days ago
The trick is how much state you have to keep in your head. Something like Blender requires enormous state about even things like what key combinations mean in different contexts: it's a poster child for impossibly demanding state requirements.

Something like the Flash pen tool is much simpler, but still absolutely requires you to maintain some state: clicking versus click-dragging, remembering not to close a shape by simply clicking on a control point without also dragging out Bezier points. There are expectations before you can begin to flow with the thing.

I've been working hard on this concept using a Minecraft mod (Snowball Madness: http://www.airwindows.com/snowball-madness/ ) that suffered the same problem. I'd made countless 'effects' so it was nearly impossible to remember what did what.

After a drastic functionality-culling process, I began rebuilding things in line with a concept: generalizing. If you can place a block above a snowball and it places the block where the snowball hits, that's what it does, no exceptions. TNT used to spawn explosions just for silly fun, but it became 'place TNT block' altering the type of silliness. Pickaxes used to dig large holes in rock (in some cases, leaving ores hanging) so all the other tools got similar treatments: axes vanishing wood logs, shovels vanishing dirt, hoes turning grass/dirt into tilled farmland. Always trying to incorporate 'cheaty' ways of doing things but predictably so.

It's like the old Apple UI guidelines. The default expectation is that you can grope blindly towards a result and things do what you think they would do, allowing you to not think about the process.

1 comments

How about coding a song instead? With the right language or DSL it should be possible. Substitute a Music IDE for the DAW, maybe keep some visualizations (synced to the code of course).

I suppose musicians are more comfortable with a visual metaphor. Still the over-the-top skeuomorphism doesn't seem that efficient to me compared to just coding it.

There are numerous examples of music programming languages. I imagine some people have some success with them, but I think they are not widely adopted because it lacks the immediacy and tight feedback loops available in DAW.

In a DAW, as you're playing the track, you crank the reverb knob until you hit the sweet spot.

In a music programming language you fiddle with values and re-compile repeatedly until you find the sweet spot, but even then it's hard to find because you can't remember if it's better this time you compiled or last time.

For musical coding to work, I think it needs a Bret Victor / Swift Playgrounds / Lighttable style IDE, and then... it starts to look a lot like a DAW, just with algorithms instead of a note grid or timeline.

Some skeuomophic design makes more sends in DAWs, especially the mixer where you might be controlling it with an external controller.

That said, a lot of plugins and virtual instruments never left that world of design after most others moved on.