🎛️

RackDroid

Sintetizzatore modulare per Android — Manuale d'uso

Port Android di VCV Rack: costruisci patch modulari toccando lo schermo, con moduli di base integrati e pacchetti aggiuntivi installabili al volo.

Versione 0.1.2  ·  luglio 2026
Comprende: funzionalità dell'app, caricamento dei plugin, creazione di plugin

Indice

  1. Cos'è RackDroid
  2. Per iniziare — il rack e i cavi
  3. La barra degli strumenti
  4. La palette dei moduli
  5. I menu (File · Modifica · Visualizza · Motore · Aiuto)
  6. Tastiera musicale e MIDI
  7. Registrazione audio
  8. Tutorial e guide
  9. I moduli di base
  10. Caricare plugin (.rdmod)
  11. Creare un plugin
  12. Aggiornare l'app
  13. Nota su Google Play

1 · Cos'è RackDroid

RackDroid è un port per Android di VCV Rack, il celebre sintetizzatore modulare virtuale. Colleghi moduli (oscillatori, filtri, inviluppi, sequencer…) con dei cavi virtuali per creare suoni e patch, esattamente come in un rack modulare hardware — ma sul telefono, con un'interfaccia pensata per il tocco.

2 · Per iniziare — il rack e i cavi

All'avvio trovi una patch dimostrativa già funzionante: l'audio è già configurato e suona appena tocchi.

Gesti principali

Colore dei cavi: la loro tensione (quanto “cadono”) e opacità si regolano dal menu Visualizza — vedi capitolo 5.

Parcheggio cavi

Su un telefono non puoi scorrere il rack mentre trascini un cavo, quindi collegare due moduli che non stanno mai insieme sullo schermo sarebbe quasi impossibile. La barra di parcheggio sul bordo sinistro dà a un capo del cavo un posto dove aspettare: lascialo in un buco, scorri dove vuoi, poi tiralo fuori sulla porta di destinazione. È attiva all'avvio e si accende/spegne dal pulsante parcheggio cavi nella barra dei tool.

3 · La barra degli strumenti

In alto galleggia una card a vetro con due righe: i menu e i tool. La freccetta centrale in basso la richiude lasciando solo una linguetta (toccala per riaprirla); si richiude anche automaticamente quando apri un tutorial, per liberare lo schermo.

Riga dei menu

FILEMODIFICAVISUALIZZA MOTOREAIUTO

Riga dei tool (icone)

