[comp.sys.amiga] Bars & Pipes: A User's Report

kg19+@andrew.cmu.edu (Kurt A. Geisel) (03/11/90)

Bars & Pipes : A User's Report

Since I have seen little coverage in the various music and computer
magazines I subcribe to of the remarkable new Bars & Pipes music
sequencing package from Blue Ribbon Bakery, I decided to write a brief
report of my experience with the program, at least as far as I have
delved into it in the first week of use. 

Bars & Pipes, which is available strictly for the Amiga at the moment,
is more than just a sequencer.  It was written by Todor Fay, the same
author of a previous Amiga product, SoundScape.  It was cowritten by
Melissa Jordan Grey, who appears to have music credentials and was
involved more with the design of the product than the programming. 

Those of you familiar with SoundScape (I "upgraded" from SoundScape
myself) will recognize Fay's philosophy prevalent in Bars & Pipes, and
hence its uniqueness to the Amiga architecture.  Like SoundScape, Bars &
Pipes processes MIDI events through independent modules, which are
actually seperate tasks running simultaneously in the Amgia's
multitasking environment.  The MIDI events pass between modules through
a form of interprocess communication, which the user sees as
"connections" and is free to route or "patch" any MIDI processing setup
he or she desires.  Unlike SoundScape, Bars & Pipes has a much slicker
and intuitive (and musically useful) interface. 

Bars & Pipes' MIDI event processors are called Tools and are represented
as icons in a toolbox.  These are the standalone MIDI event processors. 
All Tools don't have to be loaded into the toolbox at once.  The common
Tools are automatically in the toolbox upon startup, but additonal ones
can be loaded later and presumably the set of tools can be expanded in
the future. 

The sequencer section of the program is represented by a scrollable list
of tracks.  An infinite number of tracks, memory allowing, are
available.  A descriptive name and a brief notation can be given to each
track.  Each track in the list is represented by a strip which displays
a "zoomed out" view of the recorded pattern in that track (like a mini
player piano roll).  The entire track list can be scrolled forward and
backward in time by a scroll bar on the bottom. 

Each track is preceded and followed by a "Pipeline", representing a
channel through which MIDI events flow.  Pipelines begin at the far left
of the track's event display, flow into the sequencer, and flow out the
right side of the sequencer.  Tool icons from the toolbox can be dragged
into any order in the piplines.  Tools which are connected before the
sequencer process events before they go into the sequencer.  Hence, the
processing done by the tools placed here are permanently recorded. 
Tools can also be placed after the sequencer, where processing occurs
during play back and does not permanently effect what is recorded.  Some
tools can branch output into another track and there is a "Feedback"
tool which will place the final output of one track into the input of
another track. 

Here is a complete list of tools which came with my package:

Accompany B - Automatic accompaniament.  This is essentially a software
Fun Machine! It's neat, especially when you can assign the synth voices
of your liking and string any number of them together. 

Articulator - Modifies duration (stacatto/legato) of notes passing
through it. 

CounterPoint - Automatically generates first series counterpoint with
random variations.  (I had the most fun with this.)

Delay - Delays MIDI events.

Doctor of Velocity - Forces all velocities to a preset point.

Echo - Provide echoes with any number of repeats, falling velocities with
various slopes.

Elbow - Forces all events into neighboring pipeline.

Feedback In - The "output" of the Feedback device, which allows you
to feed the final output of one track into another.

Feedback Out - The "input" of the Feedback device.

Harmony Generator - Makes harmonies from a single note.

Inverter - Squeezes all notes into a preset range.

Keyboard splitter - Only one split point, but you can keep stringing
them together.

Merge In - Takes output which has been branched off another pipeline.

MIDI In - Main MIDI intput.  This is the default tool as the first input
of all pipelines.  You can filter events such as controller, program
change, etc. 

MIDI Out - Main MIDI output.

Modulator - Shifts notes by a specified amount.

Note Filter - Allows only notes from a preset range.

Note Flipper - Flips note about any axis.

Phrase Shaper - Applies dynamic curves to incoming velocities.

Quantize - One of the best quantizers I've ever used.

Reverser - Reverses MIDI events in time.

Sforzando - Creates Sforzando curves through Poly After-Touch.

Subdivider - Splits notes into many notes by a preset fraction.

Transpose - A true transposer.

