2006-10-28 --- CL-FRAME now runs Snd and tells it to start the Snd-RT engine. I've got a few things to add to the interface to make testing this easier, and then I'll see if I can create some executable diagrams. But it's the weekend, so it might wait until Monday if I am lazy...
2006-10-27 --- A bit slow today, but still productive. I finally wrapped my head around Snd-RT and got it making some noise. I've realized that CL-FRAME's notions of dataflows and ports will translate very naturally to Snd-RT's notions of <rt-play> instances and buses. I also got rid of the flicker in CL-FRAME's redrawing.
2006-10-20 --- Spent some time today on refactoring and cleanups. I also implemented a general-purpose keybinding mechanism quite similar to that of Emacs, and a general-purpose text widget (similar to, but much much simpler than, that of Emacs.) More to come...
You can download cl-frame.lisp if you are curious, but right now it's barely usable.
The truth is, I'm not entirely sure what is is yet. But here is an attempt to define it:
CL-FRAME is an alternative user interface framework for Lisp programs and the X Window System. It provides a notion of "workspaces" composed of pages called "worksheets", upon which are inscribed arbitrary visual programming elements, user interface widgets, and commentary.
The idea is that one constructs an application and its user interface by arranging and connecting these different pieces together, in some cases writing new widget subclasses in Common Lisp. Each worksheet can handle a task or a group of related tasks. Workspaces are saved in plain text files that may be shared and posted on the Web.
An application may either accomplish its work in Common Lisp, or by controlling external programs, or by some combination of the two methods.
The default interface is inspired by GNU Emacs. There is an interactive lisp listener where one may input commands, and a text editing feature with emacs-style default keybindings.
The first application for CL-FRAME (shown in the screenshot above) is called Soundframe, and implements subclasses for creating worksheets that perform realtime audio synthesis and processing with the Snd environment and its new realtime subsystem. This program is currently under construction and may also include Ecasound support at some point.
The goal is to create a comprehensive music creation interface that is suitable for non-programmer musicians. It is a platform for construction of tools for creating a whole album interactively, combining multiple techniques (jamming, recording, looping, layering, sampling, sequencing, stretching, processing, granulating) into an organic whole.
These are some very early and obsolete notes on the project.
Date: 2008/01/15 11:51:12 AM