Hello to all - my apologies for the delayed response.  Apparently gmail has been appending responses to the original email, which I had placed in a separate folder - so I never saw the replies in my inbox - they went directly to the other folder ... I miss Pine.

Thank you for all the feedback, and I'm glad to hear it built and ran on a few platforms.

If anyone is interested in following the progress, they are invited to follow the SVN changes.  There is new stuff almost daily.  And it usually works before I check it in, too :)

As a side note, my inspiration for this project is Kurzweil's Expression-Mate.  It was a hardware performance device which provided 3 arpeggiators, as well as allowing you to split your MIDI keyboard into 3 separate performance zones, each of which could be fed to a an arpeggiator (or each other).  I missed mine, sold on eBay so long ago, so I decided to write one.

Speaking of zones - there is now another pre-alpha app packaged with arpage source - it's called zonage, and will allow you to split your MIDI keyboard into several zones.  For example you could have the bottom half of your keyboard output to MIDI channel 1, and the top half transposed by an octave up, and output to MIDI channel 2.  There are 4 zones, each with it's own JACK midi in/out.


So, on to the issues:

(1) UI coolness meter
===========================
I agree it's kind of bland, and doesn't exude the coolness of some of the VST apps out there...   Improvements in that area will be secondary to functionality for the moment.  But nevertheless - you are correct - It's kind of lame looking at the moment.  That didn't stop me from making zonage look just like it though :P   But seriously UI enhancement will be a big effort, so I am putting it off until the guts work correctly.


(2) UI size - definitely on the top 3 things on the to-do list. 
===========================
I need to figure out a way to visualize the note division section (quarter, eighth, sixteenth, etc) in a more compact format.  I was originally playing with the idea of having that part of the UI be represented by small image buttons, each containing an image of the actual note type.  That would save the space currently used by the text of the note names.  

This would probably alienate those people not familar with musical notation - thoughts?

An alternate representation would be a slider, which had fixed stops at the proper divisions, and would display a percentage (0.25 for a 16th note, etc) as well as the note icon. ??


(3) GtkBuilder version
===========================
I will try to bump down the version requirement (glade-3 has a version selection screen) and see if that helps.


(4) Plug-in version / calf integration.
===========================
 I can look into LV2 (and DSSI), but if tempo is not available, then the implementation would be at least partially a hack.  I guess I was also looking at this from the vantage point of a "Unix-ish" environment where apps are strung together using patchage or some other JACK patch bay.  That's how I have been using it so far.


(5) FHS compliance - will do.
===========================


(6) Usage / JACK Connections:
===========================
Here is how I have been hooking things up.  I'll use Calf Mono as the example sound source.
(a) Start arpage
(b) Start calf. 
(c) load 2 monosynths within calf
(d) Start a MIDI hardware keyboard (or use jack-keyboard, a JACK-aware software keyboard)
(e) start patchage (you can use qjacktl's patchbay or your favorite JACK patchbay)
(e) in your patchbay, connect ins/outs as follows:
    hardware or virtual keyboard MIDI input -> arp 1 MIDI in
    hardware or virtual keyboard MIDI input -> arp 2 MIDI in
    arp 1 MIDI out -> calf monosynth 1 MIDI in
    arp 2 MIDI out -> calf monosynth 2 MIDI in
    (now hook both monosynth audio outs to your system audio outputs, so you can hear)
(f) Launch seq24 or Qtractor (or any solid JACK time master),
(g) set tempo to 120, and press "play"
(h) note that these don't need to be patched in to anything - they just need to be rolling
(i) Set arp 1 and 2 active
(j) Set arp 1 to eighth notes, and transpose to +7
(k) Set arp 2 to sixteenth notes
(l) Start playing notes on your keyboard
(m) dance and groove-out :)


(7) Meaning of parameters:
===========================
I need to write some sort of manpage, but in the meantime here is a short description:

* Channelized - if checked, the arp will only recognize MIDI -input- on the channel set in the channel spinner.   While JACK transport is rolling, an arp will always -output- on the MIDI channel specified in the channel spinner.

* Locked latching -
(a) - Latching: A pattern is said to be in a "latched" state, when one or more notes are held on the keyboard, and MIDI sustain (CC 64) is received.  A latched pattern will continue to play, even if the you take your hand off the keyboard, as long as the MIDI sustain pedal is held (i.e. until a CC 64 with a value of 0 is sent).

(b) Locked Latching - if the Locked Latching checkbox is checked, then pattern is "locked" as soon as it is latched - that is no additional notes can be added to the pattern.  All notes received by the arp when in this state are simply passed thru to the MIDI output.  This allows you to "solo" over the latched pattern.

If the Locked Latching checkbox is UN-checked, then any note you hit after you have latched a pattern with the MIDI sustain pedal are ADDED TO THE LATCHED PATTERN.

* Interval / Range - if range is non-zero, and interval is non-zero, then any note that is received by the arp will be played, then incremented by "interval" semitones until note+range is reached, at which point the pattern will start back at the original input note.  Range and interval may be negative.

* Scale - takes your input note and plays the selected scale, with the input note serving as the tonic (starting note) of that scale.   Interval is unused when scale is selected, but range is used - i.e. if you select 12 as a range, your scale will play over one octave, than start back at the tonic.

NOTE:  the scales and modes have note been verified correct yet.  There is also the "minor" issue of how to treat certain scales when ascending vs. descending.  Hmmm... version 2 for that one :)