IconaFunzione
GrigliaPalette dei moduli: mostra/nasconde la barra dei moduli in basso.
DownloadGestore moduli: installa pacchetti .rdmod da file e disinstalla quelli installati.
Presa/cavoParcheggio cavi: mostra/nasconde la barra dove un capo del cavo aspetta mentre scorri (attiva all'avvio). Vedi capitolo 2.
TavolozzaTema: cambia i colori dell'interfaccia (barra, menu, fogli).
↶ / ↷Annulla / Ripeti l'ultima azione.
Riquadro tratteggiatoSelezione multipla: mentre è accesa (ambra) un tocco su un modulo lo aggiunge alla scelta. Vedi sotto.
Fogli sovrappostiCopia moduli selezionati.
AppuntiIncolla moduli copiati, vicino alla vista corrente.
Cestino (rosso)Elimina i moduli selezionati. Chiede sempre conferma e dice quanti stanno per sparire.
Lucchetto contornoBlocca layout: congela posizione dei moduli e cavi (le manopole restano attive).
Lucchetto pienoBlocca tutto: congela anche i parametri. Attivo = ambra. Stato salvato tra le sessioni.
PianoMIDI: cerca e collega controller MIDI Bluetooth LE.
TastieraTastiera musicale a schermo (capitolo 6).
Cerchio rossoRegistra l'uscita audio su file WAV (capitolo 7). Diventa un quadrato di stop.
Info / crediti dell'app.

Scegliere più moduli

Il pulsante selezione multipla cambia cosa fa un dito sul rack. Mentre è acceso:

I moduli scelti prendono un alone rosso tutt'intorno: il pannello resta leggibile, a differenza di un velo colorato sopra la grafica. Da qui puoi copiarli, incollarli o eliminarli con i pulsanti accanto.

Attenzione: il cestino chiede sempre conferma e ti dice quanti moduli stanno per sparire, ma se sbagli c'è comunque annulla.

4 · La palette dei moduli

La barra in basso è il modo rapido per aggiungere moduli. In fondo trovi i chip delle categorie; toccandone uno si apre sopra una striscia scorrevole di anteprime dei moduli di quella categoria.

VCOLFOVCFVCA ENVSEQDRUMMIX FXNOISEQNTMIDIUTIL

Aggiungere un modulo

Info sul modulo (ⓘ)

Ogni anteprima ha un pallino in alto a destra: toccandolo si apre una scheda con nome, marca, plugin, tag e descrizione del modulo (cos'è e cosa fa).

Chiudere il menu aperto

Scorri verso il basso sulla striscia dei moduli per richiuderla (la barra dei chip resta al suo posto). In alternativa tocca di nuovo il chip attivo. Lo scorrimento orizzontale e il trascinamento verso l'alto sul rack non ne sono influenzati.

5 · I menu

I menu si aprono come pannelli dal basso. Si chiudono toccando fuori, con “indietro”, oppure scorrendoli verso il basso.

MenuCosa contiene
FileNuovo, apri, salva la patch; condividi la patch (foglio di sistema).
ModificaAnnulla / ripeti e comandi di modifica.
VisualizzaTensione dei cavi e Opacità dei cavi (cursori 0–100%), più altre opzioni di visualizzazione.
MotoreImpostazioni del motore audio (frequenza di campionamento, ecc.).
AiutoGuida e libreria dei tutorial.
Tensione e opacità dei cavi: nel menu Visualizza regoli quanto i cavi si incurvano e quanto sono trasparenti. I valori restano salvati.

6 · Tastiera musicale e MIDI

Il tasto Tastiera apre in basso una tastiera di pianoforte a schermo: le note suonano attraverso il driver “Computer keyboard/mouse” di Rack (1V/oct + gate). Le frecce ‹ › ai lati spostano l'ottava; il pulsante in alto a destra la chiude.

Il tasto MIDI avvia la ricerca di controller MIDI Bluetooth LE: seleziona il dispositivo per collegarlo e suonare i moduli MIDI.

7 · Registrazione audio

Il tasto Registra cattura l'uscita audio in un file WAV. Ripremendolo la registrazione si ferma e il file viene salvato in Documents/RackDroid/, raggiungibile da qualunque file manager (nessun permesso speciale richiesto).

8 · Tutorial e guide

Al primo avvio parte il tour dell'interfaccia a spotlight: venti passi che illuminano a turno le due righe di strumenti, i lucchetti, la palette, il gestore dei moduli e il parcheggio cavi, spiegano i gesti del rack e dedicano un passo a ciascuno dei cinque menu — File, Modifica, Visualizza, Motore e Aiuto — dicendo cosa c'è dentro e poi aprendolo davvero, con il tempo di guardarlo. Il tour fa quello che racconta: inquadra da solo i tuoi moduli, apre la palette, sposta un modulo, ingrandisce e scorre il rack, traccia un cavo da un'uscita a un ingresso con i jack compatibili accesi, e accende il tasto della selezione multipla mettendo l'alone rosso su un paio di moduli per muoverli insieme. È una dimostrazione, non una modifica: nessun cavo viene collegato davvero, alla fine ogni modulo torna alla posizione esatta di prima, la selezione viene tolta e la vista torna a zoom e posizione di partenza. Puoi rivederlo quando vuoi, anche sopra una patch a cui stai lavorando, da Aiuto ▸ Rivedi il tour.

Dal menu Aiuto apri poi la Guida (indice per argomenti) e la libreria dei tutorial: 30 costruzioni guidate passo-passo su 5 livelli, dalle basi (primo suono, filtro, inviluppo) a tecniche avanzate (hard sync, Karplus–Strong, patch generative, droni ambient). Le schede dei tutorial appaiono in alto per non coprire la palette.

9 · I moduli di base

Sempre presenti nell'app, senza installare nulla:

PacchettoModuliContenuto
CoreintegratiAudio, MIDI e I/O del motore.
Fundamental39VCO, VCF, VCA, ADSR, LFO, SEQ-3, Delay, Mixer, Scope, Quantizer, Noise, S&H…
RackDroid Drums14Voci di batteria/percussioni originali nella tradizione dell'808.

Tutti gli altri pacchetti (Bogaudio, Valley, Audible, Impromptu, Befaco, Grande, HetrickCV, ecc.) si scaricano e si installano come .rdmod — vedi capitolo seguente.

10 · Caricare plugin (.rdmod)

Un pacchetto di moduli è un file .rdmod. Puoi aggiungerne quanti vuoi senza aggiornare l'app. Ci sono due modi.

A · Dal gestore moduli (consigliato, in tempo reale)

  1. Tocca l'icona Download nella barra strumenti → si apre il gestore Moduli.
  2. Tocca “+ Installa da file…”: si apre il selettore file del telefono.
  3. Scegli uno o più file .rdmod (da Download o ovunque siano).
  4. Vengono copiati e caricati subito: i nuovi moduli compaiono nella palette, senza riavvio.

B · Dalla cartella Moduli

Copia i file .rdmod in questa cartella (visibile in qualsiasi file manager, nessun permesso richiesto) e riavvia l'app:

Android/data/org.rackdroid/files/Modules/

Disinstallare

Nel gestore Moduli ogni pacchetto installato ha un pulsante Disinstalla. I moduli spariscono subito dalla palette; quelli che avevi già inserito nel rack restano attivi fino al riavvio dell'app (un modulo nativo non può essere rimosso da un motore in esecuzione).

Come funziona (dietro le quinte)

Android vieta di caricare una libreria nativa .so direttamente dalla memoria condivisa (namespace del linker + W^X). Quindi l'app:

  1. estrae ogni pacchetto nella memoria privata dell'app (filesDir/user/plugins/<slug>);
  2. rende il .so di sola lettura e chiama System.load() di Java (l'unico modo per soddisfare il namespace del linker);
  3. passa la libreria già caricata al lato nativo (nativeLoadUserPlugindlopen(RTLD_NOLOAD) → registrazione).

11 · Creare un plugin

Un plugin è compatibile con RackDroid se è compilato contro lo stesso ABI del motore rack_engine dell'app (arm64-v8a). Un .so di terze parti o con ABI diverso non verrà caricato (viene saltato).

Struttura di un .rdmod

È un semplice zip con al primo livello:

plugin.json          # il manifest del pacchetto (deve avere "slug")
res/…                # pannelli SVG e altri asset caricati a runtime
libplugin_<nome>.so   # la libreria nativa, per QUESTO motore RackDroid

Il manifest plugin.json

{
  "slug": "MioPack",
  "name": "Il mio pacchetto",
  "version": "2.0.0",
  "license": "GPL-3.0-or-later",
  "brand": "MioBrand",
  "author": "Nome",
  "description": "Descrizione del pacchetto",
  "modules": [
    {
      "slug": "MioVCO",
      "name": "Mio VCO",
      "description": "Oscillatore controllato in tensione",
      "tags": ["Oscillator"]
    }
  ]
}

Lo slug del plugin e dei moduli non deve contenere /. I tags determinano in quale categoria della palette appare il modulo (es. Oscillator→VCO, Filter→VCF).

Compilare la libreria (CMake, contro rack_engine)

Il codice del modulo è C++ VCV Rack standard. Il target si aggiunge come libreria condivisa collegata a rack_engine:

add_library(plugin_mio SHARED ${MIO_SOURCES})
target_link_libraries(plugin_mio PUBLIC rack_engine)
target_compile_options(plugin_mio PRIVATE
    -I${MIO_DIR}/src -O3 -funsafe-math-optimizations)

Costruito con la NDK per arm64-v8a (STL c++_shared), come l'app.

Impacchettare

Metti insieme il .so (stripato), il plugin.json e la cartella res/, e comprimi in zip:

mkdir pack && cd pack
cp .../obj/arm64-v8a/libplugin_mio.so .
cp path/to/mio/plugin.json .
cp -r path/to/mio/res .
zip -r ../MioPack.rdmod .

Nel repository lo script scripts/make_rdmods.sh automatizza questo per tutti i pacchetti non di base, prendendo il .so dalla cartella di build di CMake e mappando le risorse.

ABI: il .so deve essere costruito con la stessa versione del motore rack_engine dell'app installata. Un mismatch = pacchetto saltato. Anche un pacchetto con lo stesso slug di uno già presente (es. un modulo di base) viene saltato.

12 · Aggiornare l'app

La versione che scarichi da GitHub può controllare da sola se ne è uscita una più recente. Te lo chiede una volta, al primo avvio dopo il giro introduttivo: se rifiuti non si collega mai, e puoi cambiare idea più tardi da Controlla aggiornamenti. Se accetti, guarda una volta al giorno e ti propone la nuova versione con le sue note; scaricarla e installarla resta una tua scelta, e Android chiede comunque conferma prima di installare.

Cosa viene inviato: nulla su di te. La richiesta va a api.github.com, che in quel momento vede il tuo indirizzo IP — come per qualsiasi sito. Nessun account, nessun identificativo, nessuna statistica d'uso.

La versione pubblicata su Google Play non ha questa funzione e non chiede nemmeno il permesso di rete: lì è lo store a occuparsi degli aggiornamenti.

13 · Nota su Google Play

Distribuire codice nativo che viene eseguito da fuori Google Play viola le policy di Play. Perciò la cartella di side-load e l'installazione da file sono pensate per la build sideload / GitHub. Una build per Play dovrebbe consegnare i pacchetti extra tramite Play asset packs / feature delivery (è Play a servire il .so), riusando lo stesso caricatore “estrai in memoria privata + System.load”.

RackDroid è un port di VCV Rack (GPLv3). Grafica e moduli originali dove indicato. Progetto: github.com/nowheel/RackDroid  ·  Manuale generato per la versione 0.1.2.