Re: [LAD] Development Release - JACK-sync'd Arpeggiator - arpage

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: <linux-audio-dev@...>
Date: Wednesday, December 23, 2009 - 3:02 am

--0016e6db2dcb98f993047b5c8ba7
Content-Type: text/plain; charset=UTF-8

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

--0016e6db2dcb98f993047b5c8ba7
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Hello to all - my apologies for the delayed response.=C2=A0 Apparently =
gmail has been appending responses to the original email, which I had place=
d 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 r=
an on a few platforms.If anyone is interested in following the prog=
ress, they are invited to follow the SVN changes.=C2=A0 There is new stuff =
almost daily.=C2=A0 And it usually works before I check it in, too :)

As a side note, my inspiration for this project is Kurzweil's Expre=
ssion-Mate.=C2=A0 It was a hardware performance device which provided 3 arp=
eggiators, as well as allowing you to split your MIDI keyboard into 3 separ=
ate performance zones, each of which could be fed to a an arpeggiator (or e=
ach other).=C2=A0 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 ar=
page source - it's called zonage, and will allow you to split your MIDI=
keyboard into several zones.=C2=A0 For example you could have the bottom h=
alf of your keyboard output to MIDI channel 1, and the top half transposed =
by an octave up, and output to MIDI channel 2.=C2=A0 There are 4 zones, eac=
h with it's own JACK midi in/out.

So, on to the issues:(1) UI coolness meter =3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3DI =
agree it's kind of bland, and doesn't exude the coolness of some of=
the VST apps out there...=C2=A0=C2=A0 Improvements in that area will be se=
condary to functionality for the moment.=C2=A0 But nevertheless - you are c=
orrect - It's kind of lame looking at the moment.=C2=A0 That didn't=
stop me from making zonage look just like it though :P=C2=A0=C2=A0 But ser=
iously UI enhancement will be a big effort, so I am putting it off until th=
e guts work correctly.

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

This would probably alienate those people not familar with musical nota=
tion - thoughts?An alternate representation would be a slider, whic=
h 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=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3DI will try to bump down the v=
ersion requirement (glade-3 has a version selection screen) and see if that=
helps.(4) Plug-in version / calf integration.

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=C2=A0I can look into LV2 (and DSSI), but if tempo is not availab=
le, then the implementation would be at least partially a hack.=C2=A0 I gue=
ss I was also looking at this from the vantage point of a "Unix-ish&qu=
ot; environment where apps are strung together using patchage or some other=
JACK patch bay.=C2=A0 That's how I have been using it so far.

(5) FHS compliance - will do.=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D(6) Usage / JAC=
K Connections:=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3DHere is how I have been hooking things up.=C2=
=A0 I'll use Calf Mono as the example sound source.

(a) Start arpage(b) Start calf.=C2=A0 (c) load 2 monosynths within =
calf(d) Start a MIDI hardware keyboard (or use jack-keyboard, a JACK-aw=
are software keyboard)(e) start patchage (you can use qjacktl's pat=
chbay or your favorite JACK patchbay)

(e) in your patchbay, connect ins/outs as follows:=C2=A0=C2=A0=C2=A0 ha=
rdware or virtual keyboard MIDI input -> arp 1 MIDI in=C2=A0=C2=A0=
=C2=A0 hardware or virtual keyboard MIDI input -> arp 2 MIDI in=C2=
=A0=C2=A0=C2=A0 arp 1 MIDI out -> calf monosynth 1 MIDI in

=C2=A0=C2=A0=C2=A0 arp 2 MIDI out -> calf monosynth 2 MIDI in=C2=A0=
=C2=A0=C2=A0 (now hook both monosynth audio outs to your system audio outpu=
ts, so you can hear)(f) Launch seq24 or Qtractor (or any solid JACK tim=
e 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 eight=
h notes, and transpose to +7(k) Set arp 2 to sixteenth notes(l) Sta=
rt playing notes on your keyboard

(m) dance and groove-out :)
(7) Meaning of parameters:=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3DI need to write some sort of =
manpage, but in the meantime here is a short description:* Channeli=
zed - if checked, the arp will only recognize MIDI -input- on the channel s=
et in the channel spinner.=C2=A0=C2=A0 While JACK transport is rolling, an =
arp will always -output- on the MIDI channel specified in the channel spinn=
er.

* Locked latching - (a) - Latching: A pattern is said to be in a &q=
uot;latched" state, when one or more notes are held on the keyboard, a=
nd MIDI sustain (CC 64) is received.=C2=A0 A latched pattern will continue =
to play, even if the you take your hand off the keyboard, as long as the MI=
DI 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 additio=
nal notes can be added to the pattern.=C2=A0 All notes received by the arp =
when in this state are simply passed thru to the MIDI output.=C2=A0 This al=
lows you to "solo" over the latched pattern.

If the Locked Latching checkbox is UN-checked, then any note you hit af=
ter you have latched a pattern with the MIDI sustain pedal are ADDED TO THE=
LATCHED PATTERN.* Interval / Range - if range is non-zero, and int=
erval is non-zero, then any note that is received by the arp will be played=
, then incremented by "interval" semitones until note+range is re=
ached, at which point the pattern will start back at the original input not=
e.=C2=A0 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.=C2=A0=C2=A0 =
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:=C2=A0 the scales and modes have note been verified correct yet.=
=C2=A0 There is also the "minor" issue of how to treat certain sc=
ales when ascending vs. descending.=C2=A0 Hmmm... version 2 for that one :)=

--0016e6db2dcb98f993047b5c8ba7--

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: [LAD] Development Release - JACK-sync'd Arpeggiator - ar..., Mark Vitek, (Wed Dec 23, 3:02 am)
Re: [LAD] Development Release - JACK-sync'd Arpeggiator - ar..., Gabriel M. Beddingfield, (Sun Dec 13, 3:07 am)