Quantcast
Username/Email:  Password: 

At the Sounding Edge: Introducing seq24

This MIDI sequencer's simple interfaces and design put usability and functionality at the forefront.


In this month's column, we look at the seq24 MIDI sequencer to see
how you can use it in a Linux-based MIDI music production system. Given
working ALSA and JACK installations, this system is easy to set up and
use, great fun and a valuable production tool. Feel free to follow
along while I walk through some of the program's basic techniques and
introduce some not-so-basic procedures before taking my leave.

On his seq24 Web site (see Resources), developer Rob Buse describes
seq24 as:

a loop based MIDI sequencer...created to provide a very simple interface for
editing and playing MIDI loops...that would provide the functionality
needed for a live performance, such as the Akai MPC line, the Kawai
Q80 sequencer, or the popular Alesis MMT-8...a very minimal sequencer
that excludes the bloated features of the large software sequencers
and includes a small subset of features that I have found usable in
performing.

Like Rob's description, seq24 itself is small and sweet, providing simple
interfaces for pattern and song creation. If you've worked with Old School
MIDI gear, such as Roland's TR drum machines or the hardware sequencers
mentioned above, you should feel right at home with the program. But, even
if seq24's design is totally new to you, you soon will be comfortable with it.

Pattern loop sequencers assume a bottom-to-top workflow from the
creation of individual patterns to their repetition and linkage to a
larger form. seq24 calls this linking stage a Performance. Patterns and
Performances can be recorded in real time or in step-time. Almost every
aspect of seq24 is intended to function in real time, but it is equally
serviceable to those of us who like sequencing note by note.

seq24 is available as a package for users of the AGNULA/Demudi and
PlanetCCRMA systems. It also is available in Thac's RPMs for Mandrake and
as a source code tarball on the seq24 Web site. I prefer to roll my own,
so the version demonstrated here is built from the 0.6.3 tarball. I
assume you already know how to install your package of choice, so let's
speed along and dive into making some music with seq24.
The Pattern Editor
If seq24 is in one of your application menus, simply click on its name or
icon to start the program. If you choose to launch seq24 from an xterm,
you can run it with the --help option to view a list of other command-line
options. Otherwise, enter seq24 at the xterm prompt
to launch the program in its default state. When it starts you should see
the screen shown in Figure 1.
Figure 1. Starting seq24
Each bracketed area is a sequence container. Right-click within a
container and select New from the popup menu to invoke the pattern
sequence editor seen in Figure 2.
Figure 2. The seq24 Pattern Editor
Let's look closely at the various parts of the pattern editor. The top
strip includes an entry box for a sequence name, followed by drop-down
selectors for meter and sequence length, displayed as bars. The next strip includes
quantization settings for note start-time and duration, a zoom view
control and settings for MIDI device target and output channels. The
next strip contains the all-important Undo button, a toggle for the
Tools menu, two controls for sequence key and scale type (major/minor)
and a selector for a background sequence to be played while composing
the current pattern.

In the event entry grid you can enter, delete and edit note events in
a familiar piano-roll display, where the vertical axis represents
pitch and the horizontal axis represents time. Notes can be selected
individually or in groups, and the few edit procedures include some
quantizing and transposition options. By the way, the Snap-to setting
applies to edit groups as well as to individual notes.

The blank area under the grid is dedicated to controller and velocity
editing. The strip beneath that area offers an event selector for
the controller edit area and three buttons for defining the MIDI I/O
for the pattern. Don't worry if you can't immediately recall all these
features; seq24 provides informative tooltips for almost every aspect
of its interface.

It's time to record something with seq24. After opening a new pattern,
I select its MIDI output destination and click on the third MIDI I/O
button in the lower right to record incoming MIDI data. I hit the Play
button on the seq24 main screen, play some notes on my MIDI keyboard
and behold, I've recorded a new pattern into seq24. Next, I perform
a little quantization by selecting a group of notes and applying the
quantization function from the Tools menu. I then do a little velocity
editing by clicking right or left within the controller edit area and
dragging an edit line to shape the displayed values. Figure 3 displays
the results so far.
Figure 3. Recording a Pattern
I also like step-entering events into a sequencer using the mouse,
the computer keyboard, a MIDI keyboard or a combination of these
methods. seq24 has no problem with any of these methods, and of course,
it supports real-time recording with any or all of those input devices.

Whether in real time or not, repeat the process to create more
patterns. Use the copy command from the expanded popup menu in an occupied
sequence container and then paste a copied sequence into any empty container
to create a variant of the original. When you have enough patterns to
link together into a song form, it's time to employ the seq24 Performance
editor.
The Performance Editor
The Performance editor (Figure 4) also is easy to use. Right-click and hold
to bring up the pencil edit cursor, and left-click while holding to enter or
delete a pattern. Concurrent patterns are allowed, and patterns can be
added or removed in real time. Playback is either normal or defined by
the loop points. The loop points are moved by selecting one of the L/R
markers with the appropriate mouse button—left for L, right for
R—and then clicking with the same button at the new location. The
loop points also can be edited in real time.
Figure 4. seq24's Performance Editor
The three buttons in the top-right corner of the editor expand, collapse
or expand and copy the material between the L/R markers. They are simple but
useful tools for working with larger formal designs and elements of
a composition.
File Management
Saving your work in seq24 is as uncomplicated as the rest of the program. Select
File/Save As, give your work any name you like, with or without any
extension (MID is best), click OK and that's it. From that point on, you
simply can use File/Save. Reloading your work is equally simple.

seq24's native file format is the Format 1 standard MIDI file
format. seq24 also can load a MIDI file and break its individual tracks
into sequence containers. This feature is another neat musical extension
to seq24's utility, offering new possibilities for material from other
sequencing environments.
Documentation
Despite its evident simplicity, there is more to see in seq24, but
the program is easy to learn. Complete documentation is found in a
brief text file named SEQ24. Also, starting the program with the --help
long help option lists the available command-line options. The
tooltips help is well-written and should clarify the interface even for
complete beginners.
Power seq24
As a final tease, I leave you with the screenshot in Figure 5 to illustrate
seq24 accompanied by some friends and helpers. seq24 manages its MIDI I/O
internally (see above), and the synths it drives in the screenshot are
all JACK clients. I use QJackCtl's audio connections panel to route the
audio data to and from my selected synths and effects processors. In Figure
5, the output ports for QSynth and amSynth are connected to the JACK Rack
running a single LADSPA plate reverb plugin. The processed output from
the JACK Rack is connected to the ALSA PCM audio output ports. ZAddSubFX
has its own effects, so its output is connected directly to the PCM ports.
Figure 5. seq24 and Friends
Thus, I have seq24 driving QSynth, amSynth, ZynAddSubFX and my SBLive's
EMU10k1 synth (internal connection), with two of these devices routed
through a software reverb unit. If you'd like to hear what this system
sounds like you can visit
this
page
for some brief examples in the OGG audio format. They're not complete
pieces, but they should give you an idea of what can be done with some
of the modern Linux audio and MIDI software now available.
The Future
seq24 can be invoked as a JACK transport client, giving it synchronization
capability as either a JACK master or slave. Alas, my tests failed,
which may be due to my JACK version. JACK sync is a cool feature, so
I'll keep checking in on this one. Judging from the tarball's TODO file,
other likely additions might include a few more edit functions and some
randomization routines.
Final Remarks
seq24 is not a complicated program. It has been designed for speed,
stability and efficiency. Admittedly, it is short on editing functions
and long on usability, but its features are well chosen and musically
useful. It's also incredibly addictive fun, as befits any serious
musical instrument.
Resources
seq24

amSynth
QJackCtl
QSynth
ZynAddSubFX
AGNULA/Demudi
AudioSlack
PlanetCCRMA
Thac's RPMs

Dave Phillips is a musician, teacher and writer living in Findlay,
Ohio. He has been an active member of the Linux Audio community since
his first contact with Linux in 1995. He is the author of The Book of
Linux Music & Sound
, as well as numerous articles in
Linux Journal.

______________________

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

fcb1010

rick's picture

Any advice on setting up a Behringer FCB1010 midi foot pedal with seq24?? My fcb1010 is easy to configure for sooperlooper, etc., but seq24 is tough to get going, even with the documentation :O(

Slackware en Seq24

marco van der grient's picture

Afther some serious work I have seq24 working on my (slackware 10.2) dekstop. I have done the kernel hack for jackstart, because of the realtime benefits in normal user mode. An easy job, by the way!
I realy liked this artikel and it is inspiring to see that you can do so much with this sequencer and compatible friends, and that this collection of programs, organizesed with Seq24, beats sequencers as Rosegarden or even Cubase. It is realy inspiring for your own music.

A great benefit for me is not to be forced to use Gnome of KDE, since I realy do not like theze desktops because of there extensive use of resources, and that is reducing the quility of music (and joy?).

I have made slackware packages of all the programs and needed lib's. And will put them on a "webspace left". Thanx Dave Philips for done this (writing) job! And thanx for Seq24!
Greetings, Marco (I am a bassplayer, but in need for more digital music).

more additions (author's comment)

Anonymous's picture

I failed to note that the main page holds 32 sequence containers in what Rob calls a set. At the bottom right corner there's a spin button that accesses 32 sets, equalling 1024 sequence containers. Should be plenty for most purposes. :)

JACK support is reported as working by some users. Alas, I'm still not getting it happening with RH9, ALSA 1.04, JACK 0.99. Bummer.

completely off-topic

mimo's picture

A word of warning to musicians inspired by this article. Don't try this at home! I have worked with Linux since the early days of ALSA and with audio programs longer than some people can think and I have never seen more self-complacency than with the jack people. It might well be that jack works fine for its developers but for the average user (and even the more proficient one) it's a no-go. You install your realtime-lsm module, launch jackstart and all you get is

cannot get realtime capabilities, current capabilities are:
=ep cap_setpcap-ep
probably running under a kernel with capabilities disabled,
a suitable kernel would have printed something like "=eip"

That is with commoncap and realtime modules present. Now you wonder what the FAQ says: nothing, zero, null, void. The problem does not exist.

What are you talking about?

mike's picture

What are you talking about? im a newbie and this linux audio stuff rocks! It has all totally inspired me. I LOVE IT!!!! Ubuntu Studio rocks to! Thanks for the Great Articles Dave!!! Your teaching me a lot! You Rule!

have you ever listened about

Anonymous's picture

have you ever listened about realtime preemption patch? do you know why linux is linux and not windows, because you can tune your system to what you need, try a multimedia linux distribution like planet ccrma or agnula demudi and you got a system tuned for realtime, but obviously, the main distro's developers can't enable some features like this in their projects because of security issues (something microsoft have never mentioned, but already present in their window$), if you are not afraid from security problems you can simply run jack as root and no problems at all for the realtime preemption. but don't speak about something you don't know

Don't try this at home!

Carlos Pino's picture

Don't try this at home!

It could be better to say:

Don't try this at YOUR (mimo) home

For me works absolutely well.

Wrong...

Clinton's picture

If you are using realtime-lsm then you can just run jackd. Jackstart is only for when you have the patched kernel and not realtime-lsm.

ex:
clinton@drizzlehell:~/html/music$ jackstart -d alsa
jackstart: cannot get realtime capabilities, current capabilities are:
=ep cap_setpcap-ep
probably running under a kernel with capabilities disabled,
a suitable kernel would have printed something like "=eip"

clinton@drizzlehell:~/html/music$ jackd --realtime -d alsa jackd 0.99.0
Copyright 2001-2003 Paul Davis and others.
jackd comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details

loading driver ..
creating alsa driver ... hw:0|hw:0|1024|2|48000|0|0|nomon|swmeter|-|32bit
control device hw:0
configuring for 48000Hz, period = 1024 frames, buffer = 2 periods
Couldn't open hw:0 for 32bit samples trying 24bit instead
Couldn't open hw:0 for 24bit samples trying 16bit instead
Couldn't open hw:0 for 32bit samples trying 24bit instead
Couldn't open hw:0 for 24bit samples trying 16bit instead

Ta da, it works (make sure you are in the group that can use realtime-lsm, in Debian this defaults to audio).

some corrections (Author's notes)

Anonymous's picture

A few corrections:

When recording to a pattern the MIDI I/O button used should be the first button (as seen in Figure 3), not the third button (as referenced in the text).

ZAddSubFX == ZynAddSubFX

The page at http://linux-sound.org/lj-seq24-examples.html has been updated to include some more details regarding setup and recording from the system described in "Power seq24". The examples themselves are also being continually updated (as I learn how to get more out of this setup).

Best regards,

Dave Phillips

seq24 in Mandrake contrib

Buchan Milne's picture

It would appear that the seq24 packages in Mandrake contrib are more up-to-date than Thac's packages (at least for 10.1, and 10.2 for which there are no Thac packages at present).

Mandrake 10.1 contrib has 0.5.1, Mandriva 2005LE contrib has 0.6.1.

While contrib is not officially supported, contrib packages are in bugzilla and do receive updates in community (at the maintainers discretion).

Thus, when packages are available in contrib, it is usually recommended to use them over 3rd-party packages.

(which is as much of the "Thac vs the community maintainers" issue as I will get into)

Post new comment

  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <pre> <ul> <ol> <li> <dl> <dt> <dd> <i> <b>
  • Lines and paragraphs break automatically.
  • Use to create page breaks.

More information about formatting options