MFP -- Music For Programmers Release 0.03, "Mostly For Presentation"
I'm pleased to announce a new version of MFP, containing many fixes and improvements. It is still not anywhere near a "production" level, but is becoming more and more usable. Your interest and participation are invited! A summary of changes is below. Please see the GitHub issue tracker for complete details: http://github.com/bgribble/mfp I'm also happy to say that I will be presenting a paper about MFP at the 2013 Linux Audio Conference (May 9-12). I believe the presentation will be live streamed. See http://lac.iem.at for details. There are many interesting talks on the schedule. My talk will be on Friday, May 10 at 16:50 CEST (UTC+2). Changes since release v0.02: ---------------------------------------- * #49: Remove last lock calls from JACK process() path * #51: Multiple [r]/[r~] receivers can share a name (multicast/bus) * #52: Multiple selection in UI (rubberband box/Shift+click) * #55: Cut/copy/paste using JSON to X Clipboard * #57: Initial support for NSM session management * #58: Implement MIDI control learning for all Processors * #65: Save/restore MIDI and OSC controller routings * Many other bugfixes and improvements About MFP: ---------------------------------------- MFP is an environment for visually composing computer programs, with an emphasis on music and real-time audio synthesis and analysis. It's very much inspired by Miller Puckette's Pure Data (pd) and Max/MSP, with a bit of LabView and TouchOSC for good measure. It is targeted at musicians, recording engineers, and software developers who like the "patching" dataflow metaphor for constructing audio synthesis, processing, and analysis networks. MFP is a completely new code base, written in Python and C, with a Clutter UI. It has been under development by a solo developer (me!), as a spare-time project for several years. Compared to Pure Data, its nearest relative, MFP is superficially pretty similar but differs in a few key ways: * MFP uses Python data natively. Any literal data entered in the UI is parsed by the Python evaluator, and any Python value is a legitimate "message" on the dataflow network * MFP provides fairly raw access to Python constructs if desired. For example, the built-in Python console allows live coding of Python functions as patch elements at runtime. * Name resolution and namespacing are addressed more robustly, with explicit support for lexical scoping * The UI is largely keyboard-driven, with a modal input system that feels a bit like vim. The graphical presentation is a single-window style with layers rather than multiple windows. * There is fairly deep integration of Open Sound Control (OSC), with every patch element having an OSC address and the ability to learn any other desired address. The code is still in early days, but has reached a point in its lifecycle where at least some interesting workflows are operational and it can be used for a good number of things. I think MFP is now ripe for those with an experimental streak and/or development skills to grab it, use it, and contribute to its design and development. The code and issue tracker are hosted on GitHub: https://github.com/bgribble/mfp You can find the LAC-2013 paper and accompanying screenshots, some sample patches, and a few other bits of documentation in the doc directory of the GitHub repo. The README at the top level of the source tree contains dependency, build, and getting-started information. Thanks, Bill Gribble _______________________________________________ Linux-audio-dev mailing list [email protected] http://lists.linuxaudio.org/listinfo/linux-audio-dev
