v1.2.39 experimental

This commit is contained in:
Robin Davies
2024-08-19 16:41:26 -04:00
parent 9d1f316ea3
commit 78bb9f5373
12 changed files with 131 additions and 255 deletions
+2 -2
View File
@@ -1,10 +1,10 @@
cmake_minimum_required(VERSION 3.16.0)
project(pipedal
VERSION 1.2.38
VERSION 1.2.39
DESCRIPTION "PiPedal Guitar Effect Pedal For Raspberry Pi"
HOMEPAGE_URL "https://rerdavies.github.io/pipedal"
)
set (DISPLAY_VERSION "v1.2.38beta5")
set (DISPLAY_VERSION "v1.2.39beta5")
set (CMAKE_INSTALL_PREFIX "/usr/")
+2 -2
View File
@@ -6,11 +6,11 @@
<a href="https://rerdavies.github.io/pipedal/LicensePiPedal.html"><img src="https://img.shields.io/badge/MIT-MIT?label=license&color=%23808080"/></a>
<a href="https://github.com/rerdavies/pipedal/actions"><img src="https://img.shields.io/github/actions/workflow/status/rerdavies/pipedal/cmake.yml?branch=main"/></a>
Download:&nbsp;<a href='https://rerdavies.github.io/pipedal/download.html'>v1.2.38 Beta5</a>&nbsp;&nbsp;&nbsp;&nbsp; Website:&nbsp;[https://rerdavies.github.io/pipedal](https://rerdavies.github.io/pipedal).
Download:&nbsp;<a href='https://rerdavies.github.io/pipedal/download.html'>v1.2.39 Beta5</a>&nbsp;&nbsp;&nbsp;&nbsp; Website:&nbsp;[https://rerdavies.github.io/pipedal](https://rerdavies.github.io/pipedal).
&nbsp;
#### NEW version 1.2.38 Beta5 release, providing support for Raspberry Pi OS Bookworm. See the [release notes](https://rerdavies.github.io/pipedal/ReleaseNotes) for details.
#### NEW version 1.2.39 Beta5 release, providing support for Raspberry Pi OS Bookworm. See the [release notes](https://rerdavies.github.io/pipedal/ReleaseNotes) for details.
&nbsp;
+3 -3
View File
@@ -13,17 +13,17 @@ page_icon: img/Install4.jpg
Download the most recent Debian (.deb) package for your platform:
- [Raspberry Pi OS bookworm (64-bit) v1.2.38 Beta5](https://github.com/rerdavies/pipedal/releases/download/)
- [Raspberry Pi OS bookworm (64-bit) v1.2.39 Beta5](https://github.com/rerdavies/pipedal/releases/download/)
- [Ubuntu/Raspberry Pi OS bullseyeye (64-bit) v1.2.31](https://github.com/rerdavies/pipedal/releases/download/v1.1.31/pipedal_1.1.31_arm64.deb)
Version 1.2.38 has not yet been tested on Ubuntu or Raspberry Pi OS bullseye. On these platforms, we recommend that you use version 1.1.31.
Version 1.2.39 has not yet been tested on Ubuntu or Raspberry Pi OS bullseye. On these platforms, we recommend that you use version 1.1.31.
Install the package by running
```
sudo apt update
cd ~/Downloads
sudo apt-get install pipedal_1.2.38_arm64.deb
sudo apt-get install pipedal_1.2.39_arm64.deb
```
Adjust accordingly if you have downloaded v1.1.31.
+3 -3
View File
@@ -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.38/pipedal_1.2.38_arm64.deb">Raspberry Pi OS Bookworm (64-bit) v1.2.38 Beta5</a>
- <a href="https://github.com/rerdavies/pipedal/releases/download/v1.2.39/pipedal_1.2.39_arm64.deb">Raspberry Pi OS Bookworm (64-bit) v1.2.39 Beta5</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 bullseyeyeye (64-bit) v1.1.31</a>
v1.2.38 Beta5 is does not currently support Ubuntu 21.04, or older versions of Raspberry Pi OS.
v1.2.39 Beta5 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.38_arm64.deb
sudo apt-get install ./pipedal_1.2.39_arm64.deb
```
Follow the instructions in [_Configuring PiPedal After Installation_](https://rerdavies.github.io/pipedal/Configuring.html) to complete the installation.
+2 -2
View File
@@ -1,13 +1,13 @@
<img src="GithubBanner.png" width="100%"/>
<a href="Installing.html"><i>v1.2.38</i></a>
<a href="Installing.html"><i>v1.2.39</i></a>
&nbsp;
To download PiPedal, click [here](download.md).
> NEW version 1.2.38 Beta5 release. See the [release notes](https://rerdavies.github.io/pipedal/ReleaseNotes) for details.
> NEW version 1.2.39 Beta5 release. 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.
+54 -137
View File
@@ -21,9 +21,57 @@ add_custom_command(
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/react
DEPENDS
src/SelectThemeDialog.tsx
src/OkCancelDialog.tsx
src/PluginControl.tsx
src/svg/ic_save_bank_as.svg
src/svg/fx_constant.svg
src/svg/fx_distortion.svg
src/svg/ic_help_outline.svg
src/svg/fx_oscillator.svg
src/svg/fx_filter.svg
src/svg/fx_function.svg
src/svg/fx_generator.svg
src/svg/fx_compressor.svg
src/svg/file_download_black_24dp.svg
src/svg/fx_filter_hp.svg
src/svg/fx_plugin.svg
src/svg/fx_error.svg
src/svg/fx_gate.svg
src/svg/ic_midi.svg
src/svg/ic_pluginpreset.svg
src/svg/fx_split_a.svg
src/svg/fx_utility.svg
src/svg/ic_pluginpreset2.svg
src/svg/fx_parametric_eq.svg
src/svg/fx_terminal.svg
src/svg/ic_presets.svg
src/svg/fx_flanger.svg
src/svg/fx_analyzer.svg
src/svg/fx_delay.svg
src/svg/fx_spectral.svg
src/svg/fx_chorus.svg
src/svg/fx_simulator.svg
src/svg/drive_file_rename_outline_black_24dp.svg
src/svg/fx_mixer.svg
src/svg/fx_eq.svg
src/svg/fx_modulator.svg
src/svg/file_upload_black_24dp.svg
src/svg/fx_pitch.svg
src/svg/fx_phaser.svg
src/svg/fx_amplifier.svg
src/svg/fx_lr.svg
src/svg/fx_instrument.svg
src/svg/fx_reverb.svg
src/svg/ic_edit_banks.svg
src/svg/fx_limiter.svg
src/svg/fx_empty.svg
src/svg/fx_dial.svg
src/svg/fx_flanger2.svg
src/svg/fx_split_b.svg
src/svg/fx_spatial.svg
src/svg/fx_converter.svg
src/svg/old_delete_outline_24dp.svg
src/svg/ic_settings.svg
src/reportWebVitals.ts
src/JackHostStatus.tsx
src/PluginPresetsDialog.tsx
@@ -39,6 +87,7 @@ add_custom_command(
src/StringBuilder.tsx
src/FilePropertyDialog.tsx
src/GxTunerControl.tsx
src/DarkMode.tsx
src/App.tsx
src/GxTunerView.tsx
src/Rect.tsx
@@ -66,12 +115,14 @@ add_custom_command(
src/ToobPowerStage2View.tsx
src/ListSelectDialog.tsx
src/ToobWaveShapeView.tsx
src/SelectThemeDialog.tsx
src/PluginInfoDialog.tsx
src/SearchFilter.tsx
src/SearchControl.tsx
src/JackServerSettings.tsx
src/WifiChannel.tsx
src/WifiConfigDialog.tsx
src/FilePropertyDirectoryTree.tsx
src/App.test.tsx
src/PluginPresetSelector.tsx
src/ObservableProperty.tsx
@@ -97,6 +148,7 @@ add_custom_command(
src/AlsaMidiDeviceInfo.tsx
src/ResizeResponsiveComponent.tsx
src/RenameDialog.tsx
src/FilePropertyDirectorySelectDialog.tsx
src/SystemMidiBindingView.tsx
src/OldDeleteIcon.tsx
src/ToobInputStageView.tsx
@@ -122,142 +174,7 @@ add_custom_command(
src/MidiBindingView.tsx
src/PluginIcon.tsx
src/UploadFileDialog.tsx
public/css/roboto.css
public/logo192x.png
public/robots.txt
public/img/ic_drawer_2.png
public/img/fx_constant.svg
public/img/ic_presets_white.svg
public/img/cx_mono.svg
public/img/cx_stereo.svg
public/img/fx_distortion.svg
public/img/Pi-Logo-3.png
public/img/fx_oscillator.svg
src/svg/ic_save_bank_as.svg
src/svg/ic_edit_banks.svg
src/svg/ic_settings.svg
public/img/fx_filter.svg
public/img/delete_outline_black_24dp.svg
public/img/fx_function.svg
public/img/fx_generator.svg
public/img/old_delete_outline_black_24dp.svg
public/img/ic_bank.svg
public/img/fx_compressor.svg
public/img/fx_filter_hp.svg
public/img/fx_plugin.svg
public/img/fx_error.svg
public/img/fx_gate.svg
public/img/cc-by.png
public/img/fx_split_a.svg
public/img/fx_utility.svg
src/svg/ic_help_outline.svg
public/img/ic_navigate_before.svg
public/img/ic_drawer_2.svg
public/img/fx_parametric_eq.svg
public/img/fx_terminal.svg
public/img/ic_presets.svg
public/img/VST_Logo_Steinberg.ico
public/img/fx_flanger.svg
public/img/fx_analyzer.svg
public/img/fx_delay.svg
public/img/fx_spectral.svg
public/img/fx_chorus.svg
public/img/fx_simulator.svg
public/img/fx_mixer.svg
public/img/fx_eq.svg
public/img/fx_modulator.svg
public/img/fx_pitch.svg
public/img/ic_navigate_next.svg
public/img/fx_phaser.svg
public/img/ic_drawer.svg
public/img/fx_amplifier.svg
public/img/fx_lr.svg
public/img/fx_instrument.svg
public/img/Pi-Logo-3.svg
public/img/fx_reverb.svg
public/img/fx_limiter.svg
public/img/VST_Logo_Steinberg.png
public/img/fx_empty.svg
public/img/fx_dial.svg
public/img/ic_logo.svg
public/img/fx_flanger2.svg
public/img/old_delete_outline_white_24dp.svg
public/img/fx_split_b.svg
public/img/fx_spatial.svg
public/img/fx_converter.svg
public/img/vst.svg
public/img/vst.png
public/sample_lv2_plugins.json
public/serve.json
public/fonts/Roboto-LightItalic.woff2
public/fonts/Roboto-Light.woff2
public/fonts/Roboto-BlackItalic.woff2
public/fonts/Roboto-ThinItalic.woff2
public/fonts/Roboto-Bold.woff2
public/fonts/Roboto-Italic.woff2
public/fonts/Roboto-Black.woff2
public/fonts/Roboto-BoldItalic.woff2
public/fonts/Roboto-Regular.woff2
public/fonts/Roboto-Medium.woff2
public/fonts/Roboto-Thin.woff2
public/fonts/LICENSE.txt
public/fonts/Roboto-MediumItalic.woff2
public/favicon.ico
public/iso_codes.json
public/logo192.png
public/logo512.png
public/index.html
public/manifest.json
public/var/config.json
public/var/current_pedalboard.json
public/var/uiplugins.json
public/var/plugin_classes.json
src/svg/fx_constant.svg
src/svg/fx_distortion.svg
src/svg/fx_oscillator.svg
src/svg/fx_filter.svg
src/svg/fx_function.svg
src/svg/fx_generator.svg
src/svg/fx_compressor.svg
src/svg/file_download_black_24dp.svg
src/svg/fx_filter_hp.svg
src/svg/fx_plugin.svg
src/svg/fx_error.svg
src/svg/fx_gate.svg
src/svg/ic_midi.svg
src/svg/ic_pluginpreset.svg
src/svg/fx_split_a.svg
src/svg/fx_utility.svg
src/svg/ic_pluginpreset2.svg
src/svg/fx_parametric_eq.svg
src/svg/fx_terminal.svg
src/svg/ic_presets.svg
src/svg/fx_flanger.svg
src/svg/fx_analyzer.svg
src/svg/fx_delay.svg
src/svg/fx_spectral.svg
src/svg/fx_chorus.svg
src/svg/fx_simulator.svg
src/svg/fx_mixer.svg
src/svg/fx_eq.svg
src/svg/fx_modulator.svg
src/svg/file_upload_black_24dp.svg
src/svg/fx_pitch.svg
src/svg/fx_phaser.svg
src/svg/fx_amplifier.svg
src/svg/fx_lr.svg
src/svg/fx_instrument.svg
src/svg/fx_reverb.svg
src/svg/fx_limiter.svg
src/svg/fx_empty.svg
src/svg/fx_dial.svg
src/svg/fx_flanger2.svg
src/svg/fx_split_b.svg
src/svg/fx_spatial.svg
src/svg/fx_converter.svg
src/svg/old_delete_outline_24dp.svg
)
add_custom_target (
+58 -55
View File
@@ -86,7 +86,7 @@ const pluginGridStyles = (theme: Theme) => createStyles({
justifyContent: "space-between",
paddingLeft: "24px",
paddingRight: "48px",
},
paper: {
position: "relative",
@@ -181,8 +181,7 @@ type PluginGridState = {
export const LoadPluginDialog =
withStyles(pluginGridStyles, { withTheme: true })(
class extends ResizeResponsiveComponent<PluginGridProps, PluginGridState>
{
class extends ResizeResponsiveComponent<PluginGridProps, PluginGridState> {
model: PiPedalModel;
searchInputRef: React.RefObject<HTMLInputElement>;
@@ -436,15 +435,15 @@ export const LoadPluginDialog =
if (uiPlugin.author_name !== "") {
if (uiPlugin.author_homepage !== "") {
return (<Fragment>
<div style={{flex: "0 1 auto"}}>
<div style={{ flex: "0 1 auto" }}>
<Typography variant='body2' color="textSecondary" noWrap>{uiPlugin.name + ",\u00A0"}</Typography>
</div>
<div style={{flex: "0 1 auto"}}>
<div style={{ flex: "0 1 auto" }}>
<a href={uiPlugin.author_homepage} target="_blank" rel="noopener noreferrer" >
<Typography variant='body2' color="textSecondary" noWrap>{uiPlugin.author_name}</Typography>
</a>
</div>
<div style={{flex: "0 0 auto"}}>
<div style={{ flex: "0 0 auto" }}>
<Typography variant='body2' color="textSecondary" noWrap>{stereoIndicator}</Typography>
</div>
</Fragment>);
@@ -482,55 +481,59 @@ export const LoadPluginDialog =
}
getFilteredPlugins(searchString: string | null, filterType: PluginType | null, favoritesList: FavoritesList | null): UiPlugin[] {
if (searchString === null) {
searchString = this.state.search_string;
}
if (filterType === null) {
filterType = this.state.filterType;
}
if (favoritesList === null) {
favoritesList = this.state.favoritesList;
}
let plugins = this.model.ui_plugins.get();
let results: { score: number; plugin: UiPlugin }[] = [];
let searchFilter = new SearchFilter(searchString);
let rootClass = this.model.plugin_classes.get();
for (let i = 0; i < plugins.length; ++i) {
let plugin = plugins[i];
try {
if (filterType === PluginType.Plugin || rootClass.is_type_of(filterType, plugin.plugin_type)) {
let score: number = 0;
if (plugin.is_vst3) {
score = searchFilter.score(plugin.name, plugin.plugin_display_type, plugin.author_name, "vst3");
} else {
score = searchFilter.score(plugin.name, plugin.plugin_display_type, plugin.author_name);
}
if (score !== 0) {
if (favoritesList[plugin.uri]) {
score += 32768;
}
results.push({ score: score, plugin: plugin });
}
}
} catch (e)
{
alert("Bad plugin:" + (plugin?.name??"null") + " plugin type: " + (plugin?.plugin_type??"null"));
try {
if (searchString === null) {
searchString = this.state.search_string;
}
if (filterType === null) {
filterType = this.state.filterType;
}
if (favoritesList === null) {
favoritesList = this.state.favoritesList;
}
let plugins = this.model.ui_plugins.get();
let results: { score: number; plugin: UiPlugin }[] = [];
let searchFilter = new SearchFilter(searchString);
let rootClass = this.model.plugin_classes.get();
for (let i = 0; i < plugins.length; ++i) {
let plugin = plugins[i];
try {
if (filterType === PluginType.Plugin || rootClass.is_type_of(filterType, plugin.plugin_type)) {
let score: number = 0;
if (plugin.is_vst3) {
score = searchFilter.score(plugin.name, plugin.plugin_display_type, plugin.author_name, "vst3");
} else {
score = searchFilter.score(plugin.name, plugin.plugin_display_type, plugin.author_name);
}
if (score !== 0) {
if (favoritesList[plugin.uri]) {
score += 32768;
}
results.push({ score: score, plugin: plugin });
}
}
} catch (e: any) {
alert("Bad plugin:" + (plugin?.name ?? "null") + " plugin type: " + (plugin?.plugin_type ?? "null"
+ " " + e.toString()));
}
}
results.sort((left: { score: number; plugin: UiPlugin }, right: { score: number; plugin: UiPlugin }) => {
if (right.score < left.score) return -1;
if (right.score > left.score) return 1;
return left.plugin.name.localeCompare(right.plugin.name);
});
let t: UiPlugin[] = [];
for (let i = 0; i < results.length; ++i) {
t.push(results[i].plugin);
}
return t;
} catch (e: any) {
alert("getFilteredPlugins: " + e.toString());
throw e;
}
results.sort((left: { score: number; plugin: UiPlugin }, right: { score: number; plugin: UiPlugin }) => {
if (right.score < left.score) return -1;
if (right.score > left.score) return 1;
return left.plugin.name.localeCompare(right.plugin.name);
});
let t: UiPlugin[] = [];
for (let i = 0; i < results.length; ++i) {
t.push(results[i].plugin);
}
return t;
}
changedSearchString?: string = undefined;
@@ -841,10 +844,10 @@ export const LoadPluginDialog =
</IconButton>
</div>
</div>
<div className={classes.bottom} style={{height: 64}}>
<div className={classes.bottom} style={{ height: 64 }}>
<div style={{ flex: "1 1 1px" }} />
<div style={{ position: "relative", flex: "0 1 auto", display: "flex", alignItems: "center" }}>
<Button variant="dialogSecondary" onClick={this.handleCancel} style={{ height: 48 }} >Cancel</Button>
<Button variant="dialogSecondary" onClick={this.handleCancel} style={{ height: 48 }} >Cancel</Button>
<Button variant="dialogPrimary" onClick={this.handleOk} disabled={selectedPlugin === null} style={{ height: 48 }} >SELECT</Button>
</div>
</div>
+1 -1
View File
@@ -272,7 +272,7 @@ const WifiConfigDialog = withStyles(styles, { withTheme: true })(
<Switch
checked={this.state.enabled}
onChange={(e: any) => this.handleEnableChanged(e)}
color="secondary"
color="primary"
/>
)}
label="Enable"
+1 -1
View File
@@ -325,7 +325,7 @@ const WifiDirectConfigDialog = withStyles(styles, { withTheme: true })(
<Switch
checked={this.state.enabled}
onChange={(e: any) => this.handleEnableChanged(e)}
color="secondary"
color="primary"
/>
)}
label="Wi-Fi Direct Hotspot"
+4 -4
View File
@@ -44,7 +44,7 @@ const styles = (theme: Theme) => createStyles({
transition: theme.transitions.create(['opacity', 'background-color'], {
duration: theme.transitions.duration.shortest
}),
backgroundColor: theme.palette.secondary.main,
backgroundColor: theme.palette.primary.main,
opacity: theme.palette.mode === 'light' ? 0.38 : 0.3
}
@@ -155,7 +155,7 @@ const ZoomedUiControl = withStyles(styles, { withTheme: true })(
if (control.isOnOffSwitch()) {
// normal gray unchecked state.
return (
<Switch checked={value !== 0} color="secondary"
<Switch checked={value !== 0} color="primary"
onChange={(event) => {
this.onCheckChanged(event.target.checked);
}}
@@ -165,14 +165,14 @@ const ZoomedUiControl = withStyles(styles, { withTheme: true })(
if (control.isAbToggle()) {
// unchecked color is not gray.
return (
<Switch checked={value !== 0} color="secondary"
<Switch checked={value !== 0} color="primary"
onChange={(event) => {
this.onCheckChanged(event.target.checked);
}}
classes={{
track: this.props.classes.switchTrack
}}
style={{ color: this.props.theme.palette.secondary.main }}
style={{ color: this.props.theme.palette.primary.main }}
/>
);
} else {
-45
View File
@@ -1,45 +0,0 @@
src/svg/
src/svg/fx_constant.svg
src/svg/fx_distortion.svg
src/svg/fx_oscillator.svg
src/svg/fx_filter.svg
src/svg/fx_function.svg
src/svg/fx_generator.svg
src/svg/fx_compressor.svg
src/svg/file_download_black_24dp.svg
src/svg/fx_filter_hp.svg
src/svg/fx_plugin.svg
src/svg/fx_error.svg
src/svg/fx_gate.svg
src/svg/ic_midi.svg
src/svg/ic_pluginpreset.svg
src/svg/fx_split_a.svg
src/svg/fx_utility.svg
src/svg/ic_pluginpreset2.svg
src/svg/fx_parametric_eq.svg
src/svg/fx_terminal.svg
src/svg/ic_presets.svg
src/svg/fx_flanger.svg
src/svg/fx_analyzer.svg
src/svg/fx_delay.svg
src/svg/fx_spectral.svg
src/svg/fx_chorus.svg
src/svg/fx_simulator.svg
src/svg/fx_mixer.svg
src/svg/fx_eq.svg
src/svg/fx_modulator.svg
src/svg/file_upload_black_24dp.svg
src/svg/fx_pitch.svg
src/svg/fx_phaser.svg
src/svg/fx_amplifier.svg
src/svg/fx_lr.svg
src/svg/fx_instrument.svg
src/svg/fx_reverb.svg
src/svg/fx_limiter.svg
src/svg/fx_empty.svg
src/svg/fx_dial.svg
src/svg/fx_flanger2.svg
src/svg/fx_split_b.svg
src/svg/fx_spatial.svg
src/svg/fx_converter.svg
src/svg/old_delete_outline_24dp.svg
+1
View File
@@ -1,3 +1,4 @@
- feature: redo ./makepackage so that it runs without sudo.
- Bug: text Cursor hovering over the breadcrumb bar in file property dialog.
- Turning off wifi-direct sould re-enable NetworkManager.
- ToobML save/restore state.