3 years agoWrite 1.4.0 changelog. multichannel_audio
Steinar H. Gunderson [Sat, 22 Oct 2016 20:29:16 +0000 (22:29 +0200)]
Write 1.4.0 changelog.

3 years agoFix a missing break in a switch.
Steinar H. Gunderson [Tue, 25 Oct 2016 16:42:54 +0000 (18:42 +0200)]
Fix a missing break in a switch.

Found by Coverity Scan (among tons of false positives).

3 years agoCheck the return value of writing to the eventfd.
Steinar H. Gunderson [Tue, 25 Oct 2016 07:41:55 +0000 (09:41 +0200)]
Check the return value of writing to the eventfd.

3 years agoFix some missing targets in clean.
Steinar H. Gunderson [Tue, 25 Oct 2016 07:40:23 +0000 (09:40 +0200)]
Fix some missing targets in clean.

3 years agoAdd some missing non-implicit dependencies to the Makefile.
Steinar H. Gunderson [Tue, 25 Oct 2016 07:33:57 +0000 (09:33 +0200)]
Add some missing non-implicit dependencies to the Makefile.

3 years agoVarious Makefile tweaks (mostly related to cleaning moc files).
Steinar H. Gunderson [Sat, 22 Oct 2016 21:55:26 +0000 (23:55 +0200)]
Various Makefile tweaks (mostly related to cleaning moc files).

3 years agoClean .pb.{cc,h} files on make clean.
Steinar H. Gunderson [Sat, 22 Oct 2016 21:47:43 +0000 (23:47 +0200)]
Clean .pb.{cc,h} files on make clean.

3 years agoFinal touch before release: Remove the MIDI controller debug printfs.
Steinar H. Gunderson [Thu, 20 Oct 2016 22:10:47 +0000 (00:10 +0200)]
Final touch before release: Remove the MIDI controller debug printfs.

3 years agoMake the compression meter nonlinear.
Steinar H. Gunderson [Sat, 22 Oct 2016 20:27:28 +0000 (22:27 +0200)]
Make the compression meter nonlinear.

This necessitated splitting it out into its own class, which also
took some complexity out of VUMeter.

3 years agoSplit out the piecewise linear interpolation code into its own class.
Steinar H. Gunderson [Sat, 22 Oct 2016 18:51:14 +0000 (20:51 +0200)]
Split out the piecewise linear interpolation code into its own class.

3 years agoFix some UI work being done on the non-UI thread.
Steinar H. Gunderson [Sat, 22 Oct 2016 13:45:58 +0000 (15:45 +0200)]
Fix some UI work being done on the non-UI thread.

3 years agoAllow using control 0.
Steinar H. Gunderson [Sat, 22 Oct 2016 12:53:51 +0000 (14:53 +0200)]
Allow using control 0.

Evidently, there are devices that use the entire range,
so the special value has to move to -1.

3 years agoDon't try to set up MIDI mapper highlights before the UI exists.
Steinar H. Gunderson [Sat, 22 Oct 2016 12:46:13 +0000 (14:46 +0200)]
Don't try to set up MIDI mapper highlights before the UI exists.

3 years agoChange the auto-gain stopping criterion to be on corrected LU.
Steinar H. Gunderson [Sat, 22 Oct 2016 11:36:26 +0000 (13:36 +0200)]
Change the auto-gain stopping criterion to be on corrected LU.

This might be less safe (there might be some feedback effects involved),
but the behavior of working on _uncorrected_ LU was simply too unintuitive;
it was hard to understand why the setting wasn't moving.

3 years agoGive the makeup gain control a bit more useful range (+/- 15 dB instead of 30). Espec...
Steinar H. Gunderson [Sat, 22 Oct 2016 10:12:34 +0000 (12:12 +0200)]
Give the makeup gain control a bit more useful range (+/- 15 dB instead of 30). Especially relevant with the physical controls.

3 years agoRe-run include-what-you-use.
Steinar H. Gunderson [Thu, 20 Oct 2016 23:25:52 +0000 (01:25 +0200)]
Re-run include-what-you-use.

Insignificant compile-time savings this time, but still nice
to have it cleaned up.

