-
The Mixer Routing Dialog determines how audio signals are processed and routed between input and output audio channels.
+
The Audio Channel Routing Dialog determines how audio signals are processed and routed between input and output audio channels.
-
Guitar effects processing occurs on the Main route only. Plugins in the main PiPedal window are
+
By default, guitar effects processing occurs on the Main route only. Plugins in the main PiPedal window are
applied before any insert plugins that have been added to the Main route. Main insert plugins are
applied globally, regardless of the selected preset or effects in the main PiPedal window. You might
want to add an EQ or reverb plugin here, to allow your presets to be globally adjusted to suit the room
in which you are currently performing.
-
Plugins in the main PiPedal window are not applied to the Aux route. The Aux route is intended to be
+
Plugins in the main PiPedal window are not applied to the Aux route by default. The Aux route is intended to be
used for
@@ -128,7 +128,13 @@ export default class ChannelRouterSettingsHelpDialog extends ResizeResponsiveCom
mixing it with the processed guitar signal, or passing it out on a dedicated output channel.
-
although you may find other creative uses for the Aux channel as well.
+
However, if "Main Out L" or "Main Out R" is selected as an Aux input channel, then the Aux route will receive the
+ output of the processed Main route. Main route insrts are not applied
+ to the Aux route input signal, so you can have an independent set of inserts applied to the Main and Aux output signals.
+ An example of how one might use this feature: sending the output of the Main route to
+ a soundboard or PA system without reverb or EQ applied; and then applying reverb and EQ only to the Aux route whose
+ outputs will be used as inputs to a stage monitor or headphones for the performer.
+
If the Main and Aux routes share output channels, then the results of the Main and Output signals are
summed together on those output channels. For stereo mixing, assign the same left and right output
channels to both the Main and Aux routes. If you have a 2x4 or 4x4 audio interface with two guitar input channels
@@ -142,7 +148,8 @@ export default class ChannelRouterSettingsHelpDialog extends ResizeResponsiveCom
TooB Send plugin will be sent to the external hardware effect, and the output the external hardware
effect will be returned to PiPedal at the output of the TooB Send plugin. PiPedal currently supports
only one Send plugin instance per preset; and the Send and Return channels may not be shared with the Main
- or Aux routes.
+ or Aux routes. Note that you may only use one instance of the TooB Send plugin per preset. The TooB Send plugin
+ may not be used as a Main or Aux insert effect.
diff --git a/vite/src/pipedal/JackServerSettings.tsx b/vite/src/pipedal/JackServerSettings.tsx
index ab1e1e7..3ba2c0c 100644
--- a/vite/src/pipedal/JackServerSettings.tsx
+++ b/vite/src/pipedal/JackServerSettings.tsx
@@ -27,6 +27,8 @@ export default class JackServerSettings {
this.rebootRequired = input.rebootRequired;
this.alsaInputDevice = input.alsaInputDevice ?? "";
this.alsaOutputDevice = input.alsaOutputDevice ?? "";
+ this.alsaInputDeviceName = input.alsaInputDeviceName ?? this.alsaInputDevice;
+ this.alsaOutputDeviceName = input.alsaOutputDeviceName ?? this.alsaOutputDevice;
this.sampleRate = input.sampleRate;
this.bufferSize = input.bufferSize;
this.numberOfBuffers = input.numberOfBuffers;
@@ -50,6 +52,8 @@ export default class JackServerSettings {
isJackAudio = false;
alsaInputDevice: string = "";
alsaOutputDevice: string = "";
+ alsaInputDeviceName: string = "";
+ alsaOutputDeviceName: string = "";
sampleRate = 48000;
bufferSize = 64;
numberOfBuffers = 3;
@@ -74,19 +78,12 @@ export default class JackServerSettings {
return "Not selected";
}
- let inDev = this.alsaInputDevice.startsWith("hw:")
- ? this.alsaInputDevice.substring(3)
- : this.alsaInputDevice;
- let outDev = this.alsaOutputDevice.startsWith("hw:")
- ? this.alsaOutputDevice.substring(3)
- : this.alsaOutputDevice;
-
let device: string;
- if (inDev === outDev) {
- device = inDev;
-
- } else {
- device = inDev + "-> " + outDev;
+ if (this.alsaInputDevice === this.alsaOutputDevice) {
+ device = this.alsaInputDeviceName;;
+ }
+ else {
+ device = this.alsaInputDeviceName + " -> " + this.alsaOutputDeviceName;
}
return `${device} ${this.sampleRate} ${this.bufferSize}x${this.numberOfBuffers}`;
}
diff --git a/vite/src/pipedal/JackServerSettingsDialog.tsx b/vite/src/pipedal/JackServerSettingsDialog.tsx
index 3bb5e71..6bd0cda 100644
--- a/vite/src/pipedal/JackServerSettingsDialog.tsx
+++ b/vite/src/pipedal/JackServerSettingsDialog.tsx
@@ -580,10 +580,20 @@ const JackServerSettingsDialog = withStyles(
this.setState({ suppressDeviceWarning: checked });
localStorage.setItem("suppressSeparateDeviceWarning", checked ? "1" : "0");
}
+ getDeviceName(deviceId: string): string {
+ if (!this.state.alsaDevices) return deviceId;
+ for (let i = 0; i < this.state.alsaDevices.length; ++i) {
+ if (this.state.alsaDevices[i].id === deviceId) {
+ return this.state.alsaDevices[i].name;
+ }
+ }
+ return deviceId;
+ }
handleInputDeviceChanged(e: any) {
const d = e.target.value as string;
let s = this.state.jackServerSettings.clone();
s.alsaInputDevice = d;
+ s.alsaInputDeviceName = this.getDeviceName(d);
s.valid = false;
let settings = this.applyAlsaDevices(s, this.state.alsaDevices);
this.setState({
@@ -597,6 +607,7 @@ const JackServerSettingsDialog = withStyles(
const d = e.target.value as string;
let s = this.state.jackServerSettings.clone();
s.alsaOutputDevice = d;
+ s.alsaOutputDeviceName = this.getDeviceName(d);
s.valid = false;
let settings = this.applyAlsaDevices(s, this.state.alsaDevices);
this.setState({