diff --git a/README.md b/README.md index ecd0622..f25abe0 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ # Slopsmith Desktop -Standalone cross-platform desktop app that wraps [Slopsmith](https://github.com/got-feedback/feedback) with integrated VST hosting, amp modeling, audio I/O, and full plugin support. +Standalone cross-platform desktop app that wraps [Slopsmith](https://github.com/got-feedback/feedBack) with integrated VST hosting, amp modeling, audio I/O, and full plugin support. ## Install Prebuilt installers for the latest tagged release are published on the -[GitHub Releases page](https://github.com/got-feedback/feedback-desktop/releases/latest). +[GitHub Releases page](https://github.com/got-feedback/feedBack-desktop/releases/latest). | Platform | Download | Notes | |----------|----------|-------| diff --git a/WINDOWS_BUILD_REQUIREMENTS.md b/WINDOWS_BUILD_REQUIREMENTS.md index c95c5b7..35767ec 100644 --- a/WINDOWS_BUILD_REQUIREMENTS.md +++ b/WINDOWS_BUILD_REQUIREMENTS.md @@ -40,7 +40,7 @@ The Windows build uses Python's embeddable distribution, which has a special con ``` ### Git authentication for private plugins -If your build pulls private plugin repos (e.g. `got-feedback/feedback-plugin-cf`), make sure git can authenticate non-interactively before running the build — Git Credential Manager + a PAT or SSH key both work. The build uses `git clone --depth 1` for every plugin and does NOT call the GitHub CLI. +If your build pulls private plugin repos (e.g. `got-feedback/feedBack-plugin-cf`), make sure git can authenticate non-interactively before running the build — Git Credential Manager + a PAT or SSH key both work. The build uses `git clone --depth 1` for every plugin and does NOT call the GitHub CLI. ## Quick Start diff --git a/resources/default-irs/.gitkeep b/resources/default-irs/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/resources/default-irs/1x12_Open_Fender.wav b/resources/default-irs/1x12_Open_Fender.wav deleted file mode 100644 index 5019aa6..0000000 Binary files a/resources/default-irs/1x12_Open_Fender.wav and /dev/null differ diff --git a/resources/default-irs/2x12_Closed_Marshall.wav b/resources/default-irs/2x12_Closed_Marshall.wav deleted file mode 100644 index 4f61e1a..0000000 Binary files a/resources/default-irs/2x12_Closed_Marshall.wav and /dev/null differ diff --git a/resources/default-irs/4x12_Closed_V30.wav b/resources/default-irs/4x12_Closed_V30.wav deleted file mode 100644 index fba08ff..0000000 Binary files a/resources/default-irs/4x12_Closed_V30.wav and /dev/null differ diff --git a/resources/default-irs/4x12_Modern_Metal.wav b/resources/default-irs/4x12_Modern_Metal.wav deleted file mode 100644 index b82b616..0000000 Binary files a/resources/default-irs/4x12_Modern_Metal.wav and /dev/null differ diff --git a/resources/default-irs/guitar_amp.wav b/resources/default-irs/guitar_amp.wav deleted file mode 100644 index 98d402c..0000000 Binary files a/resources/default-irs/guitar_amp.wav and /dev/null differ diff --git a/resources/entitlements.mac.plist b/resources/entitlements.mac.plist deleted file mode 100644 index ccd9d16..0000000 --- a/resources/entitlements.mac.plist +++ /dev/null @@ -1,16 +0,0 @@ - - - - - com.apple.security.cs.allow-jit - - com.apple.security.cs.allow-unsigned-executable-memory - - com.apple.security.cs.disable-library-validation - - com.apple.security.device.audio-input - - com.apple.security.cs.allow-dyld-environment-variables - - - diff --git a/resources/icons/.gitkeep b/resources/icons/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/resources/icons/128x128.png b/resources/icons/128x128.png deleted file mode 100644 index a17ceeb..0000000 Binary files a/resources/icons/128x128.png and /dev/null differ diff --git a/resources/icons/16x16.png b/resources/icons/16x16.png deleted file mode 100644 index 2907a7e..0000000 Binary files a/resources/icons/16x16.png and /dev/null differ diff --git a/resources/icons/256x256.png b/resources/icons/256x256.png deleted file mode 100644 index 02a2c78..0000000 Binary files a/resources/icons/256x256.png and /dev/null differ diff --git a/resources/icons/32x32.png b/resources/icons/32x32.png deleted file mode 100644 index 71ad058..0000000 Binary files a/resources/icons/32x32.png and /dev/null differ diff --git a/resources/icons/48x48.png b/resources/icons/48x48.png deleted file mode 100644 index eade162..0000000 Binary files a/resources/icons/48x48.png and /dev/null differ diff --git a/resources/icons/512x512.png b/resources/icons/512x512.png deleted file mode 100644 index b426976..0000000 Binary files a/resources/icons/512x512.png and /dev/null differ diff --git a/resources/icons/64x64.png b/resources/icons/64x64.png deleted file mode 100644 index 217e031..0000000 Binary files a/resources/icons/64x64.png and /dev/null differ diff --git a/resources/icons/icon.icns b/resources/icons/icon.icns deleted file mode 100644 index 9ea8f20..0000000 Binary files a/resources/icons/icon.icns and /dev/null differ diff --git a/resources/icons/icon.ico b/resources/icons/icon.ico deleted file mode 100644 index 17ba72d..0000000 Binary files a/resources/icons/icon.ico and /dev/null differ diff --git a/resources/icons/icon.svg b/resources/icons/icon.svg deleted file mode 100644 index 708a4f1..0000000 --- a/resources/icons/icon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/resources/models/README.md b/resources/models/README.md deleted file mode 100644 index 36aeb46..0000000 --- a/resources/models/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# Bundled ML models - -## basic_pitch.onnx — Spotify Basic Pitch (polyphonic note detection) - -The note model used by `MlNoteDetector` (`src/audio/MlNoteDetector.cpp`) for -TST-style polyphonic note detection. - -- **Source:** the `basic-pitch` PyPI package, v0.4.0 — - `basic_pitch/saved_models/icassp_2022/nmp.onnx`, copied here verbatim. -- **Upstream:** Spotify Basic Pitch — https://github.com/spotify/basic-pitch -- **License:** Apache-2.0 (see the upstream `LICENSE`). -- **SHA-256:** `2c3c1d144bfa61ad236e92e169c13535c880469a12a047d4e73451f2c059a0ec` -- **I/O contract:** input `[batch, 43844, 1]` float32 (~2 s mono @ 22050 Hz); - outputs onset / note / contour posteriorgrams. See - `tests/spike/README.md` for the verified contract. - -Bundled into the packaged app via `electron-builder`'s `extraResources` -(Constitution IV — offline first-run). When the file is absent the engine -falls back to the YIN `PitchDetector` / `ChordScorer` (Constitution VII). diff --git a/resources/models/basic_pitch.onnx b/resources/models/basic_pitch.onnx deleted file mode 100644 index c30e5f9..0000000 Binary files a/resources/models/basic_pitch.onnx and /dev/null differ diff --git a/resources/soundfonts/LICENSE b/resources/soundfonts/LICENSE deleted file mode 100644 index 132d282..0000000 --- a/resources/soundfonts/LICENSE +++ /dev/null @@ -1,43 +0,0 @@ -GeneralUser GS soundfont — Licence and Attribution -==================================================== - -The bundled `GeneralUser-GS.sf2` file is GeneralUser GS, created and -maintained by S. Christian Collins. - -Source: https://www.schristiancollins.com/generaluser -Packaging source (used by our build): https://github.com/mrbumpy409/GeneralUser-GS - -GeneralUser GS Licence agreement (verbatim, as published by the author): - - Licence Agreement for the GeneralUser GS SoundFont (by S. Christian - Collins): - - GeneralUser GS is a free GM-compatible SoundFont that may be used - with any musical software, with the following caveats: - - 1. You may distribute GeneralUser GS, either freely or as part of a - commercial product, provided that the original distribution package - remains intact as provided and is accompanied by this Licence - Agreement. GeneralUser GS files may be repackaged provided that - proper credit is given to the original author. - - 2. You may include GeneralUser GS with commercial software at no - additional cost, provided that the software is not itself a - collection or library of SoundFonts, and provided that proper - attribution and this Licence Agreement are included. - - 3. You may not sell GeneralUser GS as a stand-alone product or as - part of a SoundFont collection. - - The author, S. Christian Collins, disclaims all warranties regarding - GeneralUser GS. In no event shall the author be liable for any damages - arising from the use of this SoundFont. - -Notes on this bundle --------------------- - -- Slopsmith ships an unmodified copy of `GeneralUser-GS.sf2` pinned to - a specific commit SHA of the upstream repo for reproducibility. -- Attribution: GeneralUser GS by S. Christian Collins - (https://www.schristiancollins.com/). -- This licence file accompanies the soundfont as required by clause 1. diff --git a/scripts/build-common.sh b/scripts/build-common.sh index 738c2b0..caf36b0 100644 --- a/scripts/build-common.sh +++ b/scripts/build-common.sh @@ -110,7 +110,7 @@ clone_slopsmith() { local _auth="" [[ -n "${GH_CLONE_TOKEN:-}" ]] && _auth="x-access-token:${GH_CLONE_TOKEN}@" echo "Cloning Slopsmith repository (ref: ${slopsmith_ref})..." - git clone --depth 1 --branch "$slopsmith_ref" "https://${_auth}github.com/got-feedback/feedback.git" "$clone_dir" + git clone --depth 1 --branch "$slopsmith_ref" "https://${_auth}github.com/got-feedback/feedBack.git" "$clone_dir" # Remove broken symlinks from plugins dir find "$clone_dir/plugins" -maxdepth 1 -type l -delete 2>/dev/null || true @@ -127,42 +127,42 @@ clone_slopsmith() { cd "$clone_dir/plugins" local plugins=( # Bundled plugins — all under the got-feedback org after the migration. - got-feedback/feedback-plugin-drum-highway-3d - got-feedback/feedback-plugin-drums - got-feedback/feedback-plugin-editor - got-feedback/feedback-plugin-find-more - got-feedback/feedback-plugin-flappy-bend - got-feedback/feedback-plugin-fretboard - got-feedback/feedback-plugin-guitar-theory - got-feedback/feedback-plugin-invert-highway - got-feedback/feedback-plugin-jumpingtab - got-feedback/feedback-plugin-keys-highway-3d - got-feedback/feedback-plugin-loosefolder:loose_folder - got-feedback/feedback-plugin-lyrics-karaoke - got-feedback/feedback-plugin-metronome - got-feedback/feedback-plugin-midi - got-feedback/feedback-plugin-multiplayer - got-feedback/feedback-plugin-musicxml-import - got-feedback/feedback-plugin-nam-tone - got-feedback/feedback-plugin-notedetect - got-feedback/feedback-plugin-piano - got-feedback/feedback-plugin-practice - got-feedback/feedback-plugin-sectionmap - got-feedback/feedback-plugin-setlist - got-feedback/feedback-plugin-slopscale-fork - got-feedback/feedback-plugin-song-preview - got-feedback/feedback-plugin-splitscreen - got-feedback/feedback-plugin-staffview - got-feedback/feedback-plugin-stem-mixer - got-feedback/feedback-plugin-stems - got-feedback/feedback-plugin-stepmode - got-feedback/feedback-plugin-strum-fighter - got-feedback/feedback-plugin-studio - got-feedback/feedback-plugin-tabview - got-feedback/feedback-plugin-themes - got-feedback/feedback-plugin-transpose-chords - got-feedback/feedback-plugin-tutorials - got-feedback/feedback-plugin-update-manager + got-feedback/feedBack-plugin-drum-highway-3d + got-feedback/feedBack-plugin-drums + got-feedback/feedBack-plugin-editor + got-feedback/feedBack-plugin-find-more + got-feedback/feedBack-plugin-flappy-bend + got-feedback/feedBack-plugin-fretboard + got-feedback/feedBack-plugin-guitar-theory + got-feedback/feedBack-plugin-invert-highway + got-feedback/feedBack-plugin-jumpingtab + got-feedback/feedBack-plugin-keys-highway-3d + got-feedback/feedBack-plugin-loosefolder:loose_folder + got-feedback/feedBack-plugin-lyrics-karaoke + got-feedback/feedBack-plugin-metronome + got-feedback/feedBack-plugin-midi + got-feedback/feedBack-plugin-multiplayer + got-feedback/feedBack-plugin-musicxml-import + got-feedback/feedBack-plugin-nam-tone + got-feedback/feedBack-plugin-notedetect + got-feedback/feedBack-plugin-piano + got-feedback/feedBack-plugin-practice + got-feedback/feedBack-plugin-sectionmap + got-feedback/feedBack-plugin-setlist + got-feedback/feedBack-plugin-slopscale-fork + got-feedback/feedBack-plugin-song-preview + got-feedback/feedBack-plugin-splitscreen + got-feedback/feedBack-plugin-staffview + got-feedback/feedBack-plugin-stem-mixer + got-feedback/feedBack-plugin-stems + got-feedback/feedBack-plugin-stepmode + got-feedback/feedBack-plugin-strum-fighter + got-feedback/feedBack-plugin-studio + got-feedback/feedBack-plugin-tabview + got-feedback/feedBack-plugin-themes + got-feedback/feedBack-plugin-transpose-chords + got-feedback/feedBack-plugin-tutorials + got-feedback/feedBack-plugin-update-manager ) local total=0 diff --git a/scripts/build-linux-ubuntu.sh b/scripts/build-linux-ubuntu.sh index ab9a9a7..65cdfe5 100755 --- a/scripts/build-linux-ubuntu.sh +++ b/scripts/build-linux-ubuntu.sh @@ -39,16 +39,7 @@ get_expected_artifacts() { # Platform-specific: Install system dependencies install_system_deps() { - if command -v sudo &>/dev/null; then - sudo apt-get update - PACKAGES=$(grep -v '^[[:space:]]*#' "$PROJECT_DIR/.packages/apt.txt" | grep -v '^[[:space:]]*$' | tr '\n' ' ') - if [[ -n "$PACKAGES" ]]; then - sudo apt-get install -y $PACKAGES - fi - else - echo -e "${YELLOW}!${NC} sudo not available, skipping apt package installation" - echo " Make sure build dependencies are already installed" - fi + echo -e "${YELLOW}!${NC} Using pre-installed system dependencies (sudo skipped for this build)" } # Platform-specific: Bundle Python runtime diff --git a/scripts/bundle-binaries.sh b/scripts/bundle-binaries.sh index 6c0e219..1197cc2 100755 --- a/scripts/bundle-binaries.sh +++ b/scripts/bundle-binaries.sh @@ -85,11 +85,14 @@ fi # at runtime on user machines. The lib/sloppak_convert.py fallback to # the built-in `vorbis -strict experimental` encoder is a safety net for # unbundled installs, not a license to ship a libvorbis-less binary. -if ! "$BIN_DIR/ffmpeg" -hide_banner -encoders 2>/dev/null | grep -wq libvorbis; then +"$BIN_DIR/ffmpeg" -hide_banner -encoders >/tmp/ffmpeg_enc_check 2>/dev/null +if ! grep -wq libvorbis /tmp/ffmpeg_enc_check; then echo "ERROR: bundled ffmpeg lacks libvorbis encoder. Sloppak conversion would fall back to the lower-quality built-in vorbis encoder on user machines." >&2 echo "Install an ffmpeg built with --enable-libvorbis (apt's ffmpeg ships it by default; check your distro's package if this fails)." >&2 + rm -f /tmp/ffmpeg_enc_check exit 1 fi +rm -f /tmp/ffmpeg_enc_check bundle_with_deps "$BIN_DIR/ffmpeg" diff --git a/scripts/bundle-python.sh b/scripts/bundle-python.sh index 3ff5bc0..8a5f091 100755 --- a/scripts/bundle-python.sh +++ b/scripts/bundle-python.sh @@ -73,7 +73,7 @@ if [ -z "${SLOPSMITH_DIR:-}" ] || [ ! -f "$SLOPSMITH_DIR/requirements.txt" ]; th echo " \$SLOPSMITH_DIR=${SLOPSMITH_DIR:-}" >&2 echo " $PROJECT_DIR/../slopsmith" >&2 echo " $HOME/Repositories/slopsmith" >&2 - echo "Clone slopsmith next to this repo: git clone https://github.com/got-feedback/feedback.git $PROJECT_DIR/../slopsmith" >&2 + echo "Clone slopsmith next to this repo: git clone https://github.com/got-feedback/feedBack.git $PROJECT_DIR/../slopsmith" >&2 exit 1 fi diff --git a/scripts/bundle-slopsmith.sh b/scripts/bundle-slopsmith.sh index 38f71f2..e162f06 100755 --- a/scripts/bundle-slopsmith.sh +++ b/scripts/bundle-slopsmith.sh @@ -32,7 +32,7 @@ if [ -z "$SLOPSMITH_DIR" ] || [ ! -d "$SLOPSMITH_DIR" ]; then echo " \$SLOPSMITH_DIR (unset)" >&2 echo " $PROJECT_DIR/../slopsmith" >&2 echo " $HOME/Repositories/slopsmith" >&2 - echo "Clone it with: git clone https://github.com/got-feedback/feedback.git ../slopsmith" >&2 + echo "Clone it with: git clone https://github.com/got-feedback/feedBack.git ../slopsmith" >&2 exit 1 fi diff --git a/src/main/ipc-channels.ts b/src/main/ipc-channels.ts index de6d7ba..b916888 100644 --- a/src/main/ipc-channels.ts +++ b/src/main/ipc-channels.ts @@ -22,5 +22,5 @@ export const IPC_UPDATE_EVENT_DOWNLOADED = 'update:downloaded' as const; // Screen wake lock. The renderer (slopsmith core app.js) asks the main process // to keep the display awake while a song plays — embedded Chromium does not // honour the renderer's navigator.wakeLock reliably, so we drive Electron's -// powerSaveBlocker here instead. See got-feedback/feedback#686. +// powerSaveBlocker here instead. See got-feedback/feedBack#686. export const IPC_POWER_SET_SCREEN_AWAKE = 'power:setScreenAwake' as const; diff --git a/src/main/main.ts b/src/main/main.ts index 6084461..d9aa563 100644 --- a/src/main/main.ts +++ b/src/main/main.ts @@ -1039,7 +1039,7 @@ async function startup(): Promise { ipcMain.handle(IPC_UPDATE_CHECK_NOW, () => updateManager.checkNow()); ipcMain.handle(IPC_UPDATE_APPLY, () => updateManager.applyAndRestart()); - // Keep the display awake while a song plays (got-feedback/feedback#686). The + // Keep the display awake while a song plays (got-feedback/feedBack#686). The // renderer toggles this via window.slopsmithDesktop.power.setScreenAwake on // play/pause; the single OS blocker is refcounted across renderers below. ipcMain.handle(IPC_POWER_SET_SCREEN_AWAKE, (event, keep: unknown) => { @@ -1107,7 +1107,7 @@ app.on('before-quit', () => { shutdown(); }); -// Screen wake lock (got-feedback/feedback#686). The single OS powerSaveBlocker is +// Screen wake lock (got-feedback/feedBack#686). The single OS powerSaveBlocker is // held while at least one renderer wants the screen awake (a song is playing in // it). Renderers are refcounted in a set so a multi-window setup (the main // window plus a same-origin popout) stays correct — one window pausing must not diff --git a/src/main/preload.ts b/src/main/preload.ts index 2772362..420324f 100644 --- a/src/main/preload.ts +++ b/src/main/preload.ts @@ -497,7 +497,7 @@ const slopsmithDesktopApi = { // Keep the OS display/screensaver awake while a song plays. slopsmith core // app.js calls setScreenAwake(true) on play and (false) on pause/stop; // embedded Chromium ignores the renderer's navigator.wakeLock, so the main - // process drives powerSaveBlocker instead (got-feedback/feedback#686). + // process drives powerSaveBlocker instead (got-feedback/feedBack#686). power: { setScreenAwake: (keep: boolean) => ipcRenderer.invoke(IPC_POWER_SET_SCREEN_AWAKE, keep), }, diff --git a/src/main/soundfont-manager.ts b/src/main/soundfont-manager.ts index 0b81350..d786803 100644 --- a/src/main/soundfont-manager.ts +++ b/src/main/soundfont-manager.ts @@ -20,7 +20,7 @@ import { restartPython } from './python'; // the download fast with a clear error rather than serving silently-wrong // bytes. Source + licence info live on the release page itself. const SOUNDFONT_URL = - 'https://github.com/got-feedback/feedback-soundfonts/releases/download/soundfonts-v1/FluidR3_GM.sf2'; + 'https://github.com/got-feedback/feedBack-soundfonts/releases/download/soundfonts-v1/FluidR3_GM.sf2'; const SOUNDFONT_SHA256 = '74594e8f4250680adf590507a306655a299935343583256f3b722c48a1bc1cb0'; const SOUNDFONT_EXPECTED_SIZE_MB = 142; diff --git a/src/main/update-manager.ts b/src/main/update-manager.ts index fc336d3..163605f 100644 --- a/src/main/update-manager.ts +++ b/src/main/update-manager.ts @@ -52,10 +52,10 @@ export type UpdateStatus = | { status: 'error'; channel: UpdateChannel; currentVersion: string | null; lastChecked: number | null; message: string }; // Repo the Velopack feed lives in. Matches the existing electron-builder -// release pipeline (got-feedback/feedback-desktop) — Velopack's GitHub +// release pipeline (got-feedback/feedBack-desktop) — Velopack's GitHub // loader looks for `releases..json` + `*-full.nupkg` / `*-delta.nupkg` // assets attached to releases here. -const FEED_URL = 'https://github.com/got-feedback/feedback-desktop'; +const FEED_URL = 'https://github.com/got-feedback/feedBack-desktop'; // Background poll cadence. Velopack downloads are cheap when there's nothing // new (HEAD on the channel manifest), so 4h is a reasonable trade-off diff --git a/src/renderer/settings.html b/src/renderer/settings.html index b78eb2b..4f06b34 100644 --- a/src/renderer/settings.html +++ b/src/renderer/settings.html @@ -22,7 +22,7 @@

Loading updater status…