summaryrefslogtreecommitdiff
path: root/muse2/doc/html/split/developer_docs/node10.html
diff options
context:
space:
mode:
Diffstat (limited to 'muse2/doc/html/split/developer_docs/node10.html')
-rw-r--r--muse2/doc/html/split/developer_docs/node10.html332
1 files changed, 332 insertions, 0 deletions
diff --git a/muse2/doc/html/split/developer_docs/node10.html b/muse2/doc/html/split/developer_docs/node10.html
new file mode 100644
index 00000000..c8680be0
--- /dev/null
+++ b/muse2/doc/html/split/developer_docs/node10.html
@@ -0,0 +1,332 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2008 (1.71)
+original version by: Nikos Drakos, CBLU, University of Leeds
+* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+ Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Pre-Rendering tracks</TITLE>
+<META NAME="description" CONTENT="Pre-Rendering tracks">
+<META NAME="keywords" CONTENT="developer_docs">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2008">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="developer_docs.css">
+
+<LINK REL="next" HREF="node11.html">
+<LINK REL="previous" HREF="node9.html">
+<LINK REL="up" HREF="node8.html">
+<LINK REL="next" HREF="node11.html">
+</HEAD>
+
+<BODY >
+
+<DIV CLASS="navigation"><!--Navigation Panel-->
+<A NAME="tex2html207"
+ HREF="node11.html">
+<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
+ SRC="/usr/share/latex2html/icons/next.png"></A>
+<A NAME="tex2html203"
+ HREF="node8.html">
+<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
+ SRC="/usr/share/latex2html/icons/up.png"></A>
+<A NAME="tex2html197"
+ HREF="node9.html">
+<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
+ SRC="/usr/share/latex2html/icons/prev.png"></A>
+<A NAME="tex2html205"
+ HREF="node1.html">
+<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
+ SRC="/usr/share/latex2html/icons/contents.png"></A>
+<BR>
+<B> Next:</B> <A NAME="tex2html208"
+ HREF="node11.html">Slotted editors</A>
+<B> Up:</B> <A NAME="tex2html204"
+ HREF="node8.html">Feature requests</A>
+<B> Previous:</B> <A NAME="tex2html198"
+ HREF="node9.html">Per-Part automation and more</A>
+ &nbsp; <B> <A NAME="tex2html206"
+ HREF="node1.html">Contents</A></B>
+<BR>
+<BR></DIV>
+<!--End of Navigation Panel-->
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html209"
+ HREF="node10.html#SECTION00421000000000000000">The feature</A>
+<LI><A NAME="tex2html210"
+ HREF="node10.html#SECTION00422000000000000000">Use cases</A>
+<UL>
+<LI><A NAME="tex2html211"
+ HREF="node10.html#SECTION00422010000000000000">Saving CPU</A>
+<LI><A NAME="tex2html212"
+ HREF="node10.html#SECTION00422020000000000000">Exporting as audio project</A>
+<LI><A NAME="tex2html213"
+ HREF="node10.html#SECTION00422030000000000000">Mobile audio workstations</A>
+<LI><A NAME="tex2html214"
+ HREF="node10.html#SECTION00422040000000000000">Applying effects on MIDI tracks</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html215"
+ HREF="node10.html#SECTION00423000000000000000">Possible scenarios</A>
+<UL>
+<LI><A NAME="tex2html216"
+ HREF="node10.html#SECTION00423010000000000000">Setting it up</A>
+<LI><A NAME="tex2html217"
+ HREF="node10.html#SECTION00423020000000000000">Pre-rendering stuff</A>
+<LI><A NAME="tex2html218"
+ HREF="node10.html#SECTION00423030000000000000">Making changes</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html219"
+ HREF="node10.html#SECTION00424000000000000000">Extensions</A>
+<UL>
+<LI><A NAME="tex2html220"
+ HREF="node10.html#SECTION00424010000000000000">Automatic discovery of physical audio connections</A>
+<LI><A NAME="tex2html221"
+ HREF="node10.html#SECTION00424020000000000000">Audio export</A>
+<LI><A NAME="tex2html222"
+ HREF="node10.html#SECTION00424030000000000000">Cheap/Faked changes</A>
+<LI><A NAME="tex2html223"
+ HREF="node10.html#SECTION00424040000000000000">Intelligent re-recording</A>
+</UL></UL>
+<!--End of Table of Child-Links-->
+<HR>
+
+<H1><A NAME="SECTION00420000000000000000">
+Pre-Rendering tracks</A>
+</H1>
+
+<H2><A NAME="SECTION00421000000000000000">
+The feature</A>
+</H2>
+All tracks shall be able to be "pre-renderable". Pre-rendering shall
+be "layered". Pre-rendering shall act like a transparent audio cache:
+Audio data is (redundantly) stored, wasting memory in order to save CPU.
+
+<P>
+That is: Each track owns one or more wave-recordings of the length of
+the song. If the user calls "pre-render" on a track, then this track
+is played quasi-solo (see below), and the raw audio data is recorded
+and stored in the "layer 0" wave recording. If the user has any effects
+set up to be applied, then each effect is applied on a different layer
+(creating layer 1, layer 2 etc).
+
+<P>
+This means, that also MIDI and drum tracks can have effects (which
+usually only operate on audio, but we HAVE audio data because of this
+prerendering).
+
+<P>
+Furthermore, MusE by default does not send MIDI events to the synthesizers
+but instead just plays back the last layer of the prerecording (for
+MIDI tracks), or does not pipe the audio data through the whole plugin
+chain (causing cpu usage), but instead just plays back the last layer.
+The hearable result shall be the same.
+
+<P>
+Once the user changes any parameter (automation data or plugins for
+wave tracks, MIDI events or effect plugin stuff for MIDI tracks),
+then MusE shall generate the sound for this particular track in the
+"old" way (send MIDI data to synthes, or pipe audio data through plugins).
+(So that the user will not even notice that MusE actually pre-renderered
+stuff.) Either MusE automatically records this while playback (if possible)
+or prompts the user to accordingly set up his cabling and then record
+it. Or (temporarily) disables prerecording for this track, falling back
+to the plain old way of generating sound.
+
+<P>
+<SPAN CLASS="textit">Quasi-solo</SPAN> means: For wave tracks, just solo the track. For MIDI
+tracks, mute all tracks which are not on the same synth (channel?),
+and mute all <SPAN CLASS="textit">note</SPAN> events which are not on the quasi-soloed track.
+This causes MusE to still play any controller events from different
+tracks, because they might have effects on the quasi-soloed track. (You
+can have notes on channel 1 on one track and controller stuff on channel
+1 on another track; then you would need quasi-solo to get proper results.)
+
+<P>
+
+<H2><A NAME="SECTION00422000000000000000">
+Use cases</A>
+</H2>
+
+<H4><A NAME="SECTION00422010000000000000">
+Saving CPU</A>
+</H4>
+On slow systems, this is neccessary for songs with lots of, or demanding
+(or both) soft synthes / plugins. Even if the synth or plugin is so
+demanding that your system is not able to produce sound in real-time,
+then with this feature you'll be able to use the synth (this will make
+editing pretty laggish, because for a change you need to re-render at
+least a part before you can listen to it, but better than being unable
+to use the synth at all!)
+
+<P>
+
+<H4><A NAME="SECTION00422020000000000000">
+Exporting as audio project</A>
+</H4>
+Using pre-rendering on all tracks, you easily can export your project
+as multi-track audio file (for use with Ardour or similar DAWs).
+Just take the last layer of each track, and write the raw audio data
+into the file, and you're done. (Maybe we are even able to write down
+the raw-raw layer0 audio data plus information about used plugins and
+settings etc..?)
+
+<P>
+
+<H4><A NAME="SECTION00422030000000000000">
+Mobile audio workstations</A>
+</H4>
+You might want to work a bit on your audio projects on your notebook
+while you're not at home, not having access to your hardware synthesizers.
+Using this feature, you could have pre-recorded the stuff in your studio
+before, and now can at least fiddle around with the non-hw-synth-dependent
+parts of your song, while still having your <SPAN CLASS="textit">full</SPAN> song with you.
+
+<P>
+
+<H4><A NAME="SECTION00422040000000000000">
+Applying effects on MIDI tracks</A>
+</H4>
+If you have many physical audio inputs, you might already be able to
+apply effect chains on MIDI tracks, by wiring the synthes' audio
+outputs to your soundcard's inputs, and applying the effects on
+dedicated input tracks you have to create. This requires you to have
+expensive hardware, and is pretty complicated, because you need one
+additional track per MIDI synth.
+
+<P>
+This feature allows you to apply effects on single MIDI tracks, and not
+only on full MIDI synthes, and doesn't require you to be have that
+many physical audio inputs (you need to manually replug your synthes,
+however).
+
+<P>
+
+<H2><A NAME="SECTION00423000000000000000">
+Possible scenarios</A>
+</H2>
+
+<H4><A NAME="SECTION00423010000000000000">
+Setting it up</A>
+</H4>
+Create a wave track, MusE will allow you to set or unset prerendering
+for every plugin in the plugin rack (recording the actual track is
+useless because it would be a plain copy).
+Create a MIDI track, MusE will ask you on which physical audio input
+your synth is connected. Setting up multiple synthes on one physical
+audio in is allowed, see below.
+
+<P>
+
+<H4><A NAME="SECTION00423020000000000000">
+Pre-rendering stuff</A>
+</H4>
+When the user presses the "pre-render" button, all tracks which have
+been changed since their last pre-rendering will be re-rendered.
+If you have multiple hardware synthes set up as they were connected
+to one physical audio input port, MusE will prompt you to first plug
+the proper cable in.
+
+<P>
+
+<H4><A NAME="SECTION00423030000000000000">
+Making changes</A>
+</H4>
+Change a note in a MIDI part, move or delete a part or change automation
+parameters. MusE will temporarily disable the pre-rendered information
+and instead generate the sound via sending out MIDI events, piping stuff
+through effect chains or similar. If you play back the whole song, or
+if you manually trigger a re-rendering of a track via the context menu,
+MusE will play back the stuff, record it again and re-enable the
+pre-rendered information.
+
+<P>
+
+<H2><A NAME="SECTION00424000000000000000">
+Extensions</A>
+</H2>
+
+<H4><A NAME="SECTION00424010000000000000">
+Automatic discovery of physical audio connections</A>
+</H4>
+The user plugs all (or only some) synthes' audio outs into the available
+audio inputs, then runs automatic discovery. This will send MIDI events
+to each synthesizer, and look on which audio in there's activity. Then
+it will assume that the synthesizer is connected to that particular
+audio in. Audio ins which show activity before any MIDI events were
+sent are not considered, as they're probably connected to microphones
+or other noise-generating non-synthes.
+
+<P>
+
+<H4><A NAME="SECTION00424020000000000000">
+Audio export</A>
+</H4>
+As described in the Use cases, MusE can allow you to export your song
+in some multitrack audio format.
+
+<P>
+
+<H4><A NAME="SECTION00424030000000000000">
+Cheap/Faked changes</A>
+</H4>
+For expensive or unavailable synthes, changing the Volume midi controller,
+the Pan controller or similar "easy" controllers will not trigger a
+complete re-rendering, but instead "fake" the change, by changing
+the volume data directly on the recorded wave. This might require some
+learning and might even get pretty complicated.
+
+<P>
+
+<H4><A NAME="SECTION00424040000000000000">
+Intelligent re-recording</A>
+</H4>
+For tiny changes, MusE shall only re-render the relevant part. If you
+change some MIDI notes, then begin re-recording shortly before the
+changes, and end re-recording as soon as the recorded stuff doesn't
+differ to much from the stuff coming from the synth. Then properly
+blend the old recording with the updated part.
+
+<P>
+
+<DIV CLASS="navigation"><HR>
+<!--Navigation Panel-->
+<A NAME="tex2html207"
+ HREF="node11.html">
+<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
+ SRC="/usr/share/latex2html/icons/next.png"></A>
+<A NAME="tex2html203"
+ HREF="node8.html">
+<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
+ SRC="/usr/share/latex2html/icons/up.png"></A>
+<A NAME="tex2html197"
+ HREF="node9.html">
+<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
+ SRC="/usr/share/latex2html/icons/prev.png"></A>
+<A NAME="tex2html205"
+ HREF="node1.html">
+<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
+ SRC="/usr/share/latex2html/icons/contents.png"></A>
+<BR>
+<B> Next:</B> <A NAME="tex2html208"
+ HREF="node11.html">Slotted editors</A>
+<B> Up:</B> <A NAME="tex2html204"
+ HREF="node8.html">Feature requests</A>
+<B> Previous:</B> <A NAME="tex2html198"
+ HREF="node9.html">Per-Part automation and more</A>
+ &nbsp; <B> <A NAME="tex2html206"
+ HREF="node1.html">Contents</A></B> </DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>