Vai al contenuto

Creare un groove#

Un groove è una voce del dizionario GROOVES in backingtrack/grooves.py e descrive una battuta di 4/4: cosa fa la chitarra, cosa fa la batteria, il basso e il suono.

"funk/disco": g("Disco funk: cassa in quattro, hi-hat aperto in levare",   # descrizione (menu e --help)
                "clean",                                    # ampli: clean blues twang crunch high
                pat("dudUdudUdudUdudU", 92, 70, dur=0.22),  # chitarra: 16 caratteri = sedicesimi
                DISCO_BEAT,                                 # batteria: [(beat, nota GM, velocity)]
                FUNK_TURN,                                  # variazione ogni 4 battute
                bass="octave",                              # stile del basso
                double=True,                                # chitarra doppiata L/R
                voicing="triad"),                           # forma degli accordi

Chitarra — pat("...") scrive il ritmo come testo: 8 caratteri = ottavi, 12 = terzine, 16 = sedicesimi (gli spazi si ignorano). Maiuscola = forte, minuscola = piano.

Carattere Colpo Carattere Colpo
D / U pennata giù / su X chop (corde alte stoppate)
M / N giù / su stoppate (palm mute) P / p power chord / power chord stoppato
J accordo jazz a 4 note B / F tonica / quinta al basso
. pausa - tiene la nota precedente

Per i bicordi boogie c'è boogie("55665566") (tonica + 5a/6a/7a). In alternativa si scrive la lista degli eventi: (beat, tipo, velocity[, durata]), con beat da 0 a 4 (.5 = levare, spostato dallo swing; T1/T2 = terzine).

Batteria — lista di (beat, nota, velocity) con le costanti KICK, SNARE, STICK, HH, OHH, PEDAL, LT, MT, HT, CRASH, RIDE, BELL e gli aiuti hat8(), hat16(), hits(nota, [beat]). Si usano solo note presenti nel kit Salamander (niente cowbell o clap: c'è BELL, la campana del ride).

Altri parametri di g(): turn (variazione ogni 4 battute) e fill (rullata di fine sezione), bass (eighths rootfifth stop slow walk two octave funk reggae quarters dotted tumbao), swing (0–1), double, slap (slapback), voicing (barre open jazz triad), mute_len (durata delle stoppate).

Poi: il nome col prefisso dello stile (funk/…) lo mette nel menu giusto della GUI; aggiungi la descrizione inglese in GROOVES_EN (backingtrack/locale_en.py); python3 -m unittest discover tests controlla che tutti i groove si arrangino senza errori e siano tradotti; python3 docs/make_docs.py rigenera le tabelle dei groove nelle due lingue. Un nuovo stile richiede anche STYLE_EMOJI/STYLE_NAMES in gui.py e il logo (docs/make_images.py).