|
From: <pst...@us...> - 2008-05-20 04:40:07
|
Revision: 547
http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=547&view=rev
Author: pstieber
Date: 2008-05-19 21:39:55 -0700 (Mon, 19 May 2008)
Log Message:
-----------
Applied a patch provided by Donald B. Moore.
1. Replaced reference to old user-list email address with current
source forge user-list address.
2. Changed some words in the opening paragraph.
3. Moved Linux/MIDI treatise out of htdocs and into the
jazz.tex file as an abstract.
Modified Paths:
--------------
trunk/jazz/src/HelpFiles/jazz.tex
Modified: trunk/jazz/src/HelpFiles/jazz.tex
===================================================================
--- trunk/jazz/src/HelpFiles/jazz.tex 2008-05-19 05:56:49 UTC (rev 546)
+++ trunk/jazz/src/HelpFiles/jazz.tex 2008-05-20 04:39:55 UTC (rev 547)
@@ -16,9 +16,9 @@
\chapter{Introduction}\label{introduction}
-JAZZ++ is a full size MIDI sequencer with audio support. In addition to basic
-sequencer functions like record and play, JAZZ++ provides many edit features
-like quantize, copy, transpose, graphical pitch editing, multiple
+JAZZ++ is a fully featured MIDI sequencer with audio support. In addition to
+basic sequencer functions like record and play, JAZZ++ provides many edit
+features like quantize, copy, transpose, graphical pitch editing, multiple
undo/redo etc.
JAZZ++ has two main windows; one
@@ -75,6 +75,172 @@
application allowing the sequencer/editor and the midi-driver to run on
separate computers. The native driver has better support for the MPU-401
than the JAZZ++/OSS solution (e.g. support for external timing source).
+\item *New*
+ Introduction
+
+Years ago when the Jazz++ project first came to my attention,
+using it with Linux on the PC was a much different proposition to
+what is possible today on this platform/OS. Although it would be
+entirely possible to create a MIDI score with jazz, (in the same way
+this text is being produced with a text-editor), the whole point of
+the exercise would be to compose a MIDI score you could actually hear.
+
+
+Back then with Linux, making sound via MIDI applications meant having
+MIDI *hardware*. This may have taken the form of a MIDI adapter plugged
+in the PC's serial port or soundcard gameport (in MPU-401 mode), with a real
+world MIDI instrument(s) attached to that, or else a MIDI capable soundcard
+with a hardware based MIDI sound synthesis chip to make the actual sound.
+(so called 'MIDI/synth' capable soundcards)
+In that latter case, the soundcard necessarily had to be supported
+by Linux drivers, and in that respect these drivers were more than
+likely using the now deprecated 'OSS' sound system modules.
+
+Things have changed. The x86 based hardwares have become faster and
+cheaper, Linux has grown and matured as an operating system, and
+likewise Free software has multiplied and proliferated around the world
+giving rise to the creation of a great many new software applications.
+Along the way, the venerable 'OSS' sound system drivers were replaced
+with the 'Advanced Linux Sound Architecture' (ALSA) drivers and API.
+
+The result of these many advances and changes over time, means Linux
+users are no longer constrained by the need of having actual MIDI
+capable hardware or a MIDI/synth capable soundcard, to obtain good sound
+production with MIDI applications like Jazz++. Instead of having one
+or more hardware sound synthesis chips (be they on a soundcard or
+in a MIDI musical instrument) to produce the sound(s), we can now
+use a software application to achieve the same ends, and many folks
+loosely refer to these software applications as being 'softsynths'.
+
+
+For many years now, users with Windows on their PC have had a distinct
+advantage over Linux users on the PC, because virtually every sound
+card (and/or onboard sound chip) typically ships with proprietary
+Windows drivers that enable the use of that hardware as a 'softsynth' in
+conjunction with the underlying Windows sound API supports. In
+effect, Windows users could come to the website, download Jazz++ and
+install it, and be making noise in under 2 minutes with very little
+or no effort. If only users of other platforms/OS' could have it this
+easy - hopefully this documentation will help bridge the (Linux) gap.
+
+
+
+ Hardware based sound synthesis and Linux on the x86 PC
+
+Thanks to all the great work done by the ALSA team over the years, Linux
+now has much better driver supports for the various soundcards on the market
+today that have hardware based MIDI/synth chips as part of their design.
+
+However, at this point documentation detailing the configuration and
+use of such soundcard hardware with Linux and Jazz++ will be the
+focus of future efforts here. Why? Simply because the majority of
+people out there on the x86 PC don't have a hardware MIDI/synth soundcard
+as part of their computer's hardware. They need to know how to setup a
+'softsynth' in Linux if they don't have this sort of soundcard or
+any 'real' MIDI hardware to hear Jazz++ with...and believe me, this
+will be 80% or more of people out there using Linux and the PC.
+
+
+I will however include a section here soon listing all the sound
+cards of this type that are currently supported under Linux, and
+later document configuration details here for use with Jazz++.
+
+
+
+ Software based sound synthesis and Linux on the x86 PC
+
+This area of the documentation will grow over time. There is a lot
+that can be documented here now with Linux, however at this early
+stage of Jazz++'s development, it's more important for potential
+users and testers of the Jazz++ code to have some form of consistant
+MIDI 'test-bed' to prove and test Jazz++ itself on linux.
+
+Although this isn't 'set in stone', the Jazz++ developers have
+been using a softsynth setup in Linux as I describe below, which
+uses JACK, FLUIDSYNTH and QSYNTH. A similar setup should also
+work on the Mac running Mac OSX.
+
+Essentially, -any- ALSA based, MIDI capable softsynth setup
+should work with Jazz++, and I've already tested a few that seem
+to work fine. However, more consistant and comparable results of
+testing, will be observed using the same softsynth 'kit' as the
+Jazz++ developers do, and this is why documentation of this
+softsynth setup comes first.
+
+
+
+ Overview of a typical Linux softsynth setup
+
+\item Abstract:
+
+Softsynth setups in Linux are comprised of a number of
+software applications which work together to form a virtual
+machine that emulates hardware based MIDI/synth devices. The
+so formed virtual machine can be easily broken down into it's
+individual parts, to better understand how the components
+'expose' themselves to the user ;
+
+\item The ALSA part -- forms virtual MIDI and real audio paths for the
+other parts of the virtual machine to communicate across. Allows
+PCM data rendered by the virtual machine to be realized as an
+analogue audio signal at the line outputs of the soundcard hardware.
+
+\item The JACK part -- a low-latency sound server. Forms both a virtual
+MIDI patch-bay and a virtual audio patch-bay to control and
+define how the virtual machine parts interconnect with and across
+the virtual and real machine paths formed by the ALSA part.
+
+\item The FLUIDSYNTH part -- the virtual MIDI synthesizer itself. It
+accepts valid MIDI data as input, and renders that data into
+PCM data output, as determined by sound/instrument data contained
+in a 'SoundFont' file.
+
+\item The QSYNTH part -- this forms the virtual control panel of the
+virtual synthesizer part. Essentially, this comprises a GUI to
+easily allow the user to change/control the virtual synthesizer
+itself, add/remove SoundFont files, define bank settings, and
+adjust other working parameters of the virtual synthesizer itself.
+
+Additionally, the QJACKCTL software provides a GUI visualization
+of the virtual MIDI/audio patch-bays formed by the JACK part,
+allowing the user a quick and easy way to 'hook it all up' as it
+were, in any particular configuration they desire.
+
+For the sake of accuracy with this overview, it is worth noting
+that Jazz++ itself is a virtual machine - it is a software emulation
+of -hardware- based MIDI sequencers that were in common use years
+ago. Jazz++ is of course much more capable than these old hardware
+sequencers I speak of, which in their day were little more than
+'drum machines' triggering sound events on a MIDI or otherwise
+connected 'tip-and-ring patch cord configured' analogue synthesizer.
+
+Also note here, the virtual machine softsynth described in the
+overview above, lacks one obvious component - the INPUT part.
+It is basically a virtual MIDI synthesizer with all the bells,
+knobs and whistles, but without a keyboard or anything else
+'driving' it. Jazz++ is that part. The MIDI data produced by Jazz++
+is that MIDI input data the FLUIDSYNTH part accepts.
+
+Jazz++ can itself accept valid MIDI data from either the virtual
+and/or 'real world' MIDI domains. This means, you can connect
+a real MIDI synthesizer keyboard to Jazz++ as a MIDI data INPUT
+part, and record notes played on that with Jazz++. Equally, you
+could connect the same external MIDI keyboard as an INPUT part
+to FLUIDSYNTH and use the virtual MIDI softsynth to replay the
+notes you are playing instead of the synthesizer's own hardware kit.
+
+Finally, there are other virtual machines in software that
+can be used as valid MIDI data INPUT parts here, such as the
+program VKEYBD, which is a virtual onscreen MIDI keyboard GUI
+with keys you click on with your mouse -- all these MIDI devices
+be they virtual machines or not, can interact and interconnect
+with each other, and thus possibly form very complex MIDI
+sound production environments that traverse and inter-operate
+across the software virtual and real hardware MIDI domains.
+
+\item Practical:
+
+Still work in progress, come back soon!!
\end{itemize}
\subsection{Windows operating systems}
@@ -104,7 +270,7 @@
You are welcome to join the JAZZ++ mailing list by sending mail to
\begin{indented}{2cm}
-{\tt jaz...@hi...}
+{\tt jaz...@li...}
\end{indented}
with subject-field containing {\tt subscribe}.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|