3 years agoUpdate the README for the new sound features.
Steinar H. Gunderson [Thu, 20 Oct 2016 22:09:51 +0000 (00:09 +0200)]
Update the README for the new sound features.

3 years agoAdd a sample MIDI mapping for Akai MIDImix.
Steinar H. Gunderson [Sun, 9 Oct 2016 10:29:07 +0000 (12:29 +0200)]
Add a sample MIDI mapping for Akai MIDImix.

This happens to be the controller I own myself.

3 years agoAdd mute buttons.
Steinar H. Gunderson [Thu, 20 Oct 2016 21:44:12 +0000 (23:44 +0200)]
Add mute buttons.

Actually this is mostly because I like being able to press the
mute button on my MIDI controller and have it light up :-)
Internally, it's implemented by forcing the volume to zero
(or sometimes -90 dB), which means we get all the nice
fading properties and such.

In the process, we now declare -90 dB to be truly zero, and don't
bother adding it to the bus.

3 years agoFix an issue where silent buses were only partially cleared.
Steinar H. Gunderson [Wed, 19 Oct 2016 21:58:29 +0000 (23:58 +0200)]
Fix an issue where silent buses were only partially cleared.

3 years agoAdd scroll bars to the audio strips if needed.
Steinar H. Gunderson [Wed, 19 Oct 2016 21:55:09 +0000 (23:55 +0200)]
Add scroll bars to the audio strips if needed.

3 years agoDon't highlight any controllers if no MIDI controller is attached.
Steinar H. Gunderson [Wed, 19 Oct 2016 20:31:05 +0000 (22:31 +0200)]
Don't highlight any controllers if no MIDI controller is attached.

Previously, we'd highlight unconditionally as long as we had a
MIDI mapping loaded.

3 years agoMake the master peak display clickable, like all the other peak labels.
Steinar H. Gunderson [Wed, 19 Oct 2016 19:52:55 +0000 (21:52 +0200)]
Make the master peak display clickable, like all the other peak labels.

3 years agoAdd support for feedback lights (LEDs) on MIDI controllers.
Steinar H. Gunderson [Wed, 19 Oct 2016 19:41:39 +0000 (21:41 +0200)]
Add support for feedback lights (LEDs) on MIDI controllers.

3 years agoAdd the two final missing MIDI mappings, namely buttons for toggling limiter and...
Steinar H. Gunderson [Mon, 17 Oct 2016 22:54:01 +0000 (00:54 +0200)]
Add the two final missing MIDI mappings, namely buttons for toggling limiter and auto makeup gain.

3 years agoHighlight which controllers have currently active MIDI mappings. Very useful with...
Steinar H. Gunderson [Mon, 17 Oct 2016 21:21:47 +0000 (23:21 +0200)]
Highlight which controllers have currently active MIDI mappings. Very useful with multiple banks.

3 years agoWhen having guessed a bus, focus on the next one.
Steinar H. Gunderson [Mon, 17 Oct 2016 17:07:46 +0000 (19:07 +0200)]
When having guessed a bus, focus on the next one.

3 years agoMake sure MIDI mapping extrapolation doesn't give out-of-range values.
Steinar H. Gunderson [Mon, 17 Oct 2016 16:59:46 +0000 (18:59 +0200)]
Make sure MIDI mapping extrapolation doesn't give out-of-range values.

3 years agoSupport group-local extrapolation in the MIDI mapping editor.
Steinar H. Gunderson [Mon, 17 Oct 2016 16:48:45 +0000 (18:48 +0200)]
Support group-local extrapolation in the MIDI mapping editor.

3 years agoMake the guess button work.
Steinar H. Gunderson [Sun, 16 Oct 2016 21:10:32 +0000 (23:10 +0200)]
Make the guess button work.

Right now, it only works across the entire bus; next up will be
group-local extrapolation for the cases where whole-bus extrapolationd
doesn't work.

3 years agoImplement auto-training controllers in the MIDI input mapping dialog.
Steinar H. Gunderson [Sun, 16 Oct 2016 13:46:53 +0000 (15:46 +0200)]
Implement auto-training controllers in the MIDI input mapping dialog.

