1 |
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
2 |
<html> |
<html> |
3 |
<head> |
<head> |
4 |
|
|
5 |
<link rel="stylesheet" type="text/css" href="index.css"> |
<link rel="stylesheet" type="text/css" href="index.css"> |
6 |
<title>The Linux Sampler Project</title> |
<title>The Linux Sampler Project</title> |
7 |
|
|
50 |
downloadsout = new Image(); |
downloadsout = new Image(); |
51 |
downloadsout.src = dir + "mdownloads.png"; |
downloadsout.src = dir + "mdownloads.png"; |
52 |
|
|
53 |
|
supportover = new Image(); |
54 |
|
supportover.src = dir + "msupporthover.png"; |
55 |
|
supportout = new Image(); |
56 |
|
supportout.src = dir + "msupport.png"; |
57 |
|
|
58 |
developersover = new Image(); |
developersover = new Image(); |
59 |
developersover.src = dir + "mdevelopershover.png"; |
developersover.src = dir + "mdevelopershover.png"; |
60 |
|
|
117 |
<a id="screenshots" href="screenshots.html" onmouseover="javascript:if(document.images)document.screenshots.src = screenshotsover.src" onmouseout="javascript:if(document.images)document.screenshots.src = screenshotsout.src"><img name="screenshots" src="gfx/mscreenshots.png" alt="screenshots"></a> |
<a id="screenshots" href="screenshots.html" onmouseover="javascript:if(document.images)document.screenshots.src = screenshotsover.src" onmouseout="javascript:if(document.images)document.screenshots.src = screenshotsout.src"><img name="screenshots" src="gfx/mscreenshots.png" alt="screenshots"></a> |
118 |
<a id="demos" href="demos.html" onmouseover="javascript:if(document.images)document.demos.src = demosover.src" onmouseout="javascript:if(document.images)document.demos.src = demosout.src"><img name="demos" src="gfx/mdemos.png" alt="demos"></a> |
<a id="demos" href="demos.html" onmouseover="javascript:if(document.images)document.demos.src = demosover.src" onmouseout="javascript:if(document.images)document.demos.src = demosout.src"><img name="demos" src="gfx/mdemos.png" alt="demos"></a> |
119 |
<a id="downloads" href="downloads.html" onmouseover="javascript:if(document.images)document.downloads.src = downloadsover.src" onmouseout="javascript:if(document.images)document.downloads.src = downloadsout.src"><img name="downloads" src="gfx/mdownloads.png" alt="download"></a> |
<a id="downloads" href="downloads.html" onmouseover="javascript:if(document.images)document.downloads.src = downloadsover.src" onmouseout="javascript:if(document.images)document.downloads.src = downloadsout.src"><img name="downloads" src="gfx/mdownloads.png" alt="download"></a> |
120 |
|
<a id="support" href="support.html" onmouseover="javascript:if(document.images)document.support.src = supportover.src" onmouseout="javascript:if(document.images)document.support.src = supportout.src"><img name="support" src="gfx/msupport.png" alt="support"></a> |
121 |
<a id="developers" href="developers.html" onmouseover="javascript:if(document.images)document.developers.src = developersover.src" onmouseout="javascript:if(document.images)document.developers.src = developersout.src"><img name="developers" src="gfx/mdevelopers.png" alt="developers"></a> |
<a id="developers" href="developers.html" onmouseover="javascript:if(document.images)document.developers.src = developersover.src" onmouseout="javascript:if(document.images)document.developers.src = developersout.src"><img name="developers" src="gfx/mdevelopers.png" alt="developers"></a> |
122 |
<a id="faq" href="faq.html" onmouseover="javascript:if(document.images)document.faq.src = faqover.src" onmouseout="javascript:if(document.images)document.faq.src = faqout.src"><img name="faq" src="gfx/mfaq.png" alt="faq"></a> |
<a id="faq" href="faq.html" onmouseover="javascript:if(document.images)document.faq.src = faqover.src" onmouseout="javascript:if(document.images)document.faq.src = faqout.src"><img name="faq" src="gfx/mfaq.png" alt="faq"></a> |
123 |
<a id="documentation" href="documentation.html" onmouseover="javascript:if(document.images)document.documentation.src = documentationover.src" onmouseout="javascript:if(document.images)document.documentation.src = documentationout.src"><img name="documentation" src="gfx/mdocumentation.png" alt="documentation"></a> |
<a id="documentation" href="documentation.html" onmouseover="javascript:if(document.images)document.documentation.src = documentationover.src" onmouseout="javascript:if(document.images)document.documentation.src = documentationout.src"><img name="documentation" src="gfx/mdocumentation.png" alt="documentation"></a> |
128 |
</td><td valign=top width="100%"> |
</td><td valign=top width="100%"> |
129 |
<div id="contents"> |
<div id="contents"> |
130 |
|
|
131 |
<h2>General</h2> |
<h2>The Project</h2> |
132 |
|
<p class="default"> |
133 |
|
The LinuxSampler project was founded with the |
134 |
|
goal to produce a free, open source pure software audio sampler |
135 |
|
with professional grade features, comparable to both hardware and |
136 |
|
commercial Windows/Mac software samplers |
137 |
|
and to introduce new features not yet available by any other |
138 |
|
sampler in the world. |
139 |
|
</p> |
140 |
|
|
141 |
|
<h2>The Engine</h2> |
142 |
|
<p class="default"> |
143 |
|
<u><b>LinuxSampler</b></u> was designed very modular, especially |
144 |
|
(and in contrast to other samplers) it was decoupled from any user |
145 |
|
interface. LinuxSampler itself usually runs as own process in the |
146 |
|
background of the computer and usually does not show up anything on |
147 |
|
the screen, or at most it can be launched to show status |
148 |
|
informations and debug messages in a console window:<br> |
149 |
|
<br> |
150 |
|
<a href="screenshots/ls_0_5_1_console.png"> |
151 |
|
<img src="screenshots/ls_0_5_1_console_preview.png"> |
152 |
|
</a><br> |
153 |
|
<br> |
154 |
|
That means LinuxSampler itself is the "engine" of the sampler, it |
155 |
|
is the software component which performs all the heavy and time |
156 |
|
critical computational tasks of handling MIDI events, calculating |
157 |
|
the audio data and sending the final audio data to your sound |
158 |
|
card(s). We call LinuxSampler the <i>sampler backend</i>. |
159 |
|
</p> |
160 |
|
|
161 |
|
<h2>The Face(s)</h2> |
162 |
|
<p class="default"> |
163 |
|
Obviously you need some way to control the sampler. That's where a |
164 |
|
2nd application comes into game, which we call a |
165 |
|
<i>sampler frontend</i> application. A frontend is (usually) a |
166 |
|
graphical application, visible on the screen, providing the user |
167 |
|
a set of e.g. menus, buttons, sliders, dials, etc. to allow the |
168 |
|
user to control the sampler in a convenient way. It merely sends |
169 |
|
the user requests to the sampler engine (LinuxSampler) and in turn |
170 |
|
shows the engine's status informations on the screen. A frontend |
171 |
|
does not perform any signal processing tasks, so you can see it as |
172 |
|
a "face" of the sampler.<br> |
173 |
|
<br> |
174 |
|
For luxury we already provide you two different frontends / "faces" |
175 |
|
for LinuxSampler: |
176 |
|
</p> |
177 |
|
<ul> |
178 |
|
<li> |
179 |
|
<u><b>QSampler</b></u> is a light-weight frontend written in |
180 |
|
C++, using straightforward native graphical controls of the |
181 |
|
underlying operating system. That way the appearance of |
182 |
|
QSampler on the screen is very fast and it only consumes very |
183 |
|
little resources. Due to its utilization of the operating |
184 |
|
system's common GUI controls, it looks slightly different on |
185 |
|
every operating system (also dependent of the user's selected |
186 |
|
theme on his OS):<br> |
187 |
|
<br> |
188 |
|
<a href="screenshots/qs_0_2_1_win.jpg"> |
189 |
|
<img src="screenshots/qs_0_2_1_win_preview.jpg"> |
190 |
|
</a> |
191 |
|
<a href="screenshots/qs_0_2_1_ubuntu.png"> |
192 |
|
<img src="screenshots/qs_0_2_1_ubuntu_preview.png"> |
193 |
|
</a><br> |
194 |
|
<br> |
195 |
|
Note however, QSampler does not fully support all features of |
196 |
|
the sampler engine (LinuxSampler) yet. Most notably the |
197 |
|
engine's instruments database feature is not yet covered by |
198 |
|
QSampler. But if you don't need that particular feature, |
199 |
|
you're certainly fine with QSampler as well.<br> |
200 |
|
<br> |
201 |
|
</li> |
202 |
|
|
203 |
|
<li> |
204 |
|
<u><b>JSampler</b></u> is a full-fledged frontend for |
205 |
|
LinuxSampler, written in Java and currently comes in two |
206 |
|
flavors: <b>JSampler "Classic"</b> offers straightforward GUI |
207 |
|
controls whereas <b>JSampler "Fantasia"</b> provides a modern |
208 |
|
skin based user interface:<br> |
209 |
|
<br> |
210 |
|
<a href="screenshots/fantasia.png"><img src="screenshots/fantasia-preview.png"></a> |
211 |
|
<br> |
212 |
|
JSampler supports all features currently available in the |
213 |
|
sampler engine (LinuxSampler). Also note that even though |
214 |
|
JSampler is written in Java and slightly more hungry |
215 |
|
regarding resources (compared to QSampler), this usually |
216 |
|
does not have any impact on the audio rendering performance |
217 |
|
of the sampler, since the engine runs completely independently |
218 |
|
and with much higher CPU priority than the frontend(s).<br> |
219 |
|
</li> |
220 |
|
</ul> |
221 |
|
<p class="default"> |
222 |
|
It's completely up to you which frontend to use. You could even use |
223 |
|
both parallel at the same time for the same sampler engine |
224 |
|
instance, really! ;-) You're concerned that your sampler frontend |
225 |
|
might waste precious resources of your computer? No problem, just |
226 |
|
setup the sampler session for your needs and then quit the |
227 |
|
frontend application. The sampler engine doesn't care! It continues |
228 |
|
to do its job. You need to change something? Start the frontend |
229 |
|
again (or another frontend) and you see what you expect to see: the |
230 |
|
current setup and state of the running sampler engine. |
231 |
|
</p> |
232 |
|
|
233 |
|
<h2>The Format</h2> |
234 |
|
<p class="default"> |
235 |
|
It is planned to support all common sampler formats in |
236 |
|
LinuxSampler, but at the moment we chose to concentrate on the |
237 |
|
Gigasampler format, because when we started this project, the |
238 |
|
Gigasampler format was (in our opinion) the most popular |
239 |
|
and "best" sampler format in regards of quality and power, |
240 |
|
especially for the synthesis of natural instruments like pianos, |
241 |
|
brass and bowed instruments. But we already made good advance in |
242 |
|
implementing this format, so we are optimistic to start with |
243 |
|
adding other formats soon. Beside that we also planned to |
244 |
|
design our own, sophisticated sampler format to introduce a more |
245 |
|
powerful and more flexible sampler format compared to |
246 |
|
any sampler format currently available in the world. Be encouraged |
247 |
|
to share your ideas about such a new format with us! |
248 |
|
</p> |
249 |
|
|
250 |
|
<h2>The Editor</h2> |
251 |
|
<p class="default"> |
252 |
|
<u><b>gigedit</b></u> allows you to edit and create instruments |
253 |
|
for the Gigasampler format, which can be used with LinuxSampler |
254 |
|
as well as with Tascam's Gigastudio. Following our line of |
255 |
|
modularity we also made the instrument editors independent |
256 |
|
applications. Because let's face it: every sampler format is |
257 |
|
different, so in our opinion it is better to honor the specific |
258 |
|
features of one format with its own instrument editor application |
259 |
|
instead of trying to fiddle everything into one single bloated |
260 |
|
application. So gigedit is our first editor, dedicated to the .gig |
261 |
|
format:<br> |
262 |
|
<br> |
263 |
|
<a href="screenshots/gigedit_0_0_3.png"><img src="screenshots/gigedit_0_0_3_preview.jpg"></a> |
264 |
|
<br> |
265 |
|
You can use gigedit as stand-alone application or in conjunction |
266 |
|
with LinuxSampler. For the latter case gigedit installs a plugin |
267 |
|
into the sampler engine, so the engine (and with it the frontends) |
268 |
|
knows that gigedit actually exists and can handle the .gig format. |
269 |
|
So even though we decoupled the sampler's components into |
270 |
|
independent applications, they all work seamlessly together. |
271 |
|
<a href="http://download.linuxsampler.org/doc/gigedit/quickstart/gigedit_quickstart.html#live_editing"> |
272 |
|
Just press the "Edit" button |
273 |
|
</a> on a channel strip of a frontend and |
274 |
|
gigedit will automatically popup on the screen and you're |
275 |
|
immediately ready to edit your selected instrument, making all your |
276 |
|
modifications audible in realtime. Even when editing huge |
277 |
|
instruments of 1GB or more, tweak the instrument with gigedit and |
278 |
|
immediately hear it while playing on the keyboard at the same time. |
279 |
|
And the good thing: even with new sampler formats we're going to |
280 |
|
add soon (and with it new editors), you don't have to remember |
281 |
|
which instrument you loaded uses which format. Simply click on |
282 |
|
"Edit" in a frontend and the sampler engine will choose the right |
283 |
|
instrument editor application for the respective instrument for |
284 |
|
you. |
285 |
|
</p> |
286 |
|
|
287 |
|
<h2>The Technical Interface</h2> |
288 |
|
<p class="default"> |
289 |
|
As the components of the sampler are independent applications, |
290 |
|
there must be a way to let the applications communicate with each |
291 |
|
other. For this LinuxSampler provides a native C++ |
292 |
|
<a href="http://en.wikipedia.org/wiki/Application_programming_interface">API</a> |
293 |
|
as well as a network interface using an ASCII based protocol which |
294 |
|
we call "<a href="http://www.linuxsampler.org/api/draft-linuxsampler-protocol.html" title="LinuxSampler Control Protocol">LSCP</a>" |
295 |
|
for controlling the sampler engine and managing sampler sessions. |
296 |
|
Our frontends support that network interface, which also allows to |
297 |
|
control the sampler engine with the GUI frontend(s) remotely from |
298 |
|
another computer, probably even running a completely different |
299 |
|
Operating System. And compared to other remote control solutions, |
300 |
|
the frontend won't feel sluggish, as the frontend is running on |
301 |
|
your local machine.<br> |
302 |
|
<br> |
303 |
|
You can also configure your computer to automatically start the |
304 |
|
sampler engine and loading your prefered sampler session without |
305 |
|
any frontend, simply by using a <i>LSCP session file</i>. How do |
306 |
|
you get such a "LSCP session file"? Both frontends write LSCP |
307 |
|
session files for you when you request them to save your current |
308 |
|
sampler session. And as those LSCP session files are ordinary |
309 |
|
human readable text files, you can adjust them with any text |
310 |
|
editor if you want. |
311 |
|
</p> |
312 |
|
|
313 |
|
<h2>The Compatibility</h2> |
314 |
|
<p class="default"> |
315 |
|
LinuxSampler is available for the most popular operating |
316 |
|
systems and already supports a variety of audio and MIDI driver |
317 |
|
systems on each OS. It does not require any special dedicated |
318 |
|
device drivers from the sound card manufacturers, so you can |
319 |
|
also use it with cheap consumer cards. Due to its clean design |
320 |
|
the sampler can be ported to other operating systems and |
321 |
|
extended for further driver systems with a minimum of effort. |
322 |
|
So we're prepared for the future! |
323 |
|
</p> |
324 |
|
|
325 |
|
<h2>The Community</h2> |
326 |
<p class="default"> |
<p class="default"> |
327 |
LinuxSampler is a work in progress. The goal is to produce a free, open source pure software audio sampler |
All applications are under active development. However we all work |
328 |
with professional grade features, comparable to both hardware and commercial Windows/Mac software samplers |
on this project for fun in our spare time. There are still so many |
329 |
and to introduce new features not yet available by any other sampler in the world.<br> |
things to do and our hands are limited. So don't hesitate on |
330 |
<br> |
participating to the project! You don't necessarily need to be a |
331 |
LinuxSampler was designed as a sampler backend, decoupled from any user interface. It provides a network interface |
skilled programmer to help the project. Testing the applications, |
332 |
using an ASCII based protocol called <a href="http://www.linuxsampler.org/api/draft-linuxsampler-protocol.html">LSCP</a> |
<a href="http://bugs.linuxsampler.org.">reporting bugs</a>, writing |
333 |
for controlling the sampler and managing sampler sessions. But don't be afraid, with QSampler we |
documentation, providing artwork, themes for frontends, etc. helps |
334 |
already have a convenient GUI frontend (based on the cross-platform GUI library Qt) for LinuxSampler and due to the |
us and all users a lot! Simply subscribe to our |
335 |
decoupled design you can even control the sampler with the GUI frontend from another computer, probably even running |
<a href="http://lists.sourceforge.net/lists/listinfo/linuxsampler-devel"> |
336 |
another OS like Windows or OS X. Beside our own custom network control layer we planned to add existing ones as well |
mailing list |
337 |
(e.g. <a href="http://www.cnmat.berkeley.edu/OpenSoundControl/">OSC</a>). With the planned SMP and cluster support |
</a> and we'll of course take you by the hand in case you want to |
338 |
LinuxSampler might become a very interesting tool for high-end studios and concerts in future.<br> |
participate with active source code development. Don't be afraid! |
339 |
<br> |
You have your own ideas and concepts for making the sampler better? |
340 |
It is planned to support all common sampler formats in LinuxSampler, but at the moment we chose to concentrate on the |
Great, share them with us!<br> |
|
Gigasampler format, because we think it's currently the best sampler format in regards of quality and power, especially |
|
|
for the synthesis of natural instruments like pianos, brass and bowed instruments. But we already made good advance in |
|
|
implementing this format, so we are optimistic to start with adding other formats soon. Beside that we also planned to |
|
|
design our own, sophisticated sampler format to introduce a more powerful and more flexible sampler format compared to |
|
|
any sampler format currently available in the world. Be encouraged to share your ideas about such a new format with us!<br> |
|
341 |
<br> |
<br> |
|
Anyway, there are so many things to do and our hands are limited. So don't hesitate on participating to the project! |
|
342 |
</p> |
</p> |
343 |
|
|
344 |
</div> |
</div> |