This is a manual for rosegarden, based on the 1:1.4.0-1 version from the Debian Edu Etch 3.0 release.
This document was put into the debian-edu-doc package on 2008-07-15.
The version at http://wiki.debian.org/DebianEdu/Documentation/Manuals/Rosegarden is a wiki and updated frequently.
Translations are part of the debian-edu-doc package, which can be installed on a webserver .
Before you start with this rosegarden, be sure you have gone trought the documentations howto get jackd runing smoothly. That is the technical part that have to be in place so rosegarden can work as it should.
I recommend that you get installed a Real Time kernel, this way you get better latency on jack, and you will not experience to much lag on the softsynth when you playing
to make only the midi to work in Linux, i recommend you to buy a USB midi interface from roland Edirol serie.
if you only want midi, you can buy Roland UM-1EX, you can also only search for "um-1ex" on your favorite search engine, or just buy it on your favorite music store. This usb support only midi, there is nothing driver to think about, you just plug it in, and it will automatical be detected by your system. click on the link to see how the device looks like:
Under Rosegarden you probably have to choose this device.
if you want to use rosegarden fully, with sound record, can i also recommend Rolands Edirol UA-25, that device can record hight quality sound through the usb port, and again, you don't have to think about drivers, you just plug in in, and Linux system will automatical detect it-. click on the link to see how the device looks like
This device also have midi interface, so you get full packages on the same device, but of course this device are more expensive then um-1ex.
options number 1: here is there some configure to do before you can record trought this device, when you have plug in the usb port, the device is added as one sound-card, so you have to chose that you want to use UA-25 as your record device, and if you have a sound-card build inn, you presumably want to use that as a playback device. to fix this can you use jackd, that you find under -> Multimedia --> jack control. if you not find jackd on you menu you have to install the package "Qjackctl"
options number 2: you can just use UA-25 as a record and playback device (less problem to) But on the 96Khz, you can only play or record, and it's here the options number 1 comes in.
if you want to hear what you play wile you record you simply plug some of the line out on the ua-25 to line in on your integrated sound-card. example, you take record of your midi recorded segments, you have to remember to shut down the metronome click, you don't want that on your recorded wav file.
if you getting alsa_pcm: xrun problem, take a look at the messages in the start how the device been start up. If your integrated card don't handle 24 bit, you will get into some problem, and you have to turn on the advance mode OFF the UA-25 device, so it goes down to 16Bit with the integrated sound-card. If ALSA gives you problem still, try to run the OSS instead. If your integrated sound-card don't support 48.000, you have to turn UA-25 down to 44.100. Remeber that you have to unplug usb, and do the change on device, and then plug in the usb again before the changes take effect.
if you not can activate the RT (real time) in jack you have to add this followings line in
/etc/security/limits.conf file
@audio - rtprio 99 @audio - memlock 500000 @audio - nice -10
This options can be dangerous becouse it can cause the kernel to dead lock, due to priority problems.
You see the latency is about 53.3 msec, that is the lowest i can get on my laptop without jackd starting to complain about Xrun problem. You have several way to change the latency for the best optical way for your computer, and that is
Frames/periodes (16-4096)
Periodes/buffer (1-xxx)
for those who don't have a keyboard/synth can use qsynth to get midi sound on rosegarden. you can download soundfont from here: ftp://ftp.no.debian.org/debian/pool/main/f/fluid-soundfont/fluid-soundfont-gm_3.1-1_all.deb and use <gdebi> to install it.
Don't forget to choose that you want to use the qsynth in the device manager on rosegarden if not rosegarden automatical have chosen this.
there is a list of plugins you want in rosegarden when you dont have a gm keybard/synth, but only a keyboard that send midi, use the aptitude command to get it.
Table 1.
|
** synth plugins ** |
|
wsynth-dssi |
|
xsynth-dssi |
|
nekobee |
|
ll-scope |
|
cmt |
|
hexter |
|
fluidsynth-dssi |
|
sineshaper |
fixme: set inn synth plugins you have good experience with
fixme: put on some audio plugin you have experience with
This have been testet with skolelinux 3, kubuntu 7.10, kubuntu 8.04 and with kernel 2.6.22.16, and 2.6.24.18
Table 3.
|
Device |
extra install, needs depends |
|
Roland edirol UA-25 |
Works without any problem |
|
Roland edirol um-1 |
Same as Ediro UA-25 |
|
Roland edirol Um-3ex |
Usb To Midi |
|
Roland edirol Studio Canvas, SD-20 |
Gm/xg lite Midi soundmodule |
|
M-Audio Midisport 4 |
Midi-USB 2x IN 4x OUT |
|
M-Audio Keystations 49e |
usb-midi keyboard |
|
M-Audio Axiom 25 |
Usb Midi Keyboard |
|
M-Audio Trigger Finger |
Usb Drum pathern |
|
Samson Gtrack (GM1U) |
Usb Mic |
|
Zoom, ZFX, plug-in |
Audio Record, no Midi |
|
Edirol Midi Keyboard Controller PCR-300, 500, 800 |
Usb Midi Keyboard |
|
Roland FP-5 (digital piano) |
Usb Works, and the piano also have midi inn/out |
Thanks to Mario Music for allowed me to be in there store testing this equipment.
Fixme: add devices you have experienced to work with out any problem
Devices that have been found not working for now
Table 4.
|
Devices |
Problem |
|
Echo Audiofire 2, 4, 8, and 12 |
firevare card, they where detected but they where not cooprative, jackd where not abel to start them |
|
Tone Port Ux2 (line6) |
Did not work |
|
Audio Kontrol 1 |
Jackd find out about the card, but the card will not work as is should |
|
Roland UA-4FX |
Jackd finding this also, but are makeing trouble |
|
Mbox2 |
jcakd find it, and it runs, but producing allot of Xrun |
|
yamaha KX |
usb midi keyboard do not work trought usb, but there are midi in and out on this |
If everything works, it's time to take a look at the rosegarden dokumentations here: http://wiki.debian.org/DebianEdu/Documentation/Manuals/Rosegarden
url:http://rosegardenmusic.com/
Rosegarden Audio/Midi Sequencer. Music creations without limit. Midi (Musical Instrument Digital Interface), Is a perfect way to build up music instrumet by instrument. The Importans of building up the midi song with structure are important becouse when you try to export the midi file to other then rosegarden, will make the chance for the midi file to work on others computer, synth/keyboards and so on much biger. With Rosegarden follows it a easy way to do this as you can se below:
That is okay to use, IF you held your project to Rosegarden, My experience with this is when you try to export your midi to other aplications, something will not work as you attend to.
This can sound difficult and time consumed, but if you are bit structured, and made the setup file at hand, you have everything ready for your next project without any delay. I have made ready one file like this for you, just download it(you find it below) i have also made a guide how to use this. with structure on your midi i mean the following thing: you set the standard on every midi file you made where you put your instruments. the example that follows on my file is:
Track 1 = piano
Track 2 = Bass
Track 3 = Guitar (muted, clean and so on)
Track 4 = Melody
Track 5 = second voice
Track 6-9 = here you can set up, strings, clarinet, obo, sax, and so on.
Track 10 = Drum, this is always drums, this is standard in GM setup.
Track 11-16 = same as 6-9.
If you follows this setup on your every midi sound, there will not be any problem to made new melody.
It is very important to be strict when it's comes to where you placing your recording live instruments, and vocals, because without that, you will after a wile get problem to find what files you are working with, it's not impossible but without any structure on it, you will use allot of time find it. So lets say you have made you self a new midi melody "shallala", and you want to record your vocal on it, then you just remember to make a director that has the same name as your melody, and place your recorded audio in there.
Choose --> "composition" ---> and then "edit document properties"
You want to tell everybody the you have made this tune, so belove you se how you can add what the song name is, who has composed it
Table 5.
|
No. |
Instruments |
No. |
Instruments |
No. |
Instruments |
No. |
Instruments |
|
1 |
Ac. Grand Piano |
34 |
El.Bass finger |
67 |
Tenor Sax |
100 |
FX 4 (atmosphere) |
|
2 |
Bright Ac. Piano |
35 |
El.Bass pick |
68 |
Baritone Sax |
101 |
FX 5 (brightness) |
|
3 |
El. Grand Piano |
36 |
Fretless Bass |
69 |
Oboe |
102 |
FX 6 (goblins) |
|
4 |
Honky-tonk Piano |
37 |
Slap Bass 1 |
70 |
English Horn |
103 |
FX 7 (echoes) |
|
5 |
El. Piano 1 |
38 |
Slap Bass 2 |
71 |
Bossoon |
104 |
FX 8 (sci-fi) |
|
6 |
El. Piano 2 |
39 |
Synth Bass 1 |
72 |
Clarinet |
105 |
Sitar |
|
7 |
Harpsichord |
40 |
Synth Bass 2 |
73 |
Piccolo |
106 |
Banjo |
|
8 |
Clavi |
41 |
Violin |
74 |
Flute |
107 |
Shamisen |
|
9 |
Celesta |
42 |
Viola |
75 |
Recorder |
108 |
Koto |
|
10 |
Glockenspiel |
43 |
Cello |
76 |
Pan Flute |
109 |
Kalimba |
|
11 |
Music Box |
44 |
Contrabass |
77 |
Blow Bottle |
110 |
Bag Pipe |
|
12 |
Vibraphone |
45 |
Tremolo Strings |
78 |
Shakuhachi |
111 |
Fiddle |
|
13 |
Marimba |
46 |
Pizz. Strings |
79 |
Whistle |
112 |
Shanai |
|
14 |
Xylophone |
47 |
Orch Harp |
80 |
Ocarina |
113 |
Tinkle Bell |
|
15 |
Tubular Bells |
48 |
Timpani |
81 |
Lead 1 (square) |
114 |
Agogo |
|
16 |
Dulcimer |
49 |
String Ens 1 |
82 |
Lead 2 (sawtooth) |
115 |
Steel Drums |
|
17 |
Drawbar Organ |
50 |
String Ens 2 |
83 |
Lead 3 (calliope) |
116 |
Woodblock |
|
18 |
Perc. Organ |
51 |
Synthstrings 1 |
84 |
Lead 4 (chiff) |
117 |
Taiko Drum |
|
19 |
Rock Organ |
52 |
Synthstrings 2 |
85 |
Lead 5 (charang) |
118 |
Melodic Tom |
|
20 |
Church Organ |
53 |
Choir Aahs |
86 |
Lead 6 (voice) |
119 |
Synth Drum |
|
21 |
Reed Organ |
54 |
Choir Oohs |
87 |
Lead 7 (fifths) |
120 |
Reverse Cymbal |
|
22 |
Accordion |
55 |
Synth Voice |
88 |
Lead 8 (bass+lead) |
121 |
Fret Noise |
|
23 |
Harmonica |
56 |
Orchestra hit |
89 |
Pad 1 (new age) |
122 |
Breath Noise |
|
24 |
Tango Accordion |
57 |
Trumpet |
90 |
Pad 2 (warm) |
123 |
Seashore |
|
25 |
Ac. guitar nylon |
58 |
Trombone |
91 |
Pad 3 (polysynth) |
124 |
Bird Tweet |
|
26 |
Ac. guitar steel |
59 |
Tuba |
92 |
Pad 4 (choir) |
125 |
Telephone Ring |
|
27 |
El. guitar jazz |
60 |
Muted Trumpet |
93 |
Pad 5 (bowed) |
126 |
Helicopter |
|
28 |
El. guitar clean |
61 |
French Horn |
94 |
Pad 6 (metallic) |
127 |
Applause |
|
29 |
El. guitar muted |
62 |
Brass Section |
95 |
Pad 7 (halo) |
128 |
Gunshot |
|
30 |
OverDr . Guitar |
63 |
96 |
Pad 8 (sweep) |
|
| |
|
31 |
Dist. Guitar |
64 |
97 |
FX 1 (rain) |
|
| |
|
32 |
Guitar harmonics |
65 |
Soprano Sax |
98 |
FX 2 (soundtrack) |
|
|
|
33 |
Acoustic Bass |
66 |
Alto Sax |
99 |
FX 3 (crystal) |
|
|
And that was the index of the instrument, below you have the index overt the Percussive instruments (drums)
Table 6.
|
No. |
Uses | |
|
1 |
Standar GM kit 1 |
Everything |
|
2 |
Standar GM kit 2 |
Same as 1 |
|
10 |
Rom Kit |
Pop Ballads |
|
17 |
Power Set |
Rock, hard rock |
|
25 |
Electronic kit |
Ballads |
|
26 |
Analog kit |
Also used in ballads |
|
27 |
Dance Kit |
Uses in Dance, Teckno |
|
28 |
Dance Kit 2 |
Same As 27 |
|
33 |
Standar GM kit 3 |
Same as 1,2 and 74,75 |
|
41 |
Brush/jazz kit |
Uses in jazz, or ballads |
|
49 |
Orchestral Kit |
Uses in classical music |
|
57 |
Effects Kit |
Uses to make effects arround your melodi |
|
65 |
Percussion kit 1 |
|
|
66 |
Percussion kit 2 |
|
|
74 |
Standar Gm Kit 4 |
|
|
75 |
Standar Gm Kit 5 |
|
No. : representing the Programchange
Midi setup, in this case midisetup.rg file will i show you how to change settings. I will introduce you to some controllers that you will find usefully to your midi setup
Table 7.
|
No. |
Controller |
What does the controller do |
|
7 |
Volume |
This sets the volume on the midi track 0 if lowest setting, 127 is the loudest setting |
|
10 |
Ballange |
This controls sett the balance on the midi track, 0 is for the left side, and 127 is right, 65 is center |
|
32 |
Bank Select |
This controller select the different sound banks on your synth/keyboard "LSB" (fine) bank select |
|
0 |
Bank Select |
This controller is the MSB (coarse) bank change |
|
91 |
reverb |
This sets the room size on the midi track, 0 is for no acoustics, and 127 for max acoustics |
with this out of the way, you have setup a structured setup of the midi segment that tells your synth/keyboard what it should do. And then you simply can export the midi to any devices you want, even mobile phone.(if the mobile supports polyfonisk midi)
here you can download the finish setup file
midisetup.rg
Sometime you wish to use different sounds on your Synth/keyboard that not in the GM standard, then you have to use controller that take care of this. Controller 32.
This functions are taken in use if you also want drums on other tracks then 10. Example percussion effects on tracks 16, that my favorite tracks to use for this functions. Then with controller 32 on data1, and number 4 on data2, changes what track 16 should do, in this case drums. And then with program change 57, will that track change to effect kit.
Controller 0 and 32, with number 0, is gm standard, use it on tracks 1-9, 11-16
Controller 0 and 32, with number 1-127 are those different banks, used on track 1-9, 11-16
Controller 32, with number 4, are for mine synth drums, that is use for standard on track 10, and on special need on any track you to your liking.
Yamaha keyboard with Gm2/Xg have some more options, i recommend you to read the manual that gives you the complete overview of the instrument on your keyboard, and there also says what banks the instrument exist on.
Let me take an example:
my keyboard have a instrument on controller 0(MSB) on value 8, and in controller 32(LSB) on value 1, and last on program change 3.
so the following is,
controller 0 with value 8
controller 32 with value 1
and last the program change with value 3
the order on when controller 0 and 32 and program change comes are important
remeber that controller 0 and 32, have to come BEFORE program change.
i have included this in the standardupsetfile.
This is actually something i just found out. You use the intrumentparameter to have the reverb, volume you want, and then the trick is to press a key on your keyboard when rosegarden count up for you, so you actually get a note in the counting in before record. This you can do on every segment. And then when you export the song to midi, the info will automatical been put inn there, the only thing is that you must load the new midi file, and remove the note you dont need.
you can also create a new midi device that is for your synth/keyboard, to make the easy pick on the instrument parameters as shown on the picture below
When you have play what you want in the segment will there always be something you want to correct up on, instead of play everything from start again, you have many possibility to change, edit everything to the better. First I am introduce you to the use of the matrix Editor.
This functions have several possibility, after a played segment you sometime miss the beat, here is where the GridQuantize comes in the picture. it's usefully to get note right on the beat automatical.
To use this the right way, can save your from a lot of work. You have to try out different ways, there are always the possibility to undo the quantize if it not goes as intended. So there is only just to try again with a different setting on the base grid unit, you have to try your self out different setting, and you will find one that fits you need best. There are many possibility.
and other Quantizer that you will find usefully are heuristic notation quantizer. This help you to make your played note to the right length, this uses mostly to fixing up on the notations preview. And make the not more easy to read for the musician.
As you can se have this method, changed the length on the note to right length for and 16 note, and that should be played stakato. It have changed notations to the better.
Number 1 show you how the notations was before Quantize, and number 2 is how it shown up after. Number 2 is more easy for the musician to read then number 1. and number 1 is more confusing, with 32 quanted notes, and some different rest note. Number 2 is more clean, and will mostly be played the way i intended it to be played. There is one thing that it's sound great on midi, but if you want public your notations to orchestra, band, you have to take you time and clean up your notes. That was and short introductions to use of Matrix edit.
Note edit are a powerful edit tool to make you notations ready for pianist, orchestra, band, you have the tool to make different marks thats tell the musician what he should do, how fast, how hard, how soft, tempo changes and more. I gonna introduce you to some of the features with the note edit. the fist picture is before:
you see a clean notations, there is noting that tells what you want how the notes should be played. After i have worked with the notations, here is the result:
you see here that we have got what speed, what hardiness the notations should be played with. At the same time i have change the note to bind together, i also change the note lenght in the matrix editor to eight-note, so it would be easier for the pianist to read, but the piece will actually be played as i want it to, and the notations take less space. Let us se closer how i got this marks in the notations.
This guide show you how to set in useful informations to the musician how you compositions should be played, Tempo, what volume, what accord, that only a part of this tool. the picture show you how to make the note bind together, how to put a crescendo, decrescendo on your notations.
If you look at the right menu, there are many possibility to improve the informations on the notations, the only thing you have to remember is to mark those note this info should be apart of.
If you look on the left menu, you can put manually note, rest on you notations, you can also cange the clef on the notations, below you se how.
Take in use the Interpret functions
when you play on the synth/keyboard, specially when you want to play in a low volume (piano) this are not always easy, have the same note hardiness on your accord, or you just want the music to play piano where it is piano, and forte where there is forte. You can put in those mark on the notations, and when you are finish with put in all the marks on your notations, and buy right click in the score editor, and choose the "interpret" rosegarden will change the velocties, and notations play after the marks you have put on your notations.
It is not possible yet, to display a piano segment in a dual system (grand staff). However here is a detailed manual on rendering such scores with LilyPond . First step is to split a segment by pitch (This feature refers to feature request 4932 ).
There are 2 ways to put note in scoreeditor, first way is the manually putting notes.
And you have the Step recording, that one is my favorite. And it could be a nice way for the student to learn what note and what key on the synth/keyboard the student have to push to get the note.
If this is happening you could try to change the sequencer timer source.
That can be done several ways, I'm gonna show you the one i think is the best to use. if you right click on the line you see right under 120, the menu for tempo change will pop up.
The menu is as following
If you right click on the line there you want the tempo change, let's say with number 3, and then chose 'Insert Tempo Change' a dot with number 3 will shown up. And then left click and hold down after number 3, you can easly change tempo only by dragin up and down.
This simply make a tempo change there you are positions on the song.
here you simply manyally can type in what tempo you want, this is the best to use if you are after a special tempo, the drag functions are good to, but not so presice.
this give you the possibility to change the beat on you melody, on my example i have started up the song with 4/4 beat, and after the tempo change i have changed the song to 3/4 beat (wals).
With this you manually can go into all you tempo change and beat change, and change to your liking
and the after you have done a successfully record of you midi song, you can add on some singing, real guitars, and so on, you have to be creative.:)
Here you have and example of music piece that have been made on rosegarden, I have got a friend of mine to play guitars.
arr/melody: Alf Tonny Bätz. Guitarist: Bjørn Nygård
Mp3 versionen
http://alfton.gfxi.no/files/upseth.mp3
Midi version
http://alfton.gfxi.no/files/upseth.mid
This document is written and copyrighted by Alf Tonny Bätz (2008), Holger Levsen (2008) and is released under the GPL2 or any later version. Enjoy!
If you add content to it, please only do so if you are the author of it and plan to release it under the same conditions ! Then add your name here and release it under the GPL2 or later version.
The Bokmål translation is copyrighted by Alf Tonny Bätz (2008) and is released under the GPL2 or any later version.
Fully translated versions of this document are not yet available. An incomplete translation for Norwegian Bokmål exists.
Translations of this document are kept in .po files like in many free software projects, read usr/share/doc/debian-edu-doc-en/README.rosegarden-manual-translations for more information on this. Please read also read this, if you want to start/help translating this document.
To commit your translations you need to be a member of the alioth project debian-edu . To translate, you just need to check out some files from from svn (which can be done anonymously), create patches and send those to debian-edu-doc@packages.qa.debian.org .
You can checkout the debian-edu-doc source anonymously with the following command (you need to have the subversion package installed for this to work):
svn co svn://svn.debian.org/svn/debian-edu/trunk/src/debian-edu-doc
Then edit the documentation/rosegarden/rosegarden-manual.$CC.po (where you replace $CC with your language code). There are many tools for translating available, we suggest to use kbabel .
Then you either commit the file directly to svn (if you have the rights to do so) or send the file to the mailinglist.
To update your local copy of the repository use the following command inside the debian-edu-doc directory:
svn up
Read /usr/share/doc/debian-edu-doc-en/README.rosegarden-manual-translations to find information how to create a new .po file for your language if there is none yet, and how to update translations. If you are new to SVN, look at the SVN book , it has a chapter on the basic workflow with SVN .
Please report any problems.
Note to translators: there is no need to translate the GPL license text.
Copyright (C) 2008 Alf Tonny Bätz < alfton@gmail.com > and others, see the Copyright chapter for the full list of copyright owners.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.
You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.
In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.
10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.