3 years agoMake the save and load buttons in the MIDI mapping edit dialog work.
Steinar H. Gunderson [Sun, 16 Oct 2016 12:32:37 +0000 (14:32 +0200)]
Make the save and load buttons in the MIDI mapping edit dialog work.

3 years agoAdd an editor for the MIDI mappings.
Steinar H. Gunderson [Sat, 15 Oct 2016 22:45:29 +0000 (00:45 +0200)]
Add an editor for the MIDI mappings.

Some of the buttons (save, load, guess) are inert, and it doesn't
listen to MIDI events yet.

3 years agoListen on all MIDI ports (including hotplug).
Steinar H. Gunderson [Sun, 9 Oct 2016 13:01:57 +0000 (15:01 +0200)]
Listen on all MIDI ports (including hotplug).

It's unlikely that there will be lots of real MIDI note data going on
in the system, so just slurping up all of it seems reasonable
(it's certainly the most user-friendly).

3 years agoRewrite the ALSA sequencer input loop.
Steinar H. Gunderson [Sun, 9 Oct 2016 11:59:00 +0000 (13:59 +0200)]
Rewrite the ALSA sequencer input loop.

Seemingly we can get multiple events in one poll, and we can _not_
just go back to polling again (the poll will hang). I consider this
an ALSA bug, but it's easy to work around, the same way aseqdump
does; just set the sequencer to nonblocking and loop over it
until we get EAGAIN.

3 years agoAdd support for controlling the audio using a MIDI controller.
Steinar H. Gunderson [Sun, 9 Oct 2016 10:19:23 +0000 (12:19 +0200)]
Add support for controlling the audio using a MIDI controller.

This allows the user to control the audio using a dedicated controller,
as opposed to the mouse, which generally is a more direct and intuitive
user interface.

This is rather raw at the moment (e.g., hardcoded MIDI address, no real UI
indications of bank switches, and no UI for editing the mapping), but the
required basics are generally in place.

3 years agoShut down the ALSA inotify thread using an eventfd instead of busypolling every 100 ms.
Steinar H. Gunderson [Sat, 8 Oct 2016 17:05:11 +0000 (19:05 +0200)]
Shut down the ALSA inotify thread using an eventfd instead of busypolling every 100 ms.

3 years agoMake NonlinearFader work with fixed 0..1000 range, not 0..height().
Steinar H. Gunderson [Thu, 6 Oct 2016 18:14:30 +0000 (20:14 +0200)]
Make NonlinearFader work with fixed 0..1000 range, not 0..height().

In particular, this fixes an issue where the range could be wrong
just after the widget is created, but the page it is not is not shown
yet (so there hasn't been a resize event yet).

Also makes for more consistent scroll wheel and arrow key behavior,
as it is not longer dependent on widget size.

3 years agoInterpolate gain changes smoothly, reusing the gain fading code from the EQ.
Steinar H. Gunderson [Thu, 29 Sep 2016 18:34:34 +0000 (20:34 +0200)]
Interpolate gain changes smoothly, reusing the gain fading code from the EQ.

3 years agoReenable simple audio.
Steinar H. Gunderson [Wed, 28 Sep 2016 18:08:30 +0000 (20:08 +0200)]
Reenable simple audio.

Now that most of the multichannel work has been done, we can put the
wraps back on and reenable the simple audio model from 1.3.x, which is
less flexible but also easier for the casual user. Users can choose
between the old model (simple) and the new (multichannel) through a
UI toggle, or with a command-line flag; they map to the same processing

3 years agoMake it possible to use PgUp/PgDown to switch audio pages.
Steinar H. Gunderson [Fri, 23 Sep 2016 19:44:02 +0000 (21:44 +0200)]
Make it possible to use PgUp/PgDown to switch audio pages.

3 years agoDo not use the timing of dropped frames as part of the video master clock.
Steinar H. Gunderson [Fri, 23 Sep 2016 17:36:51 +0000 (19:36 +0200)]
Do not use the timing of dropped frames as part of the video master clock.

Hopefully improves resampling somewhat when we are dropping frames;
it is tricky to deal with such an uneven master clock, though.

3 years agoInterpolate EQ changes smoothly, just like volume changes.
Steinar H. Gunderson [Wed, 21 Sep 2016 22:57:40 +0000 (00:57 +0200)]
Interpolate EQ changes smoothly, just like volume changes.

3 years agoShut down the ALSA probe retry threads cleanly on exit.
Steinar H. Gunderson [Wed, 21 Sep 2016 18:00:09 +0000 (20:00 +0200)]
Shut down the ALSA probe retry threads cleanly on exit.

3 years agoShut down the ALSA inotify thread cleanly on exit.
Steinar H. Gunderson [Wed, 21 Sep 2016 17:49:29 +0000 (19:49 +0200)]
Shut down the ALSA inotify thread cleanly on exit.

3 years agoMove ALSAPool into its own file; it is pretty large now.
Steinar H. Gunderson [Wed, 21 Sep 2016 17:19:10 +0000 (19:19 +0200)]
Move ALSAPool into its own file; it is pretty large now.

3 years agoLet settings follow buses when editing the mapping.
Steinar H. Gunderson [Wed, 21 Sep 2016 17:00:21 +0000 (19:00 +0200)]
Let settings follow buses when editing the mapping.

If a user wants to add a new bus (or delete one), we shouldn't
delete all their settings. Track them as a nicely bound-together
hidden state when editing. (This also lays the ground for
serialization of the entire mixer state in the future,
should we want to do that.)

3 years agoActually set the fader positions when making the views for each audio bus.
Steinar H. Gunderson [Tue, 20 Sep 2016 21:50:34 +0000 (23:50 +0200)]
Actually set the fader positions when making the views for each audio bus.

3 years agoMake it possible to load an audio input mapping on start, through a command-line...
Steinar H. Gunderson [Sat, 17 Sep 2016 21:41:17 +0000 (23:41 +0200)]
Make it possible to load an audio input mapping on start, through a command-line flag.

3 years agoMake it possible to load/save input mappings.
Steinar H. Gunderson [Fri, 16 Sep 2016 18:20:45 +0000 (20:20 +0200)]
Make it possible to load/save input mappings.

Settings these up can be a bit of a hassle if you have a lot of them,
so we allow them to be saved to disk and then loaded back (complete
with machinery for fuzzy-matching devices if the state has changed,
e.g. cards moved around).

This introduces a dependency on protocol buffers, because it's a
convenient way to store simple data to disk (including forward
compatibility). We choose to use the text format for the user's
convenience; we don't need the speed or compactness of the binary format.

3 years agoMove InputMapping and friends into its own header file.
Steinar H. Gunderson [Sat, 17 Sep 2016 20:26:47 +0000 (22:26 +0200)]
Move InputMapping and friends into its own header file.

3 years agoRename “name” to “display name”.
Steinar H. Gunderson [Thu, 15 Sep 2016 17:50:36 +0000 (19:50 +0200)]
Rename “name” to “display name”.

This makes for less confusion when AudioDevice's “name” doesn't
match what's in ALSA's “name” (it is composed of name+info).

3 years agoMake sure AudioDevice::name is set for ALSA cards, not just video capture cards.
Steinar H. Gunderson [Sun, 11 Sep 2016 23:09:04 +0000 (01:09 +0200)]
Make sure AudioDevice::name is set for ALSA cards, not just video capture cards.

3 years agoUpdate to a bmusb version where fake cards output 8-channel audio.
Steinar H. Gunderson [Sun, 11 Sep 2016 16:51:05 +0000 (18:51 +0200)]
Update to a bmusb version where fake cards output 8-channel audio.

3 years agoUpdate the UI with state changes and new ALSA cards as they come in.
Steinar H. Gunderson [Sun, 11 Sep 2016 15:34:08 +0000 (17:34 +0200)]
Update the UI with state changes and new ALSA cards as they come in.

3 years agoUnplug ALSA cards as soon as we get the inotify message.
Steinar H. Gunderson [Sun, 11 Sep 2016 15:26:13 +0000 (17:26 +0200)]
Unplug ALSA cards as soon as we get the inotify message.

If not, devices not in use would not be properly removed before
someone tried to remove them.

3 years agoIf a dead device comes back, put it into the right slot.
Steinar H. Gunderson [Sat, 10 Sep 2016 14:42:46 +0000 (16:42 +0200)]
If a dead device comes back, put it into the right slot.

This fulfills one of the basic goals of hotplug, namely that a sound
card can disappear (ie., lost cable), be replugged and then safely
come back without any manual intervention.

3 years agoWhen we stop capturing from an ALSA card, close the PCM handle a bit sooner.
Steinar H. Gunderson [Sat, 10 Sep 2016 12:56:47 +0000 (14:56 +0200)]
When we stop capturing from an ALSA card, close the PCM handle a bit sooner.

3 years agoWhen an ALSA input goes away, replace it by silence.
Steinar H. Gunderson [Sat, 10 Sep 2016 12:06:54 +0000 (14:06 +0200)]
When an ALSA input goes away, replace it by silence.

Silences the warning spew from the resampler that no data is coming.

3 years agoMake ALSA initialization errors fail-soft.
Steinar H. Gunderson [Sat, 10 Sep 2016 09:51:50 +0000 (11:51 +0200)]
Make ALSA initialization errors fail-soft.

Instead of exit(1) whenever something in ALSA initialization fails,
we now return false and try again after a second. (This means we could
potentially be doing init for a long time, so it is moved to the
capture thread.)

3 years agoSupport limited ALSA hotplug.
Steinar H. Gunderson [Thu, 8 Sep 2016 21:43:50 +0000 (23:43 +0200)]
Support limited ALSA hotplug.

We don't support removing cards yet (we still just exit on error),
and thus also not replacing dead cards with re-plugged ones.
We also don't communicate changed state to the UI yet, and retry
could still be improved.

3 years agoRefactor ALSA code in preparation for hotplug.
Steinar H. Gunderson [Thu, 8 Sep 2016 18:09:04 +0000 (20:09 +0200)]
Refactor ALSA code in preparation for hotplug.

In particular, all the inputs are not owned by a class ALSAPool,
which also takes over enumeration. There's a new state machine
(only in preparation, not actually used yet), and some policy
has been defined for what to do when cards go in and out.

3 years agoAdd a global variable for the audio mixer; it was getting too tedious.
Steinar H. Gunderson [Wed, 7 Sep 2016 20:55:21 +0000 (22:55 +0200)]
Add a global variable for the audio mixer; it was getting too tedious.

3 years agoUpdate the zita-reampler SSE2 patch.
Steinar H. Gunderson [Sun, 4 Sep 2016 23:09:17 +0000 (01:09 +0200)]
Update the zita-reampler SSE2 patch.

This version supports not only two channels, but mono, stereo or
multiples of four. (In time, we might reorganize so that
e.g. 11 channels are split into 8-, 2- and 1-channel resamplers.)

3 years agoSet a default locut cutoff, for the benchmark.
Steinar H. Gunderson [Sun, 4 Sep 2016 09:17:23 +0000 (11:17 +0200)]
Set a default locut cutoff, for the benchmark.

3 years agoFix an issue where cutoff would not be properly marked when setting new mappings.
Steinar H. Gunderson [Mon, 29 Aug 2016 18:26:16 +0000 (20:26 +0200)]
Fix an issue where cutoff would not be properly marked when setting new mappings.

3 years agoHook up the EQ controls and labels.
Steinar H. Gunderson [Mon, 29 Aug 2016 18:23:27 +0000 (20:23 +0200)]
Hook up the EQ controls and labels.

3 years agoImplement the EQ in AudioMixer. (No UI yet.)
Steinar H. Gunderson [Sun, 28 Aug 2016 22:55:31 +0000 (00:55 +0200)]
Implement the EQ in AudioMixer. (No UI yet.)

3 years agoAdd support for EQ filters to the Filter class.
Steinar H. Gunderson [Sun, 28 Aug 2016 22:29:25 +0000 (00:29 +0200)]
Add support for EQ filters to the Filter class.

3 years agoMake it possible to click the bus peak label to reset it.
Steinar H. Gunderson [Sun, 28 Aug 2016 21:47:52 +0000 (23:47 +0200)]
Make it possible to click the bus peak label to reset it.

3 years agoWhen the fader is moved, interpolate its volume over the next frame.
Steinar H. Gunderson [Sun, 28 Aug 2016 21:18:58 +0000 (23:18 +0200)]
When the fader is moved, interpolate its volume over the next frame.

Faders are among the things one should definitely be allowed to move
around during an actual mix without hearing clicking; the gain and threshold
is maybe somewhat less so, so I won't give it the same treatment, at least not
right now.

3 years agoShow historic peak of each bus under the peak meter.
Steinar H. Gunderson [Sun, 28 Aug 2016 20:32:01 +0000 (22:32 +0200)]
Show historic peak of each bus under the peak meter.

3 years agoReplace the R128 meters for each channel with a digital peak meter.
Steinar H. Gunderson [Sun, 28 Aug 2016 15:49:23 +0000 (17:49 +0200)]
Replace the R128 meters for each channel with a digital peak meter.

R128 is a superior way of measuring loudness, but for each bus, we care more
about getting the recording levels right (ie., that we don't peak) than loudness.
Since we do our mixing in float, unlike a typical digital mixer, it's not as
critical (at least assuming that the limiter is on and will save us later in
the mastering chain), but it's probably better to be consistent with convention

Thus, use a simple digital meter for each bus, even though we of course still
use R128 for the mastering section.

3 years agoSplit VUMeter into a left and right side, so one can (optionally) have stereo meters.
Steinar H. Gunderson [Sun, 28 Aug 2016 15:20:39 +0000 (17:20 +0200)]
Split VUMeter into a left and right side, so one can (optionally) have stereo meters.

3 years agoRemove an (easily-predictable) branch from the StereoCompressor inner loop.
Steinar H. Gunderson [Fri, 26 Aug 2016 19:20:39 +0000 (21:20 +0200)]
Remove an (easily-predictable) branch from the StereoCompressor inner loop.

3 years agoAdd a correctness test to the audio benchmark.
Steinar H. Gunderson [Fri, 26 Aug 2016 18:46:51 +0000 (20:46 +0200)]
Add a correctness test to the audio benchmark.

3 years agoAdd some low-volume 24-bit data to the benchmark, for variety.
Steinar H. Gunderson [Fri, 26 Aug 2016 18:23:35 +0000 (20:23 +0200)]
Add some low-volume 24-bit data to the benchmark, for variety.

3 years agoFix a small theoretical inefficiency; does not actually matter in practice, just...
Steinar H. Gunderson [Thu, 25 Aug 2016 07:37:36 +0000 (09:37 +0200)]
Fix a small theoretical inefficiency; does not actually matter in practice, just cleaner.

3 years agoSave another ~1% on the audio benchmark, by dealing with the std::deque more efficien...
Steinar H. Gunderson [Thu, 25 Aug 2016 07:33:57 +0000 (09:33 +0200)]
Save another ~1% on the audio benchmark, by dealing with the std::deque more efficiently. (Still some potential here.)

3 years agoTiny audio optimization (~1%) by making an SSE version of find_peak(); mostly to...
Steinar H. Gunderson [Wed, 24 Aug 2016 23:11:10 +0000 (01:11 +0200)]
Tiny audio optimization (~1%) by making an SSE version of find_peak(); mostly to see whether the benchmark can pick up stuff at all.

3 years agoAdd a benchmark for a simple audio chain; easier than profiling all of Nageru.
Steinar H. Gunderson [Wed, 24 Aug 2016 22:43:08 +0000 (00:43 +0200)]
Add a benchmark for a simple audio chain; easier than profiling all of Nageru.

3 years agoMake the compression meters work.
Steinar H. Gunderson [Tue, 23 Aug 2016 22:54:45 +0000 (00:54 +0200)]
Make the compression meters work.

It's possible that the range here needs to be nonlinear,
but we'll deal with that later; for now it's only 0..10 dB
on a linear scale.

This required VU meters that grow downwards, so add that.

3 years agoMake reference level of VUMeter and LRAMeter adjustable.
Steinar H. Gunderson [Tue, 23 Aug 2016 20:20:59 +0000 (22:20 +0200)]
Make reference level of VUMeter and LRAMeter adjustable.

3 years agoMake min/max level of VUMeter and LRAMeter adjustable.
Steinar H. Gunderson [Tue, 23 Aug 2016 20:18:46 +0000 (22:18 +0200)]
Make min/max level of VUMeter and LRAMeter adjustable.

3 years agoRemove obsolete comment.
Steinar H. Gunderson [Tue, 23 Aug 2016 20:11:46 +0000 (22:11 +0200)]
Remove obsolete comment.

3 years agoSmall refactoring in the audio level callback API.
Steinar H. Gunderson [Tue, 23 Aug 2016 19:16:57 +0000 (21:16 +0200)]
Small refactoring in the audio level callback API.

3 years agoMake it clearer that the cutoff knob affects the channel lo-cut filter.
Steinar H. Gunderson [Tue, 23 Aug 2016 16:31:35 +0000 (18:31 +0200)]
Make it clearer that the cutoff knob affects the channel lo-cut filter.

3 years agoMove the gain staging and compressors into each bus, and hook up the corresponding...
Steinar H. Gunderson [Mon, 22 Aug 2016 22:00:18 +0000 (00:00 +0200)]
Move the gain staging and compressors into each bus, and hook up the corresponding controls.

3 years agoMove the lo-cut into each bus.
Steinar H. Gunderson [Mon, 22 Aug 2016 19:36:55 +0000 (21:36 +0200)]
Move the lo-cut into each bus.

3 years agoMake the faders in the expanded audio view work.
Steinar H. Gunderson [Mon, 22 Aug 2016 18:49:26 +0000 (20:49 +0200)]
Make the faders in the expanded audio view work.

3 years agoCreate buses in the expanded view. (Still inert.)
Steinar H. Gunderson [Mon, 22 Aug 2016 16:28:32 +0000 (18:28 +0200)]
Create buses in the expanded view. (Still inert.)

3 years agoHook up the controls on the second (full mode) page.
Steinar H. Gunderson [Mon, 22 Aug 2016 16:05:20 +0000 (18:05 +0200)]
Hook up the controls on the second (full mode) page.

3 years agoAdd some pagination to the main window.
Steinar H. Gunderson [Sun, 21 Aug 2016 23:03:47 +0000 (01:03 +0200)]
Add some pagination to the main window.

This allows us to switch between compact and full audio layout.
The full audio layout is not really populated yet; there are only
some widgets (a subset of the compact ones), and they are not
hooked up.

3 years agoAdd a UI file for the expanded audio interface.
Steinar H. Gunderson [Mon, 15 Aug 2016 20:13:43 +0000 (22:13 +0200)]
Add a UI file for the expanded audio interface.

3 years agoAdd support for ALSA devices that have no channel maps.
Steinar H. Gunderson [Thu, 18 Aug 2016 23:12:08 +0000 (01:12 +0200)]
Add support for ALSA devices that have no channel maps.

In particular, my Focusrite Scarlett 18i6 presents no such map,
and thus, we'll need to get number of channels some other way.
(For good measure, it refuses to capture unless you ask for at least
14 of the 18 channels.)

3 years agoMake a non-linear fader for dB use. Not perfect yet, but will do.
Steinar H. Gunderson [Thu, 18 Aug 2016 21:35:42 +0000 (23:35 +0200)]
Make a non-linear fader for dB use. Not perfect yet, but will do.

3 years agoAsk for the right number of channels when creating an ALSA device.
Steinar H. Gunderson [Thu, 18 Aug 2016 17:03:08 +0000 (19:03 +0200)]
Ask for the right number of channels when creating an ALSA device.

3 years agoHook up the per-bus VU meters.
Steinar H. Gunderson [Sat, 13 Aug 2016 20:47:26 +0000 (22:47 +0200)]
Hook up the per-bus VU meters.

3 years agoMove the R128 and correlation measurements into AudioMixer.
Steinar H. Gunderson [Sat, 13 Aug 2016 17:22:07 +0000 (19:22 +0200)]
Move the R128 and correlation measurements into AudioMixer.

3 years agoFix a deadlock issue when shutting down ALSA cards.
Steinar H. Gunderson [Sat, 13 Aug 2016 14:29:18 +0000 (16:29 +0200)]
Fix a deadlock issue when shutting down ALSA cards.