home - plugins - tutorials - showcase - history - manual - design


dublang tutorial

how to install dublang, SuperCollider and Tidal Cycles on Debian 12

tutorial on how to install dublang on Debian 12 (Bookworm) with SuperCollider and Tidal Cycles

first, install the Debian packages below

sudo apt update
sudo apt install -y \
  cabal-install \
  curl \
  g++ \
  gettext-base \
  ghc \
  git \
  jackd2 \
  lua5.1 \
  lua-luv \
  luarocks \
  neovim \
  sc3-plugins \
  supercollider

install dublang

sudo luarocks install dublang --deps-mode=none --lua-version=5.1

install Tidal

cabal update
cabal install tidal --lib

install SuperDirt

echo 'Quarks.install("SuperDirt", "v1.7.2"); 0.exit;' > superdirt.scd
sclang superdirt.scd

install vim-plug

curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
  https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

create the file $HOME/.config/nvim/init.vim

call plug#begin()
Plug 'https://codeberg.org/joenio/dublang-nvim.git', { 'branch': 'main' }

" rcarriga/nvim-notify provides a fancy way to display user messages
Plug 'rcarriga/nvim-notify'

" supercollider/scvim is needed for syntax highlight
Plug 'supercollider/scvim'
call plug#end()

open nvim and run :PlugInstall to install dublang-nvim

start the supercollider and tidalcycles services

dublang enable supercollider tidalcycles
dublang start supercollider tidalcycles

you can check the services status and logs

dublang status supercollider tidalcycles
dublang logs supercollider tidalcycles

now that all the requirements are installed let's use the dublang

nvim hello-world.dub

let's try a sine wave on SuperCollider, type into hello-world.dub

#!supercollider

{ SinOsc.ar(220, 330) }.play;

hit "CTRL + e", you migh listen some sound

inside the same file hello-world.dub include the following Tidal Cycles code

#!tidalcycles

d1 $ sound "cp"

hit "CTRL + e", now you might listen the clap and the sine wave together

the complete file hello-world.dub should looks like

#!supercollider

{ SinOsc.ar(220, 330) }.play;

#!tidalcycles

d1 $ sound "cp"

the video below demonstrates the expected results


home - plugins - tutorials - showcase - history - manual - design