Skip to content

Commit

Permalink
Merge pull request #156 from rerdavies/1.2.34
Browse files Browse the repository at this point in the history
1.2.34 Merge.
  • Loading branch information
rerdavies authored Aug 10, 2024
2 parents abef0cd + a77b75b commit c31953b
Show file tree
Hide file tree
Showing 18 changed files with 445 additions and 129 deletions.
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
cmake_minimum_required(VERSION 3.16.0)
project(pipedal
VERSION 1.2.33
VERSION 1.2.34
DESCRIPTION "PiPedal Guitar Effect Pedal For Raspberry Pi"
HOMEPAGE_URL "https://rerdavies.github.io/pipedal"
)
set (DISPLAY_VERSION "v1.2.31beta1")
set (DISPLAY_VERSION "v1.2.34beta2")

set (CMAKE_INSTALL_PREFIX "/usr/")

Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@

<img src='docs/GithubBanner.png' width="100%" /><br/>

Download: <a href='https://rerdavies.github.io/pipedal/download.html'>v1.2.33 Beta1</a>
Download: <a href='https://rerdavies.github.io/pipedal/download.html'>v1.2.34 Beta1</a>

Website: [https://rerdavies.github.io/pipedal](https://rerdavies.github.io/pipedal).


> NEW version 1.2.33 beta1 release, providing support for Raspberry Pi OS Bookworm. See the [release notes](https://rerdavies.github.io/pipedal/ReleaseNotes) for details.
> NEW version 1.2.34 beta2 release, providing support for Raspberry Pi OS Bookworm. See the [release notes](https://rerdavies.github.io/pipedal/ReleaseNotes) for details.
Use your Raspberry Pi as a guitar effects pedal. Configure and control PiPedal with your phone or tablet.
PiPedal running on a Raspberry Pi 4 provides stable super-low-latency audio via external USB audio devices, or internal Raspberry Pi audio hats.
Expand Down
6 changes: 3 additions & 3 deletions docs/download.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,17 @@

Download the most recent Debian (.deb) package for your platform:

- <a href="https://github.com/rerdavies/pipedal/releases/download/v1.2.33/pipedal_1.2.33_arm64.deb">Raspberry Pi OS Bookworm (64-bit) v1.2.33 Beta1</a>
- <a href="https://github.com/rerdavies/pipedal/releases/download/v1.2.34/pipedal_1.2.34_arm64.deb">Raspberry Pi OS Bookworm (64-bit) v1.2.34 Beta2</a>
- <a href="https://github.com/rerdavies/pipedal/releases/download/v1.1.31/pipedal_1.1.31_arm64.deb">Ubuntu 21.04 or Raspberry Pi OS Buster (64-bit) v1.1.31</a>

v1.2.33 Beta1 is does not currently support Ubuntu 21.04, or older versions of Raspberry Pi OS.
v1.2.34 Beta1 is does not currently support Ubuntu 21.04, or older versions of Raspberry Pi OS.

Install the package by running

```
sudo apt update
cd ~/Downloads
sudo apt-get install ./pipedal_1.2.33_arm64.deb
sudo apt-get install ./pipedal_1.2.34_arm64.deb
```

Follow the instructions in [_Configuring PiPedal After Installation_](https://rerdavies.github.io/pipedal/Configuring.html) to complete the installation.
5 changes: 3 additions & 2 deletions react/src/ControlViewFactory.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,14 @@ import IControlViewFactory from './IControlViewFactory';
import { GxTunerViewFactory } from './GxTunerView';
import ToobPowerstage2ViewFactory from './ToobPowerStage2View';
import ToobSpectrumAnalyzerViewFactory from './ToobSpectrumAnalyzerView';
// import ToobMLViewFactory from './ToobMLView';
import ToobMLViewFactory from './ToobMLView';


let pluginFactories: IControlViewFactory[] = [
new GxTunerViewFactory(),
new ToobPowerstage2ViewFactory(),
new ToobSpectrumAnalyzerViewFactory(),
//new ToobMLViewFactory()
new ToobMLViewFactory()
];


Expand Down
148 changes: 145 additions & 3 deletions react/src/Lv2Plugin.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -506,7 +506,7 @@ export class UiControl implements Deserializable<UiControl> {
this.controlType = ControlType.Vu;
}
}
else if (this.isValidEnumeration())
if (this.isValidEnumeration())
{
this.controlType = ControlType.Select;
if (this.scale_points.length === 2)
Expand All @@ -520,7 +520,10 @@ export class UiControl implements Deserializable<UiControl> {
}
}
return this;

}
applyProperties(properties: Partial<UiControl>): UiControl
{
return {...this,...properties};
}
private hasScalePoint(value: number): boolean {
for (let scale_point of this.scale_points)
Expand Down Expand Up @@ -726,7 +729,7 @@ export class UiControl implements Deserializable<UiControl> {
text += "s";
break;
// Midinote: not handled.
// semitone12TET not handled.
// semitone12TET not handled.



Expand Down Expand Up @@ -759,6 +762,7 @@ export class UiControl implements Deserializable<UiControl> {

}


export class UiPlugin implements Deserializable<UiPlugin> {
deserialize(input: any): UiPlugin
{
Expand Down Expand Up @@ -802,6 +806,11 @@ export class UiPlugin implements Deserializable<UiPlugin> {
}
return result;
}

isSplit(): boolean {
return this.uri === "uri://two-play/pipedal/pedalboard#Split";

}
getControl(key: string): UiControl | undefined {
for (let i = 0; i < this.controls.length; ++i)
{
Expand Down Expand Up @@ -860,3 +869,136 @@ export class UiPlugin implements Deserializable<UiPlugin> {
is_vst3 : boolean = false;
}



export function makeSplitUiPlugin(): UiPlugin
{

return new UiPlugin().deserialize({
uri: "uri://two-play/pipedal/pedalboard#Split",
name: "Split",
brand: "",
label: "",
plugin_type: PluginType.SplitA,
plugin_display_type: "Split",
author_name: "",
author_homepage: "",
audio_inputs: 1,
audio_outputs: 1,
has_midi_input: 0,
has_midi_output: 0,
description: "",
controls: [
new UiControl().applyProperties({
symbol: "splitType",
name: "Type",
index: 0,
is_input: true,
min_value: 0.0,
max_value: 2.0,
enumeration_property: true,
scale_points: [
new ScalePoint().deserialize({value: 0, label: "A/B"}),
new ScalePoint().deserialize({value: 1, label: "mix"}),
new ScalePoint().deserialize({value: 1, label: "L/R"}),
],
is_bypass: false,
is_program_controller: false,
custom_units: "",
connection_optional: false,

}) ,
new UiControl().applyProperties({
symbol: "select",
name: "Select",
index: 1,
is_input: true,
min_value: 0.0,
max_value: 1.0,
enumeration_property: true,
scale_points: [
new ScalePoint().deserialize({value: 0, label: "A"}),
new ScalePoint().deserialize({value: 1, label: "B"}),
],
is_bypass: false,
is_program_controller: false,
custom_units: "",
connection_optional: false,

}) ,

new UiControl().applyProperties({
symbol: "mix",
name: "Mix",
index: 2,
is_input: true,
min_value: -1.0,
max_value: 1.0,
is_bypass: false,
is_program_controller: false,
custom_units: "",
connection_optional: false,

}) ,
new UiControl().applyProperties({
symbol: "panL",
name: "Pan Top",
index: 3,
is_input: true,
min_value: -1.0,
max_value: 1.0,
is_bypass: false,
is_program_controller: false,
custom_units: "",
connection_optional: false,

}) ,
new UiControl().applyProperties({
symbol: "volL",
name: "Vol Top",
index: 4,
is_input: true,
min_value: -60.0,
max_value: 12.0,
is_bypass: false,
is_program_controller: false,
custom_units: "",
connection_optional: false,

}) ,
new UiControl().applyProperties({
symbol: "panR",
name: "Pan Bottom",
index: 5,
is_input: true,
min_value: -1.0,
max_value: 1.0,
is_bypass: false,
is_program_controller: false,
custom_units: "",
connection_optional: false,

}) ,
new UiControl().applyProperties({
symbol: "volR",
name: "Vol Bottom",
index: 6,
is_input: true,
min_value: -60.0,
max_value: 12.0,
is_bypass: false,
is_program_controller: false,
custom_units: "",
connection_optional: false,
})
],
port_groups: [],
fileProperties: [],
frequencyPlots: [],
is_vst3 : false,

}
);
}


11 changes: 8 additions & 3 deletions react/src/MidiBindingView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ import MicNoneOutlinedIcon from '@mui/icons-material/MicNoneOutlined';
import MicOutlinedIcon from '@mui/icons-material/MicOutlined';
import IconButton from '@mui/material/IconButton';
import NumericInput from './NumericInput';
import { UiPlugin } from './Lv2Plugin';



Expand All @@ -45,6 +46,7 @@ interface MidiBindingViewProps extends WithStyles<typeof styles> {
instanceId: number;
listen: boolean;
midiBinding: MidiBinding;
uiPlugin: UiPlugin;
onChange: (instanceId: number, newBinding: MidiBinding) => void;
onListen: (instanceId: number, key: string, listenForControl: boolean) => void;
}
Expand Down Expand Up @@ -139,8 +141,7 @@ const MidiBindingView =
render() {
let classes = this.props.classes;
let midiBinding = this.props.midiBinding;
let pedalboardItem = this.model.pedalboard.get().getItem(this.props.instanceId);
let uiPlugin = this.model.getUiPlugin(pedalboardItem.uri);
let uiPlugin = this.props.uiPlugin;
if (!uiPlugin) {
return (<div />);
}
Expand Down Expand Up @@ -258,7 +259,11 @@ const MidiBindingView =
value={midiBinding.switchControlType}
>
<MenuItem value={MidiBinding.LATCH_CONTROL_TYPE}>Toggle</MenuItem>
<MenuItem value={MidiBinding.MOMENTARY_CONTROL_TYPE}>Momentary</MenuItem>
<MenuItem value={MidiBinding.MOMENTARY_CONTROL_TYPE}>{
(midiBinding.bindingType === MidiBinding.BINDING_TYPE_NOTE) ?
"Note on/off"
: "Control value"
}</MenuItem>
</Select>
</div>
))
Expand Down
Loading

0 comments on commit c31953b

Please sign in to comment.