From 403d734c4564e560a85e329fccaf93700b4c1794 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Tue, 8 Nov 2016 19:02:24 +0100 Subject: [PATCH] Start the audio node. --- audio.rst | 81 ++++++++++++++++++++++++++++++++++++++++- images/audio-strip.png | Bin 0 -> 16800 bytes 2 files changed, 79 insertions(+), 2 deletions(-) create mode 100644 images/audio-strip.png diff --git a/audio.rst b/audio.rst index 050f8aa..2aedd36 100644 --- a/audio.rst +++ b/audio.rst @@ -1,2 +1,79 @@ -Audio (not written yet) -======================= +Audio +===== + +Audio is the most important part of video. It is also the most +neglected part in most amateur productions; it is easy to care +about full-HD productions but never remember to give the speaker +a microphone. Your stream can live with blurry or murky pictures, +but it cannot live with people not hearing what's being said. + +Nageru aims to give the operator meaningful, useful controls for +processing and mixing audio, with a focus on voice. There are two +modes for audio processing, namely *simple* and *multichannel*; +they are selectable from the audio menu. + +Be aware that a mix that sounds good on a PA system will not +necessarily sound good on a stream; PA systems often have rather +different audio characteristics than a set of home speakers or +headphones, and there will also frequently be other sounds in the +room that remove some of the typical “dryness”. However, for simple +use, reusing such a mix isn't the worst choice you can make. + + +Simple mode +----------- + +**Simple** audio mode is the default, and was the only mode available +up until Nageru 1.4.0. Despite its name, it contains a powerful +audio processing chain; however, in many cases, you won't need to +understand or twiddle any of the knobs availale. + +Simple mode allows input from only a single source, and that source +has to be one of the capture cards. (You choose which one by right-clicking +on its channel and selecting it as audio source.) The two typical +cases where this is useful are: + + * When you simply take in audio from one of the cameras, + possibly by way of external microphone, or + * When you have an external mixer and can embed its output + in one of the video inputs. + +If you want more than one audio source at a time, or if you want +to use ALSA inputs, you will need to use multichannel mode; it is +more complicated, but it is a strict superset of what the simple mode +can do. (In fact, simple mode constructs a multichannel setup +behind-the-scenes and then runs the multichannel audio code.) + + +The audio strip +--------------- + +.. image:: images/basic-ui.png + +The audio strip contains the processing chain for the audio from +start to end. Note that by default, everything is enabled; +if you have a premade audio mix that you are confident that you +want 1:1 into the stream, you can start Nageru with the “--flat-audio” +flag, that instead starts with everything disabled. + +The first step in the pipeline is a **lo-cut** (or equivalently, +highpass) filter. The exact cutoff frequency is a bit a matter +of taste (and also depends on the speaker), but the main point +is that it gets rid of low-frequency hum and a lot of the background +noise that is not related to the speaker's voice. (If you were +producing music, you'd probably want it there to make room for +music *under* it, but the you'd want it higher than the default 120 Hz.) + +(TODO: write more) + + +Audio meters +------------ + + +Multichannel mode +----------------- + + +MIDI control +------------ diff --git a/images/audio-strip.png b/images/audio-strip.png new file mode 100644 index 0000000000000000000000000000000000000000..1dcf52592c9bea107a66de5709d11cc4ebbc4643 GIT binary patch literal 16800 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 literal 0 HcmV?d00001 -- 2.39.2