Eight song sections by drums, bass, vocals, other and mix; launch and swap on the bar, right-click halves and quarters, per-cell waveforms with score blocks, a full-width score popup (drums, bass tab, melody with lyrics) played back through the piano and the sample kit, an NMF drum transcriber, Basic Pitch for pitched stems and Beat This! grid refinement when installed, beat jump and phase-flip buttons, a loading overlay for the grid, and the shared model install panel in INSTALL MODELS. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
85 lines
4.9 KiB
TOML
85 lines
4.9 KiB
TOML
# Makepad VJ — live performance app over the Asset Server: video program
|
|
# tiles with a two-slot crossfaded output window, two DJ music decks with an
|
|
# equal-power crossfader, and a polyphonic one-shot SFX pad bank.
|
|
#
|
|
# All networking (discovery, auth, catalog/search, blob download, event
|
|
# subscription, verified cache) lives in makepad-asset-client; this
|
|
# crate contains only UI, playback/crossfade orchestration and presentation
|
|
# adapters.
|
|
|
|
[package]
|
|
name = "makepad-vj"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
# src/bin/karaoke_align.rs makes this a two-binary package; without this,
|
|
# `cargo run -p makepad-vj` refuses to guess and demands --bin.
|
|
default-run = "makepad-vj"
|
|
|
|
[dependencies]
|
|
makepad-app-asset-server = { path = "../asset-server" }
|
|
makepad-widgets = { path = "../../widgets" }
|
|
makepad-score-view = { path = "../../libs/score_view" }
|
|
makepad-piano-model = { path = "../../libs/piano_model" }
|
|
makepad-drumkit = { path = "../../libs/drumkit" }
|
|
makepad-asset-data = { path = "../../libs/asset/data" }
|
|
# Own MP3 / Ogg Vorbis decoders for the music decks and SFX pads.
|
|
makepad-audio-decode = { path = "../../libs/audio_decode" }
|
|
# Four-stem source separation for the music decks' stem mix.
|
|
makepad-ai-stems = { path = "../../libs/ai/models/stems" }
|
|
# Whisper transcription of the separated vocals stem: karaoke subtitles.
|
|
makepad-ai-speech = { path = "../../libs/ai/models/speech", default-features = false, features = ["whisper"] } # whisper for lyrics alignment
|
|
makepad-system-speech = { path = "../../libs/system_speech" } # OS recognizer fallback for lyrics alignment
|
|
makepad-audio-lyrics = { path = "../../libs/audio_lyrics" }
|
|
# Stems + lyrics as server-stored side-channels: the encode/role/publish
|
|
# implementation shared with the asset-ui bake.
|
|
makepad-audio-sidechannels = { path = "../../libs/audio_sidechannels" }
|
|
makepad-asset-widgets = { path = "../../libs/asset/widgets" }
|
|
makepad-asset-client = { path = "../../libs/asset/client" }
|
|
# First-use model install (stem splitter + whisper): the asset-ai service's
|
|
# resumable, sha256-verified downloader. Featureless — the same slice the
|
|
# asset UI links — so none of the model backends come along.
|
|
makepad-ai-hub = { path = "../../libs/ai/hub", default-features = false, features = ["local"] }
|
|
# Hub-installed local models the DJ page runs in-process: Basic Pitch for
|
|
# the bass/melody scores, Beat This! for beats and downbeats; the shared
|
|
# install panel does download + licence acknowledgement.
|
|
makepad-ai-hub-ui = { path = "../../libs/ai/hub_ui" }
|
|
makepad-ai-notes = { path = "../../libs/ai/models/notes" }
|
|
makepad-ai-beats = { path = "../../libs/ai/models/beats" }
|
|
makepad-asset-creator = { path = "../../libs/asset/creator" } # DREAM runs execute here now
|
|
# The chat pane itself — ONE component, shared with the asset UI and the
|
|
# game sandbox: the session on the server's chat broker, the worker thread,
|
|
# the transcript with tool chips and the rate meter.
|
|
makepad-chat-ui = { path = "../../libs/chat_ui" }
|
|
# 3D program lane: skinned-GLB playback via the renderer.
|
|
makepad-render = { path = "../../libs/render" }
|
|
makepad-show-control = { path = "../../libs/show_control" }
|
|
makepad-gltf = { path = "../../libs/gltf" }
|
|
# Gaussian-splat program slots: XrSceneView offscreen pass + ViewSplat.
|
|
makepad-xr = { path = "../../xr" }
|
|
# Procedural placeholder thumbnails for bundled effect presets.
|
|
jpeg-encoder = { path = "../../libs/jpeg-encoder", version = "0.6.1" }
|
|
# WebP import: decoded once at import time, published as owned png bytes.
|
|
makepad-webp = { path = "../../libs/webp" }
|
|
# FULLY-LOCAL MODE: the VJ hosts its own Asset Server in-process, on
|
|
# loopback, when no external store is reachable. Same crate asset-ui and the
|
|
# sandbox embed — the VJ stays a THIN CLIENT over it either way, talking
|
|
# HTTP to 127.0.0.1 exactly as it talks to a remote store.
|
|
makepad-asset-store = { path = "../../libs/asset/store" }
|
|
# Import: real first-frame thumbnails for mp4/mov, spectrogram/waveform
|
|
# pictures for audio, and the dimension probes for stills.
|
|
makepad-asset-importer = { path = "../../libs/asset/importer" }
|
|
# REALTIME FRAME TWEENING: the whole in-betweener — the classical GPU
|
|
# optical-flow pass chain, the neural (Practical-RIFE v4.26) producer
|
|
# behind the same warp, the pair cache and the mode set. Extracted from
|
|
# this app; the VJ is still its reference user.
|
|
makepad-frametween = { path = "../../libs/frametween" }
|
|
# VARIABLE-FRAMERATE IMPORT: the `mkfl` payload the player reads, the
|
|
# classical (model-free) optical flow that fills it, and the all-intra
|
|
# re-encode. Shared with the enhance backend, which fills the same box from
|
|
# RIFE — one format, one parser, two producers.
|
|
makepad-video-flow = { path = "../../libs/video_flow" }
|
|
# ARCHIVE.ORG panel: search + swatch download of internet-archive video
|
|
# and stills; the panel imports a chosen file into the asset store.
|
|
makepad-archive-org = { path = "../../libs/archive_org" }
|
|
# The streaming swatch's MP4 index: per-sample byte ranges for range play.
|
|
makepad-mp4-index = { path = "../../libs/mp4_index" }
|