Triad - Plays triad chords from single notes.

Unquantize - Introduces random variations to timed events.

As you may have noticed, some of these tools would require more musical
knowledge than just a sequence.  More on that in a moment. 

Not all tools can be placed in the pre-production side (before
sequencer), because they depend on historic knowledge (e.g.  the Reverser
obviously can't reverse events which haven't occured yet). 

In addition to being a supposedly open architecture (I've already
inquired about the availability of a developer's kit), you can create
MacroTools consisting of special combinations of existing tools.  In
fact, some of the tools provided are MacroTools (e.g.  Triad simply
consists of two Transposers- you can easily make a chord player of any
type you want.)

In addition to the Tools, another form of external processing program is
the Accessory.  Accessories seem to be more on the level of an
application, but they still have access to Bars & Pipes internal data. 
The Accessories currently included are MUFFY, a standard MIDIFile
converter, and Follow the Leader, which prints lead sheets (more on that
in a moment.)

Now, I mentioned that some of the tools require more musical knowledge
than just a sequence.  Here is one of Bars & Pipes' main strengths that
make it much more than a sequencer: it supports quite a bit of "musical
parameters." Although you don't need to define them for just plain
sequencing, here are some of the musical parameters which Bars & Pipes
can include in a sequence:

Time Signature
Key
Scale
Mode
Dynamics
Rhythm
Chords
Lyrics

You can first help yourself tremendously by defining a Time Signature,
at a complete minimum.  With that, you get:

- Measure and beat lines in editing and the mini piano roll displays.
- Metronome is correct.
- Editing and song pointer operations are easily locked to measures.

Things just take off from there.  The Key, Scale, and Mode parameters
allow things such as CounterPoint and Harmony Generator to behave
intelligently.  You can call up a grayed display in your music editor to
show you the scale you are using.  You can also snap edited notes to the
scale. 

Dynamic curves will direct the loudness of various auto accompaniaments
as well as allow you to automatically shape velocities. 

Rhythms can also be shadowed in the note editor, and will help the
Accompany B use an intelligent Rhythm. 

Chords are handy for printing out lead sheats as well as generating
harmonies. 

Lyrics can be entered, and various phrases can be locked to certain
measures.  The Follow the Leader accesory uses Chord and Lyric
information to print out a lead sheet. 

Every parameter has a large list of preset options available, but you
can also create your own.  (There are plenty of Rhythms and some Modes
I've never even heard of, so I haven't had to make my own yet.)

Every parameter can change dynamically throughout the piece.  Some (such
as key) can be different for every track. 

Now that we have the basic architecture out of the way, I will tell you
how I feel about this package. 

Sequencing

As just a sequencer, this is a damn good one.  I've looked at Music-X
and it is SLICK, but this is no less slick as a sequencer.  With 192 PPQ
resolution and a remarkably steady clock, it functions very well when
recording.  I've found it records much better than SoundScape and I have
yet to choke it.  Even with a large number of tools in the Pipeline, it
doesn't seem slowed down. 

The "zoomed out" event strips (mini piano rolls - damn I wish they named
those things) are extremely handy.  Scrolling your way around the piece
with the scroll bar is quite speedy- the program is very smart about
when to update graphics and is quite speedy in doing so, especially
considering there is some eight tracks on screen at once. 

I've also had great success with syncing with my drum machine, no
insignificant feat since it is an aging Oberheim DX with MIDI Clock
support only- no Song Position pointer.  In addition to being able to
send MIDI Clocks/Time Code, B&P can be driven by external Clocks/Time
Code. 

B&P has extensive SMPTE support, but doesn't currently support a
hardware SMPTE reader/writer.  In fact, I am not aware of any Amiga
SMPTE hardware, but then I haven't looked.  If you have a box which
converts SMPTE to MIDI Time Code, B&P has full support of the various
SMPTE frame speeds.  You can pop up a SMPTE time display at any time. 

I should also mention a couple of other video production features I
haven't really played with yet.  You can create sound effects tracks
which are on absolute time.  Then, no matter what time signatures/tempo
changes the music is following, sound effect events will come up at an
absolute time.  In addition to support embedded tempo changes, B&P has
an extensive Tempo Map facility which provide various curves and speeds
for tempo changes and allows you to pace your music with SMPTE time
events. 

A feature in B&P I really love is the Flag Set.  The main track display
contains many special flags which can be dragged and left anywhere.  In
addition to Song Pointer, you have the Punch In/Punch Out flags, two
memory flags, Loop Flags (see below), and Edit Flags (which define
ranges for edit operations).  Flags can be dragged individually or
entered in pure number format in a special window (in
measures/beats/clocks).  Flags can lock to beat, measure, or be
completely free. 

In addition to the standard Punch In/Punch Out facility, B&P has a
way-cool recording feature called Looping.  After setting the Loop flags
around the section you want to record, the sequencer will give you a 4
bar lead-in and then allow you to repeatedly record the section eight
times.  After you have made eight attempts, you get a window with eight
numbered buttons.  You can keep pressing the buttons in any order to
hear the various versions of your recordings.  Then, you can either
trash them all, or select one, which will be placed in the sequence. 
I've used it many times already, and I love it!

Editing

Editing support in Bars & Pipes is very good.  Editing operations can
occur at both the global and the track level.  In both cases, Edit Flags
define the range over which the editing operation will take effect. 

Track editing has its own blown-up display.  You have your choice of a
normal staff display or a "Piano Roll" display.  You can also have both,
and you can have any amount of information stacked within the track
editor, including all of the musical parameters mentioned above,
velocities, controllers, poly and mono aftertouch, program changes, etc. 
There are quite a bit of editing tools and they are all quite useful. 
I've found editing to be a snap. 

Note entry from scratch, however, can be a bit clunky.  This is not a
replacement for DMCS or the like.  Even with the staff display, you
don't get the usual note symbology.  You still get the "duration bars",
as with the piano roll display.  If you want to edit notes from scratch,
you have to preset the note value, duration, and modifiers before each
note (as long as you aren't entering a series of notes with the same
parameters, in which case you can just keep clicking.)

A "magic wand" tool can, with a "wave", modify velocity curves or note
durations to match musical parameters.  You can have key/scale & mode as
well as rhythms shadowed on the editing page.  You can edit in any
resolution, but you can also snap to time signature, key/scale & mode,
and rhythms.  You can also bring up a window on any note or event and
edit its parameters (time, duration, etc.) in raw number format. 

Editing velocities, aftertouch, and controllers is as easy as dragging
the discrete lines or drawing curves.  You can also use "magic wand" to
match velocity to the dynamics in the piece. 

At both the global and track level, you can "Toolize" between the Edit
Flags.  You can set up a chain of tools in the ToolPad and "Toolize"
essentially processes all notes in the sequence between the edit flags
using that tool configuration. 

Step time recording is also supported.

Overall, editing is smooth and well done.  The "Toolize" feature is
especially handy.  I'm looking forward to doing serious scoring with
this. 

ABA Song Structure

One neat feature of B&P is the ABA Song Structure feature.  You can
define and name the sections of your song.  Thereafter, you can
rearrange the sections in any order just by editing an ASCII list of
your sections (e.g.  A B A B C B A).  Bars & Pipes will copy or move the
appropriate sections automatically.  After editing or changing any
section of your song, selecting "Propagate" in the edit menu (either
globally or within a track) will copy those changes to every occurance
of that section thereafter. 

This is an idea with super potential, but this implementation is not
entirely watertight.  It is very dangerous throwing sections around
using the ABA List and I suggest you SAVE SAVE SAVE before you do
anything with it.  Bars & Pipes DOES NOT keep only one copy of each
section and loop around.  After you define the ABA list, it rearannges
and copies until the complete sequences matches what you have defined. 
You can easily write over other sections of music with this.  I believe
it is also responsible for a nasty which I will describe under Bugs. 

Here is the ABA List's weakness: you HAVE to have each section recorded
once at the beginning of the piece, because when you define sections
intially they have to be consecutive.  You can't, for instance, have two
copies of what will become section A, then B BEFORE you define the ABA
structure.  You have to have 1 A, followed by 1 B, 1 C, etc.  In other
words, it can't be used to structurize an existing song without some
extensive editing first. 

Once a song is structurized, though, rearranging and editing is a snap. 
This would be a stupendous feature if it weren't for the problems I've
outlined. 

Interface

I have found the interface to be VERY well done- leaps and bounds over
SoundScape.  Playing with tools and pipes is quick and easy (I was doing
some pretty complex tool connecting on my first session) and the menus
are very well laid out. 

The buttons on the sequencer are colorful and stylized- "arty", which
really bothered me at first (kind of like the front panel of an EMAX-
Blechh!), but I got used to them.  Once you get the hang of it,
everything is logical and within reach. 

Bugs

I haven't encountered too many killers.  There seem to be a number of
bugs in the display code, especially in editing.  Pointers have a
tendency to suddenly turn a putrid shade of green and stay that way
until you change pointers.  The title bar annunciator which tells you
what tool you have selected doesn't really go away, even after you've
thrown away the tool.  Little things like that. 

The worst display bug I've found: if you turn on lock to key/scale &
mode in the editor, dragging notes don't erase themselves and leave an
ugly mess behind until the display gets updated. 

The most dangerous bug happened only once and I haven't been able to
recreate it.  It was when I was using the ABA List, which doesn't
surprise me.  At one point, the sequencer got the idea that my song
ended on bar 25.  Bar 24 was the last bar which held events before I
used the ABA List.  Once it decided that the song ended on bar 25, I
COULD NOT CHANGE IT BY ANY MEANS.  Inserting measures, entering notes,
playing with the cut and paste: NOTHING helped.  The song would just
play until bar 25 then stop.  Saving, exiting, and loading didn't help
either. 

The problem was finally "remedied" by cutting my entire song into the
clipboard, starting a new song, redefining all the tracks, and pasting
the song back in.  Needless to say, this is less than optimal. 

I'm not sure what I did, but I haven't encountered this yet again.

Conclusions

Bars & Pipes in an excellent package with a lot of unique features.  I
admit, if you are just interested in sequencing, Music-X is hard to
beat.  However, if Bars & Pipes' unique MIDI processing, musical
knowledge, and "computer-aided composing" potential sound intriguing to
you, I highly recommend this package. 

If Blue Ribbon Bakery actually releases a tool/accessory developer's
tool kit, B&P's utility will basically double for me.  It looks like the
basic architecture for some seriously cool music tools has been laid out
and I would love to get my hands on the programming library. 

As with many upstart packages, the manual is horrendous.  It gets you
through the basics, but its complete swings between cryptology and
patronizing prose are sometimes hard to swallow. 

Actual quote: "Lyrics are the words which accompany music."

A number of the musical features of B&P are quite advanced, such as
Mode.  However, the manual makes really sad attempts at explaining what
they are to the non-musician.  If you are a musician, it sounds trite
and patronizing.  If you aren't a musician, it isn't nearly enough to
get started.  Fortunately, a good blibliography of musical theory is
listed in the back. 

Furthermore, the quality of proofreading is seriously substandard.  I'd
say there is a mega-typo every two pages or so. 

Despite these complaints, I am quite impressed and satisfied with this
package.  It should keep me busy for a long time. 

Bars & Pipes lists for about $300.  I got it through Computer Discount
for $230. 

- Kurt
Kurt Geisel                       SNAIL :
Carnegie Mellon University            65 Lambeth Dr.
ARPA : kg19+@andrew.cmu.edu           Pittsburgh, PA 15241
UUCP : uunet!nfsun!kgeisel  "We just need to short-circuit the continuum on a
BIX  : kgeisel               5 or 6 parsec level."  - Forbidden Planet

karl@sugar.hackercorp.com (Karl Lehenbauer) (03/25/90)

Does Bars & Pipes have the ability to read and write files in Standard MIDI
Format (SMF)?

What about performing?  Can I load a set of songs into it at once and drive
through them in some simple manner when playing out?

Many of the features sound very interesting.  Do they introduce any weirdnesses
in the "standard" operations of recording, playing, punching in and out and
quantizing?

Also, does it have an undo buffer, and if so, how deep is it, and does it have
any ability to define a "save depth" such that you can keep a number of 
previously saves automatically, or is there even one level of backup?
-- 
-- uunet!sugar!karl	"As long as there is a legion of superheros, all else
--			 can surely be made right." -- Sensor Girl
-- Usenet access: (713) 438-5018

umbirch2@ccu.umanitoba.ca (03/26/90)

  Still on the topic of Bars & Pipes, does anyone have the demo version of
it?? If so can someone please send it to me, or tell me I can get it??

                                       Thanks, Robert Birch
                                        <umbirch2@ccu.umanitoba.ca>