Hey,
I'm currently in the process of designing a new MIDI sequencer for BeOS. I know that there are a few other MIDI sequencers for BeOS, but none of these fit my requirements, and don't appear to be actively developed.
If there's anyone out there who's interesting in doing MIDI sequencing in BeOS, or even audio recording/multitracking, some feedback would be *extremely* helpful at this stage to help determine what features are necessary.
Possible features or design ideas include:
Interface behaviour and editing ===============================
* Fast, compact, BeOS-native GUI, no weird controls.
* Single window interface? (perhaps with the ability to spawn new windows if specifically required, e.g., grid editor).
* Possible to drive it entirely from the keyboard, configurable shortcuts.
* Linear sequencing; e.g., not pattern based. Think Cubase or Cakewalk, rather than e.g. a MOD tracker.
* Arrangement window possibly based on bar-blocks rather than Cubase's "tape clippings". I'm not 100% certain of this yet, and a compromise may be possible. Bar-blocks allow edits to take place fairly freely (the zoom level could be changed so that a single block represents a beat, etc.), whereas tape clippings require a lot of "housekeeping" work to snip them, copy them, etc.
Examples:
Tape clipping: >http://www.h7.dion.ne.jp/~fmtk/LOVELOG_IMG/20050927cbe70345.jpg
Bar block: >http://www.socc.ie/~midiclass/images/sequencer.jpg
* Probably closer to Cakewalk in design than Cubase. That is, the arrangement window may have a set of user-configurable columns for various track parameters such as name, port, channel, bank, patch, key+/-, velocity+/-, time+/-, volume, reverb, mute etc. Somewhat like Tracker's columns, although a bit more friendly towards keyboard navigation and field editing.
* Possibly integrated patch management (librarian) and synthesizer editor features. There will definitely be a way of selecting patches and banks by name instead of just number, at the very least
* The window layout may be based on horizontal "strips", particularly the grid editor. The idea is that you can add various strips to the window quickly and easily, so you could edit three parts at once, each in their own horizontal strip. Or you could edit the controllers and the notes at the same time. If the application uses a single-window design, a list of tracks may be present at the side of the window. Selecting a track will bring that up in the piano roll. Selecting multiple tracks (using shift) will bring each one up in its own strip. There would probably be some way of toggling between "grid editor" view and "arrangement" view quickly and easily -- a single click and/or keypress.
* Plug-ins to process MIDI data. E.g., the "transpose" function is really just a plug-in. Probably loaded from disk at runtime, and user-developable.
* Every block edit operation goes via an "event filter", which lets you exclude or include certain events from the edit operation. For instance, you could cut all controller #7 values, transpose all Bbs to B, increase the velocity of all notes except the octave above middle C, etc.
* There *may* be a way of sending a single track to multiple MIDI ports and/or channels at the same time; perhaps multiple output destinations or "clone tracks", intended to make layering multiple sounds easier.
Recording =========
* Only one track can be recorded at a time, at least in the first version, unless I get feedback requesting otherwise. It may be possible to record multiple midi channels at once and split them up on separate tracks.
* There will almost certainly be a "record buffer", which records all incoming MIDI data whenever the transport is rolling, even during playback. When you switch the transport out of record mode, the record buffer is dumped onto the selected track, thus implementing the record function. However, because the record buffer is always listening, if you stumble across an interesting riff while the transport is rolling in "play" mode, it's still possible to recover your lost idea by manually dumping the record buffer to a new track, available as a menu option.
* I'm not sure yet how it should handle recording with the transport in "loop" mode. Should it record over all data on the previous pass? Merge the new take with the last one? Automatically move to the next track? User-configurable?
* Sequencer will act as a synchronization master, transmitting MIDI clock and MTC along with MMC if required. Sequencer will respond to MMC. The first version may or may not support slave synchronization. When it does support slave synchronization, then I may implement some interesting features using the sync engine, such as the ability to synchronize the sequencer to a MIDI footswitch, being tapped on each beat, allowing "free time" recording.
Audio =====
I'm not sure if the application should do multi-track audio recording yet. It adds a great deal of complexity to the application, and breaks a lot of the purity of the user interface. However, as I would quite like a multi-track recording application, unless anyone else is planning to develop one then I may write a standalone recording application. If there's enough demand for integrated multi-track recording in the sequencer, I may consider that option instead.
=========================
If anyone's got any comments on these proposed features, or could highlight exactly what they find inadequate about the existing BeOS sequencers, I would find that very helpful! Most of it is still highly subject to change, so even if you disagree with some of the proposed design decisions, you may still be able to convince me to rethink it.
In general I'm hoping to keep feature creep to a minimum, since I firmly believe that simpler applications are always better, providing they supply enough features to do the job smoothly.
|