Frequently Asked Questions about Rosegarden 2.1
In general
- Who should I contact if this FAQ doesn't help me?
- What platforms does Rosegarden run on?
- What are the licensing terms?
About the sequencer
- What hardware and software will I need if I want to hear anything?
- What hardware and software will I need if I want to record things?
- How do I configure the sequencer for MIDI on my Unix machine?
- How do I play and record through my SoundBlaster-compatible soundcard in Linux?
- My Unix machine isn't supported for MIDI playback or recording from the Sequencer.
- Some MIDI timing information is being ignored.
- Can I hear the tracks I've got already when I'm recording?
- I can't get Csound to work.
About the notation editor
- What do I need to produce printed scores?
- What about MusicTeX, OpusTeX and PMX? What's the difference?
- Can I write counterpoint?
- How can I extract individual parts from a score?
- It doesn't do what I expect with the volume levels in MIDI output.
About the Petal scripting language
About compilation and coding
- I get a load of compile errors when I try to build Rosegarden.
- Why don't you use (some superior user-interface toolkit) ?
- I want to contribute some code. What shall I do?

General questions about installing, using and coding for Rosegarden can be sent to Chris Cannam. Questions about MIDI setup and sequencing should be sent to Richard Bown. Questions about the Petal scripting language should be sent to Guillaume Laurent. Try this link to send mail to all three of us at once.
You might also want to consider joining the mailing-list and asking questions there.

Unix, Linux and OpenVMS.
Rosegarden does not run on Microsoft Windows, and it probably never will.
Binaries are available for Linux and SGI IRIX; for other machines, you will need to build it yourself from the source distribution. We would expect this to work on FreeBSD, OpenBSD, Solaris, AIX and HP-UX at least, but we haven't necessarily tested it.

Rosegarden is free software, licensed under the Free Software Foundation's GNU General Public Licence (GPL). That gives you a lot of freedom to redistribute it and modify it as you please, so long as any modified version you choose to distribute is made available with source code under the same licence.

While the notation editor and sequencer will build and run on most Unix machines, you'll need some sound hardware and/or drivers if you want to be able to play anything audibly. The following systems are known or expected to work:
- If you are running Linux or FreeBSD, you'll need the kernel sound drivers (OSS/Free, OSS/Linux or the old VoxWare). Any external MIDI synth should play fine; some internal soundcards will work, notably the SoundBlaster series. Other cards might work, but we can't tell you which ones; it all depends on the drivers.
- If you are running SGI IRIX 5.x, you should be able to play through any external MIDI synth; using IRIX 6.x, the internal software synth should also work. Older versions of Rosegarden (up to and including 2.0.1) could also drive external synths from the Indigo under IRIX 4.x; newer versions can't.
- If you are running any other Unix system, you'll be able to make sounds if you have an OSS (Open Sound System) driver. These are commercial drivers for various Unices; Rosegarden should work with any of them, at least to drive external MIDI devices. See 4Front Technologies for details.
- Finally, Rosegarden can use an external MIDI playback program such as TiMidity to play music, although you don't get any control over the playback from within Rosegarden when using an external player. To use an external playback program, use the "Play through Slave" menu function on the sequencer's File menu.

Rosegarden should be able to record on any system from which it can play. In practice this probably isn't true, but we don't have many facilities for testing recording, so we don't really know.

If you're building Rosegarden yourself from a source distribution, the configure script will try to determine what system you have and configure the compilation of Rosegarden accordingly. In the Sequencer itself, most of the code is system-independent. (The only exception is a small amount of code for the cosmetics of high-level user control over the system's handling of the I/O timing.) The vast majority of the platform dependent code is to be found in the Mapper subsystem. This code, as with the Sequencer, is conditionally compiled according to the system type and deals with all the details of supported UNIX systems. The intention is that the specifics of what is compiled when and where should be transparent to the user during compilation: the configuration should be done for you.
Note however that Rosegarden doesn't have sound support for all flavours of UNIX. Check whether yours should be supported, and what you can do about it if it isn't.

First thing to do is to check how your OSS or OSS/Free system is setup
on your Linux box. Type cat /dev/sndstat
to list what
devices are available. We are interested in two types, Midi and Synth
devices.
Midi devices as far as Rosegarden are concerned are those that
carry a hardware interface to an external MIDI instrument. This could
be a keyboard or a MIDI soundbox. A Midi device can be used as a
recording interface, but note that Rosegarden 2.1 will take the
first (i.e. 0th) Midi device as the Recording device, it is not
directly configurable. Of course by recompiling the kernel the first
Midi device could be changed... On opening the Midi Setup dialog from
the Midi menu on the Rosegarden Sequencer you will see the Record
Device listed for you. Note that on some cards the name of the device
is misleading - for example my hardware MIDI interface is called
"Sound Blaster". Look at /dev/sndstat
for the
authoritative answer.
For playback there is more than MIDI device available. The
on-board synth (FM synth) on SB16 compatibles is initialised and
usable by the Rosegarden Sequencer. Depending on your kernel
configuration and age of the Linux distribution you may be able to use
other types of onboard synths (e.g. AWE-32 or GUS), but this is very
much a matter of the driver configuration and the patch level of the
particular system. Sometimes a device could appear as available for
playback when it won't actually make any noise on playback. Examine
/dev/sndstat
for the list of Synth devices available.
Playback devices can be set up by the user. If more than one eligible playback device exists then another pseduo device, the "All" device becomes available. This does what it says - plays a track to all devices available for playback.
There are two options for changing the playback device. The current device is shown on the tracklist on the main sequencer window along with a track status (either Active or Mute, see Muting further on for an explanation of this behaviour). On opening the Event list for a track you will notice the device is displayed at the bottom of the window. This is a menu selector itself and by clicking on the device name you can select which device this track will play to. The Track list is updated with your selection immediately. Alternatively on the Track menu there is an option to "Change All to Device..." which allows you to quickly change all the tracks to a single device in the dialog.
Along with track devices the user can mute tracks. The Track menu again offers two options to either Mute All Tracks or to Activate All Tracks. Again on the Eventlist window for each track there is also a label with the current track status. By clicking on the label the user can toggle the status of the track.

Yes, if you know how to write code that uses your machine's MIDI driver API. (Assuming your OS has a MIDI driver API. If it hasn't, forget it.)
Rosegarden uses a library (called Mapper) that maps generic musical events from the sequencer into whatever API your own MIDI drivers use, and vice versa. It works somewhat like the Microsoft Windows MIDI mapper. To add support for another MIDI driver, just write another mapper wrapper. You will need a good knowledge of C, some knowledge of the device driver for your system's MIDI hardware, some spare time and some spare hair.
If you get the Rosegarden source distribution and look in the "mapper" subdirectory under the top-level directory, you'll find a file called SUPPORT that tells you some stuff about how the Mapper library works. If you need to know more, ask on the mailing-list or by email to Rich Bown, bownie@bownie.com.
If you succeed in concocting a mapper for your hardware or operating-system MIDI driver, please send us a copy of the source so we can include it in the distribution.

If a track with Tempo or Time signature information is Muted, then this "Meta" information will not be used when playing the piece. This can cause some strange effects: for example the piece may play as fast as it possibly can! Try un-muting all the tracks.

Playback during recording is available as of Rosegarden 2.1 although its behaviour (only proven on OSS/Linux) can be erratic. All tracks will play on selected devices during recording. Note also that with the fast forward and rewind button it is possible to record a new track starting at any point in the piece. If you do not want to hear the tracks played during recording then simply mute them all from the Track menu - note however that muting all tracks may have undesirable effects on playback due to differing time signatures in recorded and already existing MIDI events. A MIDI file with no tempo information will be given default a tempo of 120 bpm automatically following the completion of recording (by hitting the Stop button or selecting Stop from the File menu).

That's okay. None of us understands Csound either.
The sequencer only writes Csound score files; it can't create orchestra files. I suspect the score files produced by Rosegarden require a rather specific format of orchestra file, or else some postprocessing.
There's a lot of information about Csound at csounds.com, but to be honest, if you don't already know an awful lot of stuff about Csound you'd probably be better off spending a few months learning about it than trying to cut corners with Rosegarden. That's just my opinion, speaking as someone who hasn't got a clue either.
Kevin Conder writes: I created a trivial score with Rosegarden and exported it to a MIDI file. I then used Rosegarden to export the MIDI file to a Csound score. With this score, I was able to create an complementary orchestra.
It was pretty straight-forward. It correctly generated notes for the first instrument (i1...). The fourth p-field, p4, in the score file is the note's frequency as a pitch-class. One can convert this to cycles-per-second using the cpspch opcode:
icps = cpspch(p4)
The fifth p-field, p5, is the note's midi velocity (0-127). Since Csound's amplitude is currently 0-32767, one can convert p5 to an approximate amplitude value by multiplying it by 256:
iamp = p5 * 256

Rosegarden isn't a typesetting system and its capabilities for producing scores are limited. In the current version, the best it can do is to write a MusicTeX, OpusTeX or PMX (q.v.) file, which can then be processed and printed. To do this, you'll need TeX with MusicTeX, MusiXTeX or OpusTeX, and some kind of DVI processor or driver for your printer; to use PMX, you'll also need PMX itself. If you don't know what TeX is, you should probably spend a couple of months finding out first.
Future versions of Rosegarden will also be able to produce PostScript output directly, which should be easier for many people.

These are all music-printing tools that use the TeX typesetting engine. They offer the only way, at the moment, of printing music from Rosegarden, but you'll need a working TeX installation before you can install and use any of them.
- MusicTeX is the oldest of these macro packages, and is no longer actively being developed. Instead development work has divided into two derived packaged: MusiXTeX and OpusTeX. MusiXTeX is designed to be able to process MusicTeX scores, though, so you can use Rosegarden's MusicTeX export facility with MusiXTeX as well.
- OpusTeX is also derived from MusicTeX, but is not back-compatible, aiming to be simple, general and efficient rather than inclusive. It looks interesting for the future but it's still relatively young, having yet to reach an official 1.0 release, and keeps changing. For the moment Rosegarden's OpusTeX export is probably mostly of interest to people who use OpusTeX already.
- PMX is a preprocessor for MusiXTeX: it takes input in a simple ASCII format and produces MusiXTeX output (which can only be used with MusiXTeX, not MusicTeX or OpusTeX). Because the input format is straightforward, it's easier for Rosegarden to produce mechanically. You therefore get better output, mostly, by using this export option, processing through PMX and then MusiXTeX. PMX can't cope with very complicated scores, but then at the moment neither can Rosegarden.

If you mean, can you write more than one voice onto a single staff with differing time values, then no. Rosegarden sees a staff as a succession of chords, each containing a set of notes of equal length. (Okay, so there are rests and groups and things too, but that's basically it.) If you want to write counterpoint, you'll have to use more than one staff. I'm sorry. (We hope this situation might change, of course, but at the moment that's how it is.)

Use cut-and-paste, for the moment. If you want to extract a single staff: first create a new piece with just one staff in it; then outline the whole staff you want to extract on the original piece (you can do that by triple-clicking the mouse on it in edit mode); then use Copy from the Edit menu, and go to the new piece and use Paste.

By default, the Editor ignores any dynamics you've put in the score when it turns the score into MIDI. It will, however, put some emphasis on the first note in each bar. Both of these things can be changed.
If you want to stop the Editor adding emphasis to the first note of each bar, you should change the "midiBarEmphasis" resource in the supplied resource file (normally just called Rosegarden) before you run the Editor. If you don't define this at all in the file, it'll default to 15, which means the Editor will add 15 points of MIDI amplitude to the first note in each bar. (MIDI amplitude is measured on a scale of 0 to 127.) Set it to zero, and these notes will be treated the same way as all the others.
The Editor also contains some rather experimental code for doing other dynamics, which is switched off by default because it's, well, rather experimental. You can elect to use this by setting the "midiDynamics" resource to True in the resource file; the Editor will then try to observe hairpin dynamics and to follow textual indications that have been explicitly entered as dynamics using the Dynamic function on the Text menu. (In general, it gets a bit confused if you have lots of hairpins with few textual marks.) You can't (yet) change the amplitudes it assigns to the various textual markings.
One other thing you can't control is that the Editor will always add a bit of emphasis to notes that have accent (">") marks over them. If you don't want it to, don't use accents.

Petal is a scripting language, similar in principle to Cakewalk's "CAL". It is based on Tcl and TclMIDI.
Its main use is to write filters, to automatically process your MIDI or notation files. Filters add new functionalities to Rosegarden the same way Emacs Lisp macros do to Emacs, or shell scripts do to your regular command line. More generally, you could use it for many more complex things, like algorithmic composition.

Hard to tell :-)
. Consider all the things you can do
with your favourite text editor: yet sometimes, you leave it and get a
tool like sed, awk, grep, Perl, whatever to perform a stupid,
systematic job which would be an incredible burden to do
interactively. That's what Petal is intended for.
But, at the moment it seems that whatever the replacement for Rosegarden 2.1 looks like, it will not support the current Tcl-based form of the Petal scripting language. There will probably eventually be some sort of scripting capability in future versions of Rosegarden, but it will not be Petal.

If you're compiling from sources, Petal will only be built
if you have Tcl v7.5 and TclMIDI
installed, and if the location of TclMIDI is in your
TCLLIBPATH
.
Check what the configure
script tells you when you
start building Rosegarden: it should let you know if it isn't going to
build Petal. If it has been built, you should have a Petal.so
file in the rosegarden/petal directory, which the
do-install
script should install for you in a sensible
place.
If you're installing from a binary distribution, the Petal
shared-object and Tcl files will be installed regardless (if they're
included in the distribution at all -- check for Petal.so
in the
tarfile). You won't be able to use them unless you have Tcl v7.5 or
newer and your TCLLIBPATH
is set correctly; if you want
to use them from the sequencer, you'll also need TclMIDI.
Note that although TCLLIBPATH
is an environment
variable to be set from the shell, it will be interpreted as a Tcl
list, not a conventional shell path, so it must use spaces for
delimiters instead of colons. Thus for instance
"/usr/lib/tclmidi /home/tcl"is a valid
TCLLIBPATH
, while
"/usr/lib/tclmidi:/home/tcl"is extremely unlikely to make sense. (This is not our fault -- it's a Tcl feature.)
If Petal has not been installed correctly, the `Filter' menu will be inactivated on the sequencer and editor windows.
Of course, once you've installed it, you then have to write some
filters if you want it to be of much use. The best way to start is to
check the sample scripts: harmonizer.tcl
and
pattern.tcl
. To continue from there, read the Petal
documentation: there's a copy of it in the Rosegarden help.

Well. Could be anything, really. But if you're getting errors
about undefined system functions or that look like inconsistencies in
system headers, the first thing to try is to remove the
-DPOSIX_PLEASE
from the DEFINES line of the top-level
Makefile (after running configure
) and rebuild.

We are doing. The result is called Rosegarden-4.

If you're planning anything substantial, it's almost certainly better to contribute to Rosegarden-4.
Nonetheless, fixes to the current code -- or even extensions -- are still welcome. If you have a piece of code you'd like to see included, please contact Chris.