1 |
<chapter id="live_editing"><title>Live Editing</title> |
2 |
<section id="about"><title>Only trust what you hear...</title> |
3 |
<para> |
4 |
So far we've been using <application>gigedit</application> as stand-alone |
5 |
application. The main drawback of this approach is that you cannot |
6 |
immediately hear the effect of your modifications unless you explicitly |
7 |
(re)load the respective instrument into a sampler, which is unconvenient |
8 |
and wastes a lot of time (especially with big instruments). Fortunately |
9 |
gigedit and <application>LinuxSampler</application> are friends and |
10 |
politely share the same instrument(s) at the same time if you tell them to |
11 |
do so. |
12 |
</para> |
13 |
<para> |
14 |
To do this, you first have to load the respective instrument(s) into |
15 |
<application>LinuxSampler</application>, i.e. by using a frontend |
16 |
application like <application>JSampler</application> or |
17 |
<application>QSampler</application>. In this example we describe it |
18 |
by using <application>QSampler</application>, but you'll see it's |
19 |
pretty much the same thing with <application>JSampler</application>. |
20 |
Select the channel strip of the instrument you want to edit and click |
21 |
on the "Edit" button on the same channel strip: |
22 |
|
23 |
<figure id="shot_qsampler_edit"><title>Selecting an instrument to edit from QSampler</title> |
24 |
<screenshot><mediaobject><imageobject> |
25 |
<imagedata fileref="shot_qsampler_edit.png" format="PNG"/> |
26 |
</imageobject></mediaobject></screenshot> |
27 |
</figure> |
28 |
|
29 |
Alternatively you can also select this function from the menu ( |
30 |
<menuchoice> |
31 |
<guimenu>"Edit"</guimenu> |
32 |
<guimenuitem>"Edit Channel..."</guimenuitem> |
33 |
</menuchoice> ). In any case |
34 |
<application>gigedit</application> should popup on the screen in less |
35 |
than 5 seconds. This time you can see <application>gigedit</application> |
36 |
like being "attached" to <application>LinuxSampler</application>. |
37 |
|
38 |
<figure id="shot_gigedit_hosted"><title>Gigedit running "attached" to LinuxSampler</title> |
39 |
<screenshot><mediaobject><imageobject> |
40 |
<imagedata fileref="shot_gigedit_hosted.png" format="PNG"/> |
41 |
</imageobject></mediaobject></screenshot> |
42 |
</figure> |
43 |
|
44 |
If nothing appears on the screen or in case you get an error when clicking |
45 |
on the "Edit" button, refer to <xref linkend="live_trouble" />. |
46 |
</para> |
47 |
<para> |
48 |
All modifications you do on the selected instrument with |
49 |
<application>gigedit</application> will immediately be audible when you |
50 |
play notes. |
51 |
When you close <application>gigedit</application> you'll notice that it |
52 |
won't ask you to save the instrument, which it would usually do when you |
53 |
run <application>gigedit</application> as stand-alone application. This is |
54 |
because the modifications are not lost when you close it, at least not |
55 |
unless you kill the sampler as well. So when you click again on "Edit" |
56 |
you'll see that all the modifications you made are still there. Also note |
57 |
when selecting "New" or "Open" from the menu to create a completely new |
58 |
instrument or open another one from a file, |
59 |
<application>gigedit</application> will be "detached" from the sampler, |
60 |
that is the other instrument will not be audible with the sampler. This is |
61 |
currently (2007-10-07) a minor limitation of the sampler and |
62 |
<application>gigedit</application>. So if you want to create a completely |
63 |
new instrument from scratch you first have to create that instrument with |
64 |
<application>gigedit</application>, save it to a file and then load it into |
65 |
the sampler. After that you can continue like described in this chapter and |
66 |
edit the new instrument "live" by clicking on the respective "Edit" button |
67 |
in <application>QSampler</application>. |
68 |
</para> |
69 |
</section> |
70 |
|
71 |
<section id="live_trouble"><title>Trouble with live-editing</title> |
72 |
<para> |
73 |
<application>LinuxSampler</application> and |
74 |
<application>gigedit</application> need to be compiled properly to be able |
75 |
to use the described "live editing" feature between those two applications. |
76 |
So here is a short technical explanation how the interaction between those |
77 |
two applications work: <application>LinuxSampler</application> per se |
78 |
doesn't actually know anything that an application like |
79 |
<application>gigedit</application> exists in this world. However the |
80 |
sampler provides a plugin system to extend it for this functionality. When |
81 |
you compile the sampler you define a directory where the sampler shall look |
82 |
for plugin DLLs to load on startup. So first check if that directory |
83 |
actually exists or if the sampler was not compiled with the correct / |
84 |
desired plugin directory. When you start the sampler from the console |
85 |
simply by typing the command <command>linuxsampler</command> and you see |
86 |
something like this: |
87 |
<screen> |
88 |
<prompt>bob@mybox ~ $</prompt> <command>linuxsampler</command> |
89 |
LinuxSampler 0.4.0.7cvs |
90 |
Copyright (C) 2003,2004 by Benno Senoner and Christian Schoenebeck |
91 |
Copyright (C) 2005-2007 Christian Schoenebeck |
92 |
Detected features: MMX SSE |
93 |
Creating Sampler...OK |
94 |
Registered sampler engines: 'GIG' |
95 |
Registered MIDI input drivers: ALSA |
96 |
Registered audio output drivers: ALSA,ARTS,JACK |
97 |
Loading instrument editor plugins...<errortext>Could not open instrument editor plugins directory (/usr/local/lib/linuxsampler/plugins): No such file or directory</errortext> |
98 |
Registered instrument editors: |
99 |
Starting LSCP network server (0.0.0.0:8888)...OK |
100 |
LinuxSampler initialization completed. :-) |
101 |
</screen> |
102 |
Then there's definitely something wrong. :) So either create the mentioned |
103 |
directory (in this case "/usr/local/lib/linuxsampler/plugins") manually or |
104 |
recompile <application>LinuxSampler</application> in case you want it to use |
105 |
another directory as plugins directory. Assuming you want it to use the directory "/usr/lib/linuxsampler/plugins" instead you could compile the sampler i.e. this way: |
106 |
<screen> |
107 |
<prompt>bob@mybox ~/cvs/linuxsampler $</prompt> <command>./configure --enable-plugin-dir=/usr/lib/linuxsampler/plugins && make</command> |
108 |
</screen> |
109 |
probably in conjunction with some other configure script parameters and some |
110 |
nice CXXFLAGS to optimize the sampler for your machine, but this is out of |
111 |
the scope of this document. After the compilation completed, you would |
112 |
install the sampler as user root as usual: |
113 |
<screen> |
114 |
<prompt>bob@mybox ~/cvs/linuxsampler $</prompt> <command>su</command> |
115 |
Password: |
116 |
<prompt>mybox linuxsampler #</prompt> <command>make install</command> |
117 |
</screen> |
118 |
Again make sure that your chosen plugin directory exists, if not create it |
119 |
and when running <application>LinuxSampler</application> now again, the |
120 |
error message on the console ("Could not open instrument editor plugins |
121 |
directory") should be gone. |
122 |
</para> |
123 |
<para> |
124 |
Now you must recompile <application>gigedit</application>, because it has |
125 |
to compile the appropriate plugin and has to place that plugin DLL into the |
126 |
samplers plugins directory. It should look like this: |
127 |
<screen> |
128 |
<prompt>bob@mybox ~/cvs/gigedit $</prompt> <command>./configure</command> |
129 |
checking build system type... i686-pc-linux-gnu |
130 |
checking host system type... i686-pc-linux-gnu |
131 |
checking for gcc... gcc |
132 |
checking for C compiler default output file name... a.out |
133 |
checking whether the C compiler works... yes |
134 |
checking whether we are cross compiling... no |
135 |
... |
136 |
checking for gmsgfmt... /usr/bin/gmsgfmt |
137 |
checking for xgettext... /usr/bin/xgettext |
138 |
checking for pkg-config... /usr/bin/pkg-config |
139 |
checking pkg-config is at least version 0.9.0... yes |
140 |
checking for GTKMM... yes |
141 |
checking for GIG... yes |
142 |
checking for SNDFILE... yes |
143 |
checking for SF_INSTRUMENT.loops... yes |
144 |
<errortext>checking for LINUXSAMPLER... yes |
145 |
Found linuxsampler 0.4.0.5cvs |
146 |
Retrieving LinuxSampler's plugin dir... /usr/lib/linuxsampler/plugins |
147 |
Relative plugin dir: ${libdir}/linuxsampler/plugins</errortext> |
148 |
configure: creating ./config.status |
149 |
config.status: creating Makefile |
150 |
config.status: creating src/Makefile |
151 |
config.status: creating src/gigedit/Makefile |
152 |
config.status: creating src/plugin/Makefile |
153 |
config.status: creating po/Makefile.in |
154 |
config.status: creating debian/Makefile |
155 |
config.status: creating doc/Makefile |
156 |
config.status: creating doc/quickstart/Makefile |
157 |
config.status: creating config.h |
158 |
config.status: config.h is unchanged |
159 |
config.status: executing depfiles commands |
160 |
config.status: executing intltool commands |
161 |
config.status: executing default-1 commands |
162 |
config.status: executing po/stamp-it commands |
163 |
<prompt>bob@mybox ~/cvs/gigedit $</prompt> <command>make</command> |
164 |
</screen> |
165 |
Make sure the higlighted section of the configure script output looks |
166 |
similar like above. After compilation completed, you once again install |
167 |
with the common procedure: |
168 |
<screen> |
169 |
<prompt>bob@mybox ~/cvs/gigedit $</prompt> <command>su</command> |
170 |
Password: |
171 |
<prompt>mybox gigedit #</prompt> <command>make install</command> |
172 |
</screen> |
173 |
This will install the <application>gigedit</application> binary, as well |
174 |
as its plugin .so file into the directory "/usr/lib/linuxsampler/plugins" |
175 |
(or whatever you chose). And when you start the sampler now from the |
176 |
console, it should look like this: |
177 |
<screen> |
178 |
<prompt>bob@mybox ~ $</prompt> <command>linuxsampler</command> |
179 |
LinuxSampler 0.4.0.7cvs |
180 |
Copyright (C) 2003,2004 by Benno Senoner and Christian Schoenebeck |
181 |
Copyright (C) 2005-2007 Christian Schoenebeck |
182 |
Detected features: MMX SSE |
183 |
Creating Sampler...OK |
184 |
Registered sampler engines: 'GIG' |
185 |
Registered MIDI input drivers: ALSA |
186 |
Registered audio output drivers: ALSA,ARTS,JACK |
187 |
Loading instrument editor plugins...OK |
188 |
<errortext>Registered instrument editors: 'gigedit'</errortext> |
189 |
Starting LSCP network server (0.0.0.0:8888)...OK |
190 |
LinuxSampler initialization completed. :-) |
191 |
</screen> |
192 |
Now you're done with setup and the steps described in |
193 |
<xref linkend="about" /> should work for you. If not, you probably found a |
194 |
bug. Feel free to contact us via our mailing list or open a bug report on |
195 |
our website. |
196 |
<note>If you just used precompiled binary packages of |
197 |
<application>LinuxSampler</application> and |
198 |
<application>gigedit</application>, i.e. from the Linux distribution of |
199 |
your choice, you shouldn't have to recompile them by yourself. Either the |
200 |
versions of <application>LinuxSampler</application> and / or |
201 |
<application>gigedit</application> are too old or they were simply not |
202 |
compiled / packaged correctly. In both cases, please report it to the |
203 |
respective package maintainer of your distribution!</note> |
204 |
</para> |
205 |
</section> |
206 |
</chapter> |