Author: | Winfried Ritsch |
---|---|
Contact: | ritsch _at_ algo.mur.at, ritsch _at_ iem.at |
Copyright: | winfried ritsch - IEM / algorythmics 2012+ |
Version: | 1.0.1 |
The Mixer module provides functionality for building individual mixer consoles from simple dac out control to complex spatialization mixers within Pd. It is one of the base modules needed for other acre modules.
It can be used for programming a flexible mixer interface with audio input processing and also live amplification, including filter, dynamic effects, buses and including a monitoring section.
Extension are done with additional modules, like the Ambisonics mixer module.
Within this library basic audio mixer functionality is provided, including the "traditional" master section with DSP control, out buses and sub-channels, channel-strips with some more specialized functions for inputs for pickups or others.
The mixer module now combines the out, in, fx sections of older implementations in one module. Also some helper functions are included to be used by other modules, especially base functions for fader and GUI's to be included in other modules of ACRE.
Most functions are documented and explained in their patch.
The master sections also provides DSP control functionality for the patch, like turning dsp on/off and showing CPU usage. Out functions are for collecting signals and prepare the signal for output mostly to speakers including crossover and equalization solution for multi-bus systems.
A parallel monitoring section is included for debugging the signal path. Group of similar Functions are separated in sub-folders, which will part of the object name, so they must not be declared as search paths, since same names are used in different folders.
Since new version, the prefix of id names are mostly free, except for the master section, which begins with "/master/<id>" and global variables for the mixer like "/mxr/fadetime" or signals /mo/mono~.
Signal names should end with "~".
A [mxr/master/master~]
is needed for out channels.
Also for DSP functionality and global parameter like fadetime,... (see examples for more details) are included.
[mxr/out/sub~ <out id> <sub id>]
are optional extensions for each out channel [mxr/out/ch~ <out id>]
to implement simple crossovers and will need a [mxr/sub/master~ <sub id>]
(prefix mxr/
is omitted only in the documentation in favour for shorter names)
- master/fade~ master/ctl master/ds master/gain~
- Master controls for Master volumes, mutes, DSP and global settings like fadetime, ...
- master/stereo~ master/stereo_ctl master/stereo_ds
- a sample stereo configuration without subs
- out/ch~ out/ctl out/ds
out channel which sums up the signal with $catch~ <out-id>~
provides: volume and individual mute. needs: master~ for master volume - out/sub~ out/sub_ctl out/sub_ds
As an extensions, it adds sub-woofer functionality to out channels. Each instance adds a tap of one out channel to one sub.
provides: vol, high-pass for out channel needs: matching sub/master~ and out/ch~ - sub/master~ sub/ctl sub/ds
a sub-woofer management system for out buses and a master-section
provides: sub-volumes and filters needs: master section - mo/master~ mo/ctl mo/prepost~ mo/send~
audio signal monitoring with sends and a master monitor section
provides: monitoring functionality needs:
in functions simplifies channel strip building, with small units.
- A channel in strip consists of:
- in~ which represents the adc~ with pregain and DC-removal and phase inversion
- limiter~
- EQ filter section with hi- and low-cut and parametric EQ
- VU and monitoring
A bus collects the in channels strip and let them feed further processing.
Distribution of ins with panorama functions or other spatial encoding can be added in later versions, but complex spatialization is outsourced in separate modules.
- in/ch~ in/ch_ctl in/ch_ds
a default channel strip which puts most of functionality of the lib.
provides: in, limiter, eq, fader in an channel strip needs: master section - in/bus~ in/bus_ctl in/bus_ds in/buslive~ in/buslive_ctl in/buslive_ds
collects in thrown from anywhere and distributes the signal.
provides: Bus channels and distribution needs: master section
General functions used in for signal path
- fader/db fader/rms fader/db2 fader/rms2
unlike linear dB scaling (dbtorms), they behave more like faders on a mixer.
provides: fader curve conversions - fader/fader~ fader/gain~ fader/volvu_ctl fader/ctl fader/vol_ctlfader/vu_ctl
fader using fader/db mapping.
provides: fader~ functionality needs: conversion functions
- test/tones_ctl test/tones~
a test-tones generator with pulse function
provides: a testtone signal generator with GUI - prvu/send~ prvu/ctl
used for all VU outs to be able to reset them, enhance in future ...
provides: conversion of signal to vu-meters with additional reset needs:
- eq/dsp~ eq/ctl eq/ds eq/hilo, eq/para eq/para~ eq/para_ds eq/hilo~ eq/hilo_ds
a filter section with high low cut filter and parametric eq, (original implemented for CUBEMixer by thomas musil)
provides: a low-cut and high-cut filter, parametric filter, low and high shelf needs: - limiter/dsp~ limiter/ctl limiter/ds
a limiter in a channel strip
provides: a simple limiter to prevent digital clipping (CRACKLE) needs:
Example patches also for testing the module.
- example.pd example_stereo.pd
- test and example patch of the mixer library
will be removed or revised (and some moved to other modules).
- test/recorder~.pd
- a session driven audio recorder
- mxr now is a merge of previous in, out and fx modules
- spatial modules will be added within this mixer.
for an introduction see ../docu/acre_intro.rst , for more documentation explore docu .