JJoanilloRouter

De Wikijoan
Dreceres ràpides: navegació, cerca

Contingut

Introducció

JJoanilloRouter és un enrutador que afegeix un delay de 1 segon. Pot enrutar qualsevol event midi que li arribi, i l'enruta per defecte cap al fluidsynth. Està pensat per enrutar els events midi que vénen del smf-jack-player, i aixó poder escoltar un fitxer midi (amb retràs). És tan sols una aplicació acadèmica, sense cap utilitat, però és de fet el primer pas per a la vella aspiració de tenir una aplicació que et posi una nota quan toques amb el WX5 (o qualsevol altre controlador). És el primer pas per a un obkectiu doble:

Jo tinc connectat a l'entrada del jjoanillorouter el meu player de SMF (per ex, jack_smf_player), i el meu controlador (per ex, W5). La idea és que jo toco la melodia, i la melodia del SMF ha de quedar muda. Fer només això també seria trivial. Ara bé, té truco, el sistema ha de permetre subsanar els errors que faci d'interpretació. La idea és comparar el que li arriba pel canal lead del SMF i el que li arriba pel WX5 (que idealment hauria de ser el mateix). Si ho faig bé, això ha de donar preferència a tocar les meves notes (en comptes de les del SMF), i subsanar errors que pugui fer (quan toco per error una nota que no s'espera, aquesta no s'envia a la sortida, i es toca la nota correcta). Per tant, enganyant-me a mi mateix (i al públic, clar), la interpretació ha de ser correcta. A més, ha de ser fàcil fer un algorisme per posar nota a una interpretació (errors que he comès, notes fora de temps).

Tot això que explico està molt bé, però és una altra història. jjoanillorouter és tan sols un enrutador acadèmic. Aquest programa té sentit per ell mateix. Després ja pot canviar de nom i orientar-se a l'espectacle (les notes del meu controlador serviran per generar events gràfics i efectes visuals).

El codi està a /home/joan/projectes/jjoanillorouter.

Scripts d'arrencada i aturada

start_joanillorouter.sh:

#!/bin/bash

if [ -z `pidof -s jackd` ]; then
	/usr/bin/jackd -dalsa -dhw:0 -r44100 -p256 -n2 -Xseq & //targeta interna
	#/usr/bin/jackd -t 2000 -dalsa -dhw:2,0 -r44100 -p256 -n2 & //targeta externa
	sleep 6
fi

if [ -z `pidof -s fluidsynth` ]; then
	/usr/local/bin/fluidsynth -s -i -a jack -m jack -l /home/joan/soundfonts/collections/Musica_Theoria_GM.sf2 &
	sleep 4
	jack_connect fluidsynth:l_00  system:playback_1
	jack_connect fluidsynth:r_00  system:playback_2
fi

if [ -z `pidof -s jack-keyboard` ]; then
	/usr/bin/jack-keyboard &
	sleep 2
	jack_connect jack-keyboard:midi_out  fluidsynth:midi
fi
/usr/local/bin/jack-smf-player -n /home/joan/pere_i_llop/midi/Peter_And_The_Wolf.mid & 
sleep 2
/home/joan/projectes/jjoanillorouter/jjoanillorouter &
sleep 2

# no cal, està en el codi:
#jack_connect jack-smf-player:midi_out jjoanillorouter:in
#jack_connect jjoanillorouter:out fluidsynth:midi
#sleep 1

stop_joanillorouter.sh:

#!/bin/bash
echo === kill jjoanillorouter, jack-smf-player, jack-keyboard, fluidsynth, jackd ===
echo "really quit? you have 3 seconds..."
sleep 3
echo "...killing session..."
killall -w jjoanillorouter
killall -w jack-smf-player
killall -w jack-keyboard

killall fluidsynth
killall jackd
echo "...session dead."

start_joanillorouter_parcial.sh:

#!/bin/bash
echo === kill jjoanillorouter, jack-smf-player ===
echo "really quit? you have 3 seconds..."
sleep 3
echo "...killing session..."
killall -w jjoanillorouter
killall -w jack-smf-player

echo "...session dead."

creat per Joan Quintana Compte, desembre 2011

Eines de l'usuari
Espais de noms
Variants
Accions
Navegació
Institut Jaume Balmes
Màquines recreatives
CNC
Informàtica musical
joanillo.org Planet
Eines