Skip to content

A complete system for automatically organizing Splice samples into a structured library on download.

License

Notifications You must be signed in to change notification settings

erelsop/splice-alt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Splice Alt - Automatic Sample Library Organizer

A complete system for automatically organizing Splice samples into a structured library on download. Splice Alt consists of a Rust daemon that watches for new downloads and a browser extension that captures metadata from Splice.

Features

  • Automatic detection of downloaded samples
  • Smart organization into categories
  • SQLite database for metadata and deduplication
  • Tag-based category mapping
  • Duplicate prevention using file hashing
  • Lightweight background operation
  • Robust error handling and recovery
  • Browser integration for metadata capture

Installation

Prerequisites

  • Rust (latest stable version)
  • Linux system with inotify support
  • Chrome or Firefox browser

Automated Setup

Run the installation script from the project root:

git clone https://github.com/erelsop/splice-alt.git
cd splice-alt
./install.sh

The script will:

  1. Build the Rust daemon
  2. Package the browser extension
  3. Optionally install the daemon to /usr/local/bin/

Install Browser Extension

After running install.sh, install the packaged extension (frontend/splice-alt-extension-v1.0.0.zip):

Firefox:

  • Open about:debugging
  • Click "This Firefox"
  • Click "Load Temporary Add-on"
  • Select manifest.json from the extension package

Chromium (Chrome, Edge, etc.):

  • Open chrome://extensions/
  • Enable "Developer mode"
  • Drag and drop the .zip file onto the page

Daemon Management

Start Background Daemon

# Recommended approach
./target/release/splice-alt-daemon run --daemonize

# Or traditional approach
./target/release/splice-alt-daemon start

Stop Background Daemon

./target/release/splice-alt-daemon stop

Check Daemon Status

./target/release/splice-alt-daemon status

Usage

  1. Start the daemon using one of the commands above
  2. Configure the browser extension:
    • Click the Splice Alt extension icon
    • Enable "Extension Enabled" and "Auto-create JSON files"
  3. Download samples from Splice.com - they will be automatically organized into ~/Music/Samples/SpliceLib/

The daemon logs activity to ~/.cache/splice-alt-daemon.log and stores its process ID in ~/.cache/splice-alt-daemon.pid.

Directory Structure

Samples are organized by category and pack:

~/Music/Samples/SpliceLib/
├── Category1/
│   └── Pack Name/
│       └── sample_file.wav
├── Category2/
│   └── Pack Name/
│       └── sample_file.wav
└── ...

Default locations:

  • Watch directory: ~/Downloads
  • Library directory: ~/Music/Samples/SpliceLib
  • Database: ~/.local/share/splice-alt/samples.db
  • Log file: ~/.cache/splice-alt-daemon.log

Database Schema

The SQLite database stores comprehensive metadata:

CREATE TABLE samples (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    file_path TEXT NOT NULL UNIQUE,
    pack_name TEXT NOT NULL,
    filename TEXT NOT NULL,
    file_hash TEXT NOT NULL UNIQUE,
    bpm INTEGER,
    audio_key TEXT,
    mapped_category TEXT NOT NULL,
    tags TEXT, -- JSON array
    date_downloaded TEXT NOT NULL,
    sample_id TEXT,
    artist_name TEXT,
    genre TEXT,
    duration_ms INTEGER,
    sample_rate INTEGER,
    bit_depth INTEGER,
    file_size INTEGER,
    download_url TEXT,
    preview_url TEXT,
    created_at TEXT DEFAULT CURRENT_TIMESTAMP
);

CREATE INDEX idx_samples_hash ON samples(file_hash);
CREATE INDEX idx_samples_category ON samples(mapped_category);
CREATE INDEX idx_samples_pack ON samples(pack_name);
CREATE INDEX idx_samples_tags ON samples(tags);

Legal Notice

This project is not affiliated with, endorsed by, or connected to Splice in any official way. It is a personal utility that helps users locally organize sample files they have legally downloaded via their own Splice accounts. This tool does not access, modify, or interact with Splice systems beyond observing client-side metadata and file downloads already authorized to the user. No Splice content is redistributed. Use of this tool assumes that the user adheres to Splice's Terms of Use.

This project is dedicated to the public domain under the CC0 1.0 Universal License.

About

A complete system for automatically organizing Splice samples into a structured library on download.

Topics

Resources

License

Stars

Watchers

Forks