<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ca">
	<id>http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=JJoanilloRouter</id>
	<title>JJoanilloRouter - Historial de revisió</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=JJoanilloRouter"/>
	<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=JJoanilloRouter&amp;action=history"/>
	<updated>2026-08-30T14:36:33Z</updated>
	<subtitle>Historial de revisió per a aquesta pàgina del wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=JJoanilloRouter&amp;diff=248282&amp;oldid=prev</id>
		<title>Joan: /* Scripts d'arrencada i aturada */</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=JJoanilloRouter&amp;diff=248282&amp;oldid=prev"/>
		<updated>2011-12-13T10:51:52Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Scripts d&amp;#039;arrencada i aturada&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Pàgina nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__TOC__&lt;br /&gt;
==Introducció==&lt;br /&gt;
'''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:&lt;br /&gt;
*posar una nota quan toques fent play-along sobre un midi&lt;br /&gt;
*fas play-along, però el sistema et corregeix quan toques notes falses o fora de temps. Serà útil per a ''Pere i el Llop''. Idea de fer un espectacle musical projectant efectes visuals per la pantalla... D'una banda sona un fitxer midi, i jo toco a sobre.&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
El codi està a /home/joan/projectes/jjoanillorouter.&lt;br /&gt;
&lt;br /&gt;
==Scripts d'arrencada i aturada==&lt;br /&gt;
''start_joanillorouter.sh'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
if [ -z `pidof -s jackd` ]; then&lt;br /&gt;
	/usr/bin/jackd -dalsa -dhw:0 -r44100 -p256 -n2 -Xseq &amp;amp; //targeta interna&lt;br /&gt;
	#/usr/bin/jackd -t 2000 -dalsa -dhw:2,0 -r44100 -p256 -n2 &amp;amp; //targeta externa&lt;br /&gt;
	sleep 6&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -z `pidof -s fluidsynth` ]; then&lt;br /&gt;
	/usr/local/bin/fluidsynth -s -i -a jack -m jack -l /home/joan/soundfonts/collections/Musica_Theoria_GM.sf2 &amp;amp;&lt;br /&gt;
	sleep 4&lt;br /&gt;
	jack_connect fluidsynth:l_00  system:playback_1&lt;br /&gt;
	jack_connect fluidsynth:r_00  system:playback_2&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -z `pidof -s jack-keyboard` ]; then&lt;br /&gt;
	/usr/bin/jack-keyboard &amp;amp;&lt;br /&gt;
	sleep 2&lt;br /&gt;
	jack_connect jack-keyboard:midi_out  fluidsynth:midi&lt;br /&gt;
fi&lt;br /&gt;
/usr/local/bin/jack-smf-player -n /home/joan/pere_i_llop/midi/Peter_And_The_Wolf.mid &amp;amp; &lt;br /&gt;
sleep 2&lt;br /&gt;
/home/joan/projectes/jjoanillorouter/jjoanillorouter &amp;amp;&lt;br /&gt;
sleep 2&lt;br /&gt;
&lt;br /&gt;
# no cal, està en el codi:&lt;br /&gt;
#jack_connect jack-smf-player:midi_out jjoanillorouter:in&lt;br /&gt;
#jack_connect jjoanillorouter:out fluidsynth:midi&lt;br /&gt;
#sleep 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
''stop_joanillorouter.sh'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
echo === kill jjoanillorouter, jack-smf-player, jack-keyboard, fluidsynth, jackd ===&lt;br /&gt;
echo &amp;quot;really quit? you have 3 seconds...&amp;quot;&lt;br /&gt;
sleep 3&lt;br /&gt;
echo &amp;quot;...killing session...&amp;quot;&lt;br /&gt;
killall -w jjoanillorouter&lt;br /&gt;
killall -w jack-smf-player&lt;br /&gt;
killall -w jack-keyboard&lt;br /&gt;
&lt;br /&gt;
killall fluidsynth&lt;br /&gt;
killall jackd&lt;br /&gt;
echo &amp;quot;...session dead.&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
''start_joanillorouter_parcial.sh'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
echo === kill jjoanillorouter, jack-smf-player ===&lt;br /&gt;
echo &amp;quot;really quit? you have 3 seconds...&amp;quot;&lt;br /&gt;
sleep 3&lt;br /&gt;
echo &amp;quot;...killing session...&amp;quot;&lt;br /&gt;
killall -w jjoanillorouter&lt;br /&gt;
killall -w jack-smf-player&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;...session dead.&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Autor}}, desembre 2011&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
</feed>