Faq

Frequently Asked Questions about Rosegarden 2.1

In general

  1. Who should I contact if this FAQ doesn't help me?
  2. What platforms does Rosegarden run on?
  3. What are the licensing terms?

About the sequencer

  1. What hardware and software will I need if I want to hear anything?
  2. What hardware and software will I need if I want to record things?
  3. How do I configure the sequencer for MIDI on my Unix machine?
  4. How do I play and record through my SoundBlaster-compatible soundcard in Linux?
  5. My Unix machine isn't supported for MIDI playback or recording from the Sequencer.
  6. Some MIDI timing information is being ignored.
  7. Can I hear the tracks I've got already when I'm recording?
  8. I can't get Csound to work.

About the notation editor

  1. What do I need to produce printed scores?
  2. What about MusicTeX, OpusTeX and PMX? What's the difference?
  3. Can I write counterpoint?
  4. How can I extract individual parts from a score?
  5. It doesn't do what I expect with the volume levels in MIDI output.

About the Petal scripting language

  1. What is Petal for?
  2. Do I want it?
  3. How can I tell if Petal has been installed? How do I make it work?

About compilation and coding

  1. I get a load of compile errors when I try to build Rosegarden.
  2. Why don't you use (some superior user-interface toolkit) ?
  3. I want to contribute some code. What shall I do?
^   "Who should I contact if this FAQ doesn't help me?"

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.

^   "What platforms does Rosegarden run on?"

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.

^   "What are the licensing terms?"

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.

^   "What hardware and software will I need if I want to hear anything?"

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:

^   "What hardware and software will I need if I want to record things?"

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.

^   "How do I configure the sequencer for MIDI on my Unix machine?"

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.

^   "How do I play and record through my SoundBlaster-compatible soundcard in Linux?"

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.

^   "My Unix machine isn't supported for MIDI playback or recording from the Sequencer. Is there anything I can do about that?"

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.

^   "Some MIDI timing information is being ignored."

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.

^   "Can I hear the tracks I've got already when I'm recording?"

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

^   "I can't get Csound to work."

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

^   "What do I need to produce printed scores?"

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.

^   "What about MusicTeX, OpusTeX and PMX? What's the difference?"

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.

^   "Can I write counterpoint?"

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

^   "How can I extract individual parts from a score?"

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.

^   "It doesn't do what I expect with the volume levels in MIDI playback."

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.

^   "What is Petal for?"

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.

^   "Do I want it?"

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.

^   "How can I tell if Petal has been installed? How do I make it work?"

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.

^   "I get a load of compile errors when I try to build Rosegarden."

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.

^   "Why don't you use (some superior user-interface toolkit) ?"

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

^   "I want to contribute some code. What shall I do?"

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.