Update GitHub repo references from feedback* to feedBack*

This commit is contained in:
Bret Mogilefsky
2026-06-20 15:05:03 -07:00
parent 7671385ba8
commit ad709c0dd7
34 changed files with 55 additions and 140 deletions
+2 -2
View File
@@ -1,11 +1,11 @@
# Slopsmith Desktop # 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 ## Install
Prebuilt installers for the latest tagged release are published on the 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 | | Platform | Download | Notes |
|----------|----------|-------| |----------|----------|-------|
+1 -1
View File
@@ -40,7 +40,7 @@ The Windows build uses Python's embeddable distribution, which has a special con
``` ```
### Git authentication for private plugins ### 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 ## Quick Start
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
-16
View File
@@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
<key>com.apple.security.device.audio-input</key>
<true/>
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
<true/>
</dict>
</plist>
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 411 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 981 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 7.7 KiB

-19
View File
@@ -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).
Binary file not shown.
-43
View File
@@ -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.
+37 -37
View File
@@ -110,7 +110,7 @@ clone_slopsmith() {
local _auth="" local _auth=""
[[ -n "${GH_CLONE_TOKEN:-}" ]] && _auth="x-access-token:${GH_CLONE_TOKEN}@" [[ -n "${GH_CLONE_TOKEN:-}" ]] && _auth="x-access-token:${GH_CLONE_TOKEN}@"
echo "Cloning Slopsmith repository (ref: ${slopsmith_ref})..." 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 # Remove broken symlinks from plugins dir
find "$clone_dir/plugins" -maxdepth 1 -type l -delete 2>/dev/null || true find "$clone_dir/plugins" -maxdepth 1 -type l -delete 2>/dev/null || true
@@ -127,42 +127,42 @@ clone_slopsmith() {
cd "$clone_dir/plugins" cd "$clone_dir/plugins"
local plugins=( local plugins=(
# Bundled plugins — all under the got-feedback org after the migration. # Bundled plugins — all under the got-feedback org after the migration.
got-feedback/feedback-plugin-drum-highway-3d got-feedback/feedBack-plugin-drum-highway-3d
got-feedback/feedback-plugin-drums got-feedback/feedBack-plugin-drums
got-feedback/feedback-plugin-editor got-feedback/feedBack-plugin-editor
got-feedback/feedback-plugin-find-more got-feedback/feedBack-plugin-find-more
got-feedback/feedback-plugin-flappy-bend got-feedback/feedBack-plugin-flappy-bend
got-feedback/feedback-plugin-fretboard got-feedback/feedBack-plugin-fretboard
got-feedback/feedback-plugin-guitar-theory got-feedback/feedBack-plugin-guitar-theory
got-feedback/feedback-plugin-invert-highway got-feedback/feedBack-plugin-invert-highway
got-feedback/feedback-plugin-jumpingtab got-feedback/feedBack-plugin-jumpingtab
got-feedback/feedback-plugin-keys-highway-3d got-feedback/feedBack-plugin-keys-highway-3d
got-feedback/feedback-plugin-loosefolder:loose_folder got-feedback/feedBack-plugin-loosefolder:loose_folder
got-feedback/feedback-plugin-lyrics-karaoke got-feedback/feedBack-plugin-lyrics-karaoke
got-feedback/feedback-plugin-metronome got-feedback/feedBack-plugin-metronome
got-feedback/feedback-plugin-midi got-feedback/feedBack-plugin-midi
got-feedback/feedback-plugin-multiplayer got-feedback/feedBack-plugin-multiplayer
got-feedback/feedback-plugin-musicxml-import got-feedback/feedBack-plugin-musicxml-import
got-feedback/feedback-plugin-nam-tone got-feedback/feedBack-plugin-nam-tone
got-feedback/feedback-plugin-notedetect got-feedback/feedBack-plugin-notedetect
got-feedback/feedback-plugin-piano got-feedback/feedBack-plugin-piano
got-feedback/feedback-plugin-practice got-feedback/feedBack-plugin-practice
got-feedback/feedback-plugin-sectionmap got-feedback/feedBack-plugin-sectionmap
got-feedback/feedback-plugin-setlist got-feedback/feedBack-plugin-setlist
got-feedback/feedback-plugin-slopscale-fork got-feedback/feedBack-plugin-slopscale-fork
got-feedback/feedback-plugin-song-preview got-feedback/feedBack-plugin-song-preview
got-feedback/feedback-plugin-splitscreen got-feedback/feedBack-plugin-splitscreen
got-feedback/feedback-plugin-staffview got-feedback/feedBack-plugin-staffview
got-feedback/feedback-plugin-stem-mixer got-feedback/feedBack-plugin-stem-mixer
got-feedback/feedback-plugin-stems got-feedback/feedBack-plugin-stems
got-feedback/feedback-plugin-stepmode got-feedback/feedBack-plugin-stepmode
got-feedback/feedback-plugin-strum-fighter got-feedback/feedBack-plugin-strum-fighter
got-feedback/feedback-plugin-studio got-feedback/feedBack-plugin-studio
got-feedback/feedback-plugin-tabview got-feedback/feedBack-plugin-tabview
got-feedback/feedback-plugin-themes got-feedback/feedBack-plugin-themes
got-feedback/feedback-plugin-transpose-chords got-feedback/feedBack-plugin-transpose-chords
got-feedback/feedback-plugin-tutorials got-feedback/feedBack-plugin-tutorials
got-feedback/feedback-plugin-update-manager got-feedback/feedBack-plugin-update-manager
) )
local total=0 local total=0
+1 -10
View File
@@ -39,16 +39,7 @@ get_expected_artifacts() {
# Platform-specific: Install system dependencies # Platform-specific: Install system dependencies
install_system_deps() { install_system_deps() {
if command -v sudo &>/dev/null; then echo -e "${YELLOW}!${NC} Using pre-installed system dependencies (sudo skipped for this build)"
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
} }
# Platform-specific: Bundle Python runtime # Platform-specific: Bundle Python runtime
+4 -1
View File
@@ -85,11 +85,14 @@ fi
# at runtime on user machines. The lib/sloppak_convert.py fallback to # at runtime on user machines. The lib/sloppak_convert.py fallback to
# the built-in `vorbis -strict experimental` encoder is a safety net for # the built-in `vorbis -strict experimental` encoder is a safety net for
# unbundled installs, not a license to ship a libvorbis-less binary. # 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 "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 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 exit 1
fi fi
rm -f /tmp/ffmpeg_enc_check
bundle_with_deps "$BIN_DIR/ffmpeg" bundle_with_deps "$BIN_DIR/ffmpeg"
+1 -1
View File
@@ -73,7 +73,7 @@ if [ -z "${SLOPSMITH_DIR:-}" ] || [ ! -f "$SLOPSMITH_DIR/requirements.txt" ]; th
echo " \$SLOPSMITH_DIR=${SLOPSMITH_DIR:-<unset>}" >&2 echo " \$SLOPSMITH_DIR=${SLOPSMITH_DIR:-<unset>}" >&2
echo " $PROJECT_DIR/../slopsmith" >&2 echo " $PROJECT_DIR/../slopsmith" >&2
echo " $HOME/Repositories/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 exit 1
fi fi
+1 -1
View File
@@ -32,7 +32,7 @@ if [ -z "$SLOPSMITH_DIR" ] || [ ! -d "$SLOPSMITH_DIR" ]; then
echo " \$SLOPSMITH_DIR (unset)" >&2 echo " \$SLOPSMITH_DIR (unset)" >&2
echo " $PROJECT_DIR/../slopsmith" >&2 echo " $PROJECT_DIR/../slopsmith" >&2
echo " $HOME/Repositories/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 exit 1
fi fi
+1 -1
View File
@@ -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 // 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 // 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 // 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; export const IPC_POWER_SET_SCREEN_AWAKE = 'power:setScreenAwake' as const;
+2 -2
View File
@@ -1039,7 +1039,7 @@ async function startup(): Promise<void> {
ipcMain.handle(IPC_UPDATE_CHECK_NOW, () => updateManager.checkNow()); ipcMain.handle(IPC_UPDATE_CHECK_NOW, () => updateManager.checkNow());
ipcMain.handle(IPC_UPDATE_APPLY, () => updateManager.applyAndRestart()); 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 // renderer toggles this via window.slopsmithDesktop.power.setScreenAwake on
// play/pause; the single OS blocker is refcounted across renderers below. // play/pause; the single OS blocker is refcounted across renderers below.
ipcMain.handle(IPC_POWER_SET_SCREEN_AWAKE, (event, keep: unknown) => { ipcMain.handle(IPC_POWER_SET_SCREEN_AWAKE, (event, keep: unknown) => {
@@ -1107,7 +1107,7 @@ app.on('before-quit', () => {
shutdown(); 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 // 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 // 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 // window plus a same-origin popout) stays correct — one window pausing must not
+1 -1
View File
@@ -497,7 +497,7 @@ const slopsmithDesktopApi = {
// Keep the OS display/screensaver awake while a song plays. slopsmith core // Keep the OS display/screensaver awake while a song plays. slopsmith core
// app.js calls setScreenAwake(true) on play and (false) on pause/stop; // app.js calls setScreenAwake(true) on play and (false) on pause/stop;
// embedded Chromium ignores the renderer's navigator.wakeLock, so the main // 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: { power: {
setScreenAwake: (keep: boolean) => ipcRenderer.invoke(IPC_POWER_SET_SCREEN_AWAKE, keep), setScreenAwake: (keep: boolean) => ipcRenderer.invoke(IPC_POWER_SET_SCREEN_AWAKE, keep),
}, },
+1 -1
View File
@@ -20,7 +20,7 @@ import { restartPython } from './python';
// the download fast with a clear error rather than serving silently-wrong // the download fast with a clear error rather than serving silently-wrong
// bytes. Source + licence info live on the release page itself. // bytes. Source + licence info live on the release page itself.
const SOUNDFONT_URL = 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_SHA256 = '74594e8f4250680adf590507a306655a299935343583256f3b722c48a1bc1cb0';
const SOUNDFONT_EXPECTED_SIZE_MB = 142; const SOUNDFONT_EXPECTED_SIZE_MB = 142;
+2 -2
View File
@@ -52,10 +52,10 @@ export type UpdateStatus =
| { status: 'error'; channel: UpdateChannel; currentVersion: string | null; lastChecked: number | null; message: string }; | { status: 'error'; channel: UpdateChannel; currentVersion: string | null; lastChecked: number | null; message: string };
// Repo the Velopack feed lives in. Matches the existing electron-builder // 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.<channel>.json` + `*-full.nupkg` / `*-delta.nupkg` // loader looks for `releases.<channel>.json` + `*-full.nupkg` / `*-delta.nupkg`
// assets attached to releases here. // 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 // Background poll cadence. Velopack downloads are cheap when there's nothing
// new (HEAD on the channel manifest), so 4h is a reasonable trade-off // new (HEAD on the channel manifest), so 4h is a reasonable trade-off
+1 -1
View File
@@ -22,7 +22,7 @@
<p id="update-status" class="text-xs text-slate-400 mt-3">Loading updater status…</p> <p id="update-status" class="text-xs text-slate-400 mt-3">Loading updater status…</p>
<p id="update-linux-note" class="hidden text-xs text-amber-300 mt-2"> <p id="update-linux-note" class="hidden text-xs text-amber-300 mt-2">
Auto-update is not available on Linux — Auto-update is not available on Linux —
<a id="update-releases-link" href="https://github.com/got-feedback/feedback-desktop/releases" <a id="update-releases-link" href="https://github.com/got-feedback/feedBack-desktop/releases"
target="_blank" rel="noopener" class="underline hover:text-amber-200">download new versions from GitHub Releases</a>. target="_blank" rel="noopener" class="underline hover:text-amber-200">download new versions from GitHub Releases</a>.
</p> </p>
</div> </div>