diff --git a/CMakeLists.txt b/CMakeLists.txt index 71fe340..9ea622e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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/") diff --git a/README.md b/README.md index 24b232b..668b9d9 100644 --- a/README.md +++ b/README.md @@ -6,11 +6,11 @@ -Download: v1.2.38 Beta5     Website: [https://rerdavies.github.io/pipedal](https://rerdavies.github.io/pipedal). +Download: v1.2.39 Beta5     Website: [https://rerdavies.github.io/pipedal](https://rerdavies.github.io/pipedal).   -#### 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.   diff --git a/docs/Installing.md b/docs/Installing.md index 7a381a3..96b518f 100644 --- a/docs/Installing.md +++ b/docs/Installing.md @@ -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. diff --git a/docs/download.md b/docs/download.md index a308f3d..5c86803 100644 --- a/docs/download.md +++ b/docs/download.md @@ -4,17 +4,17 @@ Download the most recent Debian (.deb) package for your platform: -- Raspberry Pi OS Bookworm (64-bit) v1.2.38 Beta5 +- Raspberry Pi OS Bookworm (64-bit) v1.2.39 Beta5 - Ubuntu 21.04 or Raspberry Pi OS bullseyeyeye (64-bit) v1.1.31 -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. diff --git a/docs/index.md b/docs/index.md index d17e9cf..89696f6 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,13 +1,13 @@ -v1.2.38 +v1.2.39   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. diff --git a/react/CMakeLists.txt b/react/CMakeLists.txt index bc702e4..1f2d20b 100644 --- a/react/CMakeLists.txt +++ b/react/CMakeLists.txt @@ -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 ( diff --git a/react/src/LoadPluginDialog.tsx b/react/src/LoadPluginDialog.tsx index 109c2f4..7baaef3 100644 --- a/react/src/LoadPluginDialog.tsx +++ b/react/src/LoadPluginDialog.tsx @@ -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 - { + class extends ResizeResponsiveComponent { model: PiPedalModel; searchInputRef: React.RefObject; @@ -436,15 +435,15 @@ export const LoadPluginDialog = if (uiPlugin.author_name !== "") { if (uiPlugin.author_homepage !== "") { return ( -
+
{uiPlugin.name + ",\u00A0"}
-
+ -
+
{stereoIndicator}
); @@ -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 =
-
+
- +
diff --git a/react/src/WifiConfigDialog.tsx b/react/src/WifiConfigDialog.tsx index cdc4099..f7f9760 100644 --- a/react/src/WifiConfigDialog.tsx +++ b/react/src/WifiConfigDialog.tsx @@ -272,7 +272,7 @@ const WifiConfigDialog = withStyles(styles, { withTheme: true })( this.handleEnableChanged(e)} - color="secondary" + color="primary" /> )} label="Enable" diff --git a/react/src/WifiDirectConfigDialog.tsx b/react/src/WifiDirectConfigDialog.tsx index 50bad7a..268f88e 100644 --- a/react/src/WifiDirectConfigDialog.tsx +++ b/react/src/WifiDirectConfigDialog.tsx @@ -325,7 +325,7 @@ const WifiDirectConfigDialog = withStyles(styles, { withTheme: true })( this.handleEnableChanged(e)} - color="secondary" + color="primary" /> )} label="Wi-Fi Direct Hotspot" diff --git a/react/src/ZoomedUiControl.tsx b/react/src/ZoomedUiControl.tsx index 9833e98..5ad820a 100644 --- a/react/src/ZoomedUiControl.tsx +++ b/react/src/ZoomedUiControl.tsx @@ -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 ( - { this.onCheckChanged(event.target.checked); }} @@ -165,14 +165,14 @@ const ZoomedUiControl = withStyles(styles, { withTheme: true })( if (control.isAbToggle()) { // unchecked color is not gray. return ( - { 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 { diff --git a/react/tmp.txt b/react/tmp.txt deleted file mode 100644 index da32ca9..0000000 --- a/react/tmp.txt +++ /dev/null @@ -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 diff --git a/todo.txt b/todo.txt index 096c487..e2f39c9 100644 --- a/todo.txt +++ b/todo.txt @@ -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.