Jsequencer2lily: README

De Wikijoan
Dreceres ràpides: navegació, cerca


jsequencer2lily. README

Catalan version

jsequencer2lily is a JACK client (http://jackaudio.org/) that listen and record MIDI messages from controllers that are connected to it. It is, therefore, a sequencer. The main feature is that midi messages to LilyPond format (http://www.lilypond.org), and therefore is able to generate high-quality sheet music.

The first aim to desing jsequencer2lily was simplicity. it is a console sequencer, without GUI. There are different parameters in order to obtain correct scores that meet the musician expectations. This software is just a little contribution to the difficult art of sequencing.

The main reason that led the author to write this software is the ability to record musical ideas, melodies and solos quickly, easily and reliably.


jsequencer2lily is a monophonic sequencer, designed to sequence melodies (the main instrument of the author is the saxophone and uses an EWI-USB wind controller). Basically jsequencer2lily performs two functions: first record the sequence; second process the information to generate a LilyPond file as correct as possible (in the sense of writing what the musician intended).

The main requirements are JACK and LilyPond, obviously. The developer uses the metronome klick (http://das.nasophon.de/klick/, also a JACK client), although it is not mandatory to use a metronome. jsequencer2lily is the JACK time master, so the metronome should be set as a time client in order to follow the sequencer.

From the generated lilypond is possible to generate the pdf score pdf and the midi file. To view automatically this pdf score we recommended evince (https://projects.gnome.org/evince/), the default pdf viewer from Ubuntu, so a reference to evince is hardcoded inside the program. In case you use another pdf viewer, change one line and recompilation of the program is necessary.

This software was tested with the following controllers:


Compilation of the software is easy with this sentence:

gcc -Wall jsequencer2lily-1.0.0.c utils.c -o jsequencer2lily -ljack

We recommend using a modification of the script jsequencer2lily.sh to setup all the connections and to launch the sequencer. The user should tweak this script depending to their needs and configuration. Basically the script does:

In order to connect the midi controller to the sequencer you can use a2jmidid -e, a2j_bridge, or launch jackd with Xraw or Xseq options (the author prefers the last one).

Recommendations for using jsequencer2lily:

Choose a low tempo.

Available arguments are:

1. General options:
-h | --help: usage information
-d | --debug: debug information
-f filevalue | --file filevalue: output lilypond file (.ly extension)
--pdf yes/no: generate pdf score (default: yes)
--viewscore yes/no: visualize pdf score with evince (default Ubuntu pdf viewer). (default: yes). Implies --pdf yes
--midi yes/no: generate midi file (default: yes)

2. lilypond legacy options:
--title titlevalue
      ex: --title 'New York'
--composer composervalue
      ex: --composer 'Frank Sinatra'
--opus opusvalue
      ex: --opus 'Alto Sax'
--tagline taglinevalue
      ex: --tagline '© Joan Quintana 2013. Music engraving by LilyPond'
--clef clefvalue
      ex: --clef treble (default: treble)
--tempoly tempovalue: tempo for lilypond output and midi generation
      ex: --tempoly 110 (default: 110 or same as --temposeq)
--key keyvalue
      ex: --key CM, --key Dm, --key FM (default: CM)

3. jsequencer2lily options:
--time timevalue
      ex: --time 4/4 (default: 4/4)
--temposeq tempovalue: tempo for sequencing
      ex: --temposeq 110 (default: 110 or same as --tempoly)
--delaybars delaybarsvalue: number of bar/measures previous to sequencing.
      ex: --delaybars 0 (default: 1)
-t transposevalue | --transpose transposevalue: 0:piano, flute; +3:saxo alto; -2:clarinet, saxo tenor
      ex: -q 8, --quant 16  (default: 16)
-q quantvalue | --quant quantvalue: quantization (1 (whole note), 2 (half), 4 (quarter), 8 (quaver), 16 (semiquaver)).  (default: 16)
      ex: -q 8, --quant 16  (default: 16)
-b beautyvalue | --beauty beautyvalue: beauty value (value > 0).  (default: 0)
      ex: -q 8, --quant 16  (default: 16)
-s | --sequencing: just sequencing (sequencing and processing are default if both parameters -s and -p are omitted)
-p | --processing: just processing, (sequencing and processing are default if both parameters -s and -p are omitted)
--connection: don't try to make connections. By default, jsequencer2lily try to make connections to hardware ports, and to jack-keyboard

Usage examples:

./jsequencer2lily -f new_york.ly

./jsequencer2lily -f new_york.ly --title 'Let it Be' --time 4/4 --tempo 80 --key CM

./jsequencer2lily -f new_york.ly --quant 16 --title 'Let it Be' --composer 'The Beatles' --opus 'Ballad, pop music' --tagline 'Music engraving by LilyPond. File generated by jsequencer2lily (GNU sequencer)' --clef treble --time 4/4 --tempo 80 --key CM --delaybars 2 --pdf yes --viewscore yes --midi yes

./jsequencer2lily -f new_york.ly --title 'Let it Be' --time 4/4 --tempo 80 --key CM --sequencing --debug

./jsequencer2lily -f new_york.ly --title 'Let it Be' --time 4/4 --tempo 80 --key CM --processing --debug -q 16 --beauty 100



1. I listen klick too loud. Different solutions: try another metronome, use a mixer in you connection chain... but the simple way is to edit klick sounds and atenuate the signal. klick audio samples are found in a typical installation in /usr/share/klick/samples

2. Can I use jsequencer2lily with OS X? Sure, but the developer didn't already tested. JACK and lilypond have their OS X version. Is possible to install Evince (pdf visualizer) in OS X. If you want to use another pdf reader is necessay to change a line of code and recompile. Also is possible to use --pdf no option.

3. Can I use jsequencer2lily with Windows? In theory yes, since JACK and lilypond have their Windows versions. However, the developer can't give no support.



Copyright (C) 2013 - Joan Quintana Compte (joanillo) - joanqc at gmail.com

Using and testing this software is very welcome. Not hesistate to ask any questions.

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
version 2 as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details, in COPYING.TXT file.

If you have not received a copy of this file along with this program, write to
the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

creat per Joan Quintana Compte, Novembre 2013

Eines de l'usuari
Espais de noms
Institut Jaume Balmes
Màquines recreatives
Informàtica musical
joanillo.org Planet