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 :)