chino - scripted meta-applications for linux...
TRANSCRIPT
![Page 1: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/1.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Chinoscripted meta-applications for Linux audio
David Adler
Linux Audio Conference 2013
![Page 2: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/2.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Modular sessions
Some programs, interconnected via:
I Jack audio
I Jack Midi
I Alsa Midi
![Page 3: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/3.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Connection graphs
Assume a system with
P port-types, each havingOp output ports andIp input ports.
The number of all possible connection graphs Ω then is
Ω = 2∑P
p=1 Op Ip .
![Page 4: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/4.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Connection graphs
P = 2 two port types (audio and Midi)Oaudio = 60 audio outIaudio = 40 audio inOMidi = 10 Midi outIMidi = 24 Midi in
Ω = 260×40+10×24
≈ 5.2383× 10794
523827811845807022473069412697450810840202138552146390343923852550252328373526611242634304443288124903155859584171121522190194441642368311822810617101824229763752012138871400338141475333310613748352834274204391111543458179386779419426670226906155229104912130390217334114948465567997725583506626760079327284282190636044973095394755719877387745505253662881688145891886121778965082712737352645959266197863386104570006162250453485561771001996794496786970643305368320196449988307824326955983391060400307901108132237578916039599486559805293158850454806147553660894103328655100818563235679005646554430079461326485138236231102341411657846260093852444901136796765137831897844865351140917190023079525082293317414748034454180435686945722914901460093887155049566784630708713973253922095471423612774856523776
![Page 5: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/5.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Session management. . .
. . . is desirable.
![Page 6: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/6.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
History
Once upon a time [...]
LADCCA (2003)Linux Audio Developers Configuration and Connection APIhttps://savannah.nongnu.org/projects/ladcca
superseded by
LASH (2005)Linux Audio Session Handlerhttps://savannah.nongnu.org/projects/lash
which is still alive.
![Page 7: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/7.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
JACK Session
http://trac.jackaudio.org/wiki/WalkThrough/User/jack_session
Frontends:
I pyjacksm
I QjackCtl
I and . . .
In QJackCtl, non-compliant applications can beadded as “Infra-clients”.
![Page 8: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/8.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
LADISH
Linux Audio Desktop Integration Session Handlerhttp://ladish.org
LASH’s successor,incorporates both LASHand JACK Session.
Frontend:
I patchage
Non-compliant applications can beadded as “Level 0-clients”.
![Page 9: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/9.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
NSM
Non Session Managerhttp://non.tuxfamily.org/wiki/Non%20Session%20Manager
Applications not supporting the protocol can beadded as “NSM Proxy-clients”.
![Page 10: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/10.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Chino vs. the others
others Chino
any connection graph yes no
any application no1 yes2
central saving point yes no
preparation required no yes
GUI yes no
1LADISH, Qjackctl and NSM allow to include non-compliantapplications.
2If the application is sufficiently scriptable.
![Page 11: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/11.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Concepts
![Page 12: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/12.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Presets and sessions
Chino does nothing,
the preset does it all,
the preset is just another session.
Chino
preset 1 preset 2
session A session B session C
the meta-application
"patch files" of the meta-application
![Page 13: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/13.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Templates, inheritance of files
Chino
preset 1 preset 2
session A
session B
session C
template preset
![Page 14: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/14.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Applications
A preset defines a number of applications.
An application—in Chino—consists of
I a programI the way it’s used, defined by
I application files – patch files, configuration files, dirs,etc.
I an application library – a textfile (Bash) defining howthe program gets started and interconnected.
![Page 15: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/15.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Methods
Categories of similar applications, defined viamethod libraries.
Method types:
unique methods channel methods
jnoise
seq24
qmidiarp
ardour
ch 9
ch 8 yoshimi
ch 7 ams
ch 6
ch 5 ams
ch 4 yoshimi
ch 3 yoshimi
ch 2
ch 1
![Page 16: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/16.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Method types, methods and applications
unique
misc
...
channel
instr
effect
...
yosh
ams
...
reverb
...
ardour
seq24
...
hard-coded(in Chino)
user-defined(via preset)
method types methods applications
![Page 17: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/17.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Method IDs and application IDs
unique
uq_misc
...
channel
ch_instr
ch_effect
...
chin_yosh
chin_ams
...
chef_reverb
...
uqmi_ardour
uqmi_seq24
...
hard-coded(in Chino)
user-defined(via preset)
method types methods applications
![Page 18: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/18.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Application files
are kept in <application ID> directories below thesession’s base directory.
Presets must contain all application files.
Sessions will contain the ones they (ever) require(d).
![Page 19: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/19.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Libraries
are kept in a libs directory below the session’s basedirectory.
Presets must contain all libraries.
Sessions may optionally hold libraries.
A ”root-library”, called <session name>-listlib, holds alist of all allowed methods and applications.
![Page 20: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/20.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Inheritance of libraries
Chino
preset 1 preset 2
session A
session B
session C
template preset
![Page 21: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/21.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Dependencies
program + use case⇒ dependencies
![Page 22: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/22.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Dependencies
![Page 23: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/23.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Dependencies
![Page 24: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/24.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Dependencies – port-groups
![Page 25: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/25.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Dependencies – port-groups
![Page 26: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/26.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Dependencies – ambiguous provides
![Page 27: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/27.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Dependencies – ambiguous provides
![Page 28: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/28.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Dependencies – methods
![Page 29: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/29.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Dependencies – methods
![Page 30: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/30.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Dependencies – nodes and anchors
<audio provides> <Midi provides>
<node ID>
<audio depends> <Midi depends>
STEREO -
uqhw_stereo
- -
- KBD
uqhw_uf6
- -
- CC
uqhw_nano
- -
![Page 31: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/31.jpg)
Dependencies – graph
STEREO -
uqhw_stereo
- -
MIXER REC EFFBUS -
uqms_ardour2
STEREO :CC
- KBD
uqhw_uf6
- -
- SEQ
uqms_seq24
- KBD
- CC
uqhw_nano
- -
![Page 32: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/32.jpg)
STEREO -
uqhw_stereo
- -
MIXER REC EFFBUS -
uqms_ardour2
STEREO :CC
- KBD
uqhw_uf6
- -
- SEQ
uqms_seq24
- KBD
- CC
uqhw_nano
- -
SYNTH SYNTH
ch_synth
MIXER :REC :SEQ :MDR
- -
002-chsy_aeolus
- -
- -
003-chsy_synthv1
- -
![Page 33: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/33.jpg)
STEREO -
uqhw_stereo
- -
MIXER REC EFFBUS -
uqms_ardour2
STEREO :CC
- KBD
uqhw_uf6
- -
- SEQ
uqms_seq24
- KBD
- CC
uqhw_nano
- -
SYNTH SYNTH
ch_synth
MIXER :REC :SEQ :MDR
EFFECT -
ch_effect
EFFBUS -
- -
002-chsy_aeolus
- -
- -
003-chsy_synthv1
- -
- -
002-chef_jconvolver
- -
![Page 34: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/34.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Implementation
![Page 35: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/35.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Steps
I assign
I check
I list
I copy
I start
I acn
I mcn
I the “tweak-and-save loop” (not a step)
I unassign or kill
![Page 36: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/36.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Tasks
A Task is a series of steps accomplishing something useful. . .
stepapplication
a1 a2 a3 a4
assign
check
list
copy
start
acn
mcn
unassign
kill
![Page 37: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/37.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Tasks
. . . like restarting an application. . .
stepapplication
a1 a2 a3 a4
assign s2
check s3
list s4
copy s5
start s6
acn s7
mcn s8
unassign s1
kill
![Page 38: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/38.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Tasks
. . . re-establishing all audio connections. . .
stepapplication
a1 a2 a3 a4
assign
check
list
copy
start
acn s1 s2 s3 s4
mcn
unassign
kill
![Page 39: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/39.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Tasks
. . . or starting an entire session.
stepapplication
a1 a2 a3 a4
assign s1 s2 s3 s4
check s5 s6 s7 s8
list s9 s10 s11 s12
copy s13 s14 s15 s16
start s17 s18 s19 s20
acn s21 s22 s23 s24
mcn s25 s26 s27 s28
unassign
kill
![Page 40: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/40.jpg)
method type unique methods channel methods
method ID uq aa uq bb ch aa ch bb
stepappl.
a1 f a2 a3 a4 f a5 a6 f a7 a8 a9 f
assign
check
list
copy
start
acn
mcn
unassign
kill
![Page 41: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/41.jpg)
method type unique methods channel methods
method ID uq aa uq bb ch aa ch bb
stepappl.
a1 f a2 a3 a4 f a5 a6 f a7 a8 a9 f
assign
check
list
copy
start
acn s1 s2 s3 s4 s5 s6 s7 s8 s9f f f f
mcn
unassign
kill
![Page 42: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/42.jpg)
method type unique methods channel methods
method ID uq aa uq bb ch aa ch bb
stepappl.
a1 f a2 a3 a4 f a5 a6 f a7 a8 a9 f
assign s2f
check s3f
list s4f
copy s5f
start s6f
acn s7f
mcn s8f
unassign s1f
kill
![Page 43: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/43.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Step functions
Chino executes a step by calling a corresponding function(“step function”) from the method library.
![Page 44: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/44.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Step functions
# Step-functions in a method library.
#
# Naming:
# s_<method ID>_<step name>
# the assign step
s_ch_synth_assign()
# some stuff
# the check step
s_ch_synth_check()
# some stuff
![Page 45: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/45.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Steps – helper functions
Inside a method’s step function, usually a helper function iscalled that will accomplish the step in a standardised way.
![Page 46: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/46.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Steps – usage of helper functions
# Helper-functions, prefixed h_, called by
# the corresponding step-functions.
#
# Naming:
# h_<step name>
s_uq_msc_check()
declare -ri i=$1
COPY_uq_msc[i]="$(h_check uq_msc $i)"
echo "== COPY_uq_msc[$i] $COPY_uq_msc[i]"
s_uq_msc_list()
declare -ri i=$1
h_list uq_msc $i
![Page 47: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/47.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
h assign() and h copy()
h assign() sources the application library, therebyimplementing inheritance rules for libraries.
h copy() copies the application files, therebyimplementing inheritance rules for application files.
If the application requires it, h copy() will call<application ID> move().
![Page 48: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/48.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
h start()
h start() calls:
I a function <application ID> start() from theapplication library to start the program;
I Assign functions in which we must assign ports tovariables, in accordance with the method’s andapplication’s depends and provides.
![Page 49: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/49.jpg)
h start()method library
application library
s_start_<meth_ID>()
ADEP_<meth_ID>='FOO BAR'APRO_<meth_ID>= MDEP_<meth_ID>='FOO' MPRO_<meth_ID>=
h_start()
calls
<meth_ID>_ja_assign()
reads variables,takes ALSA/JACK portsnapshots accordingly
reads
<meth_ID>_am_assign()
starts application
waits for ports <app_ID>_start()
calls
another snapshot,delivers new portsto assign-functions
calls
calls<app_ID>_am_assign()
calls
ADEP_<app_ID>= APRO_<app_ID>= MDEP_<app_ID>='BAZ 'MPRO_<app_ID>=
MIDI_<app_ID>='ALSA'
reads
![Page 50: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/50.jpg)
h start() – assign-functions
APRO_CH_effect=’EFFECT’
ADEP_CH_effect=’EFFBUS’
# The method ch_effect has audio depends/provides,
# so an assign-function for audio is required.
ch_effect_ja_assign()
declare -ri chan=$1
declare -r inports=$2
declare -r outports=$3
EFFECT_AIN_L[chan]=$(echo "$inports" | sed -n 1p)
EFFECT_AIN_R[chan]=$(echo "$inports" | sed -n 2p)
EFFECT_AOUT_L[chan]=$(echo "$outports" | sed -n 1p)
EFFECT_AOUT_R[chan]=$(echo "$outports" | sed -n 2p)
echo "== EFFECT_AIN_L[$chan] $EFFECT_AIN_L[chan]"
echo "== EFFECT_AIN_R[$chan] $EFFECT_AIN_R[chan]"
echo "== EFFECT_AOUT_L[$chan] $EFFECT_AOUT_L[chan]"
echo "== EFFECT_AOUT_R[$chan] $EFFECT_AOUT_R[chan]"
![Page 51: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/51.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
h acn() and h mcn()
h acn() and h mcn() call connect-functions in which wemust establish connections, one for each of the method’sand application’s depends.
![Page 52: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/52.jpg)
h acn()
method library
application library
s_mcn_<meth_ID>()
ADEP_<meth_ID>='FOO BAR'
h_acn()
calls
<meth_ID>_acn_FOO()
readsdepends
reads
<meth_ID>_acn_BAR()
callsconnect-functions
accordingly
ADEP_<app_ID>=
reads
calls
calls
![Page 53: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/53.jpg)
h acn() – connect-functions
ADEP_ch_effect=’EFFBUS’
# The method ch_effect depends on EFFBUS, so a
# corresponding audio connect-function required.
ch_effect_acn_EFFBUS()
declare -ri chan=$1
# inputs from send ports
declare -i i=0
while [ $i -lt $MIXER_NCHAN ] ; do
msaudioconnect EFFBUS_SEND "$chan,$i" EFFECT_AIN $chan
(( i++ ))
done
# outputs to return ports
msaudioconnect EFFECT_AOUT $chan EFFBUS_RETURN $chan
![Page 54: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/54.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
msaudioconnect HW AOUT 0 MX AIN 14
will, depending on existance of port-variables, connect:
$HW AOUT L$HW AOUT R
$MX AIN R[14]$MX AIN L[14]
$HW AOUT$MX AIN R[14]$MX AIN L[14]
$HW AOUT L$MX AIN R
$MX AIN[14]
$HW AOUT $MX AIN[14]
$HW AOUT L $MX AIN R[14]
![Page 55: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/55.jpg)
h mcn()
method library
application library
s_mcn_<meth_ID>()
MDEP_<meth_ID>='FOO'
h_mcn()
calls
<meth_ID>_mcn_FOO()
readsdepends
reads
callsconnect-functions
accordingly
calls
<app_ID>_mcn_BAZ()
calls
MDEP_<app_ID>='BAZ'
reads
![Page 56: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/56.jpg)
h mcn() – connect-functions
MDEP_chef_jackrack=’CC’
# The application chef_jackrack depends on CC, so a
# corresponding Midi connect-function is required.
chef_jackrack_mcn_CC()
declare -ri chan=$1
ajmidiconnect CC_MOUT 0 chef_jackrack_MIN $chan
![Page 57: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/57.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
ajmidiconnect SEQ MOUT 4 SYNTH MIN 4
will, depending on existance of port-variables, connect:
$SEQ MOUT J[4]$SEQ MOUT A[4]
$SYNTH MIN J[4]$SYNTH MIN A[4]
$SEQ MOUT J[4]$SEQ MOUT A[4] $SYNTH MIN A[4]
a2jmidid
$SYNTH MIN A[4]$SYNTH MIN J[4]
SEQ MOUT J[4] a2jmidid
$SYNTH MIN A[4]
![Page 58: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/58.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Keeping the graph intact
Connect-functions aren’t exclusively called byh acn() and h mcn().
E.g. the task for starting an application will callconnect-functions of nodes depending on any newly providedport-group.
![Page 59: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/59.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
User interface
I command line options and arguments
I runtime user interface
I the session definition file
![Page 60: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/60.jpg)
User interface – command line
[foo@bar ~]$ chino -h
chino -h
chino -v
chino -w [-p <ppath>:<pname> -t <tpath>:<tname]
chino -m [-p <ppath>:<pname> -t <tpath>:<tname]
chino -a [-p <ppath>:<pname> -t <tpath>:<tname]
chino -n name [-p <ppath>:<pname> -t <tpath>:<tname>]
chino -o sdef
-h display this help text
-v print version number
-w write session definition file prototype
-m create new method library
-a create new application library
-n <name> start new session with name <name>
-o <sdef> open session using session definition file <sdef>
-p <ppath>:<pname> Use preset <pname> in directory <ppath> as preset,
overriding the default from ~/.chinorc.
-t <tpath>:<tname> Use session <tname> in directory <tpath> as template.
If not specified, the preset will serve as template.
![Page 61: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/61.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
User interface - at runtime
M - add a method
A - add an application
X - remove an application
R - restart an application
. - localise application/method library
: - localise all used libraries
f - force sourcing of application/method library
l - list current session
d - check dependency tree
g - toggle session graph display
w - write changes to session definition file
a - redo audio connections
m - redo midi connections
s - store connection snapshot
r - restore connection snapshot
u - un-store connection snapshot
ctrl+c - quit
![Page 62: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/62.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
User interface - session definition file
NAME=opus2
PRESET=/usr/share/chino/presets/default:default
TMPL=
# methods and applications
UQMETHS=hw msc meter
uq_hw=stereo
uq_msc=ardour2 vkeybd nonseq
uq_meter=jkmeter japa
CHMETHS=synth
ch_synth-CH-001=yoshimi
ch_synth-CH-002=
ch_synth-CH-003=
ch_synth-CH-004=
ch_synth-CH-005=
ch_synth-CH-006=
ch_synth-CH-007=
ch_synth-CH-008=
![Page 63: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/63.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Miscellaneous
![Page 64: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/64.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Over the network? ssh!
Portability
I self-contained or shared preset
I program versions
I hardware requirements
I sampling rates
I local configuration files
I external (audio)files
The Future
I application groups
I guided fixing of unresolved depends
I have a preset determine window placement forapplications—via scriptable WM
I text-only sessions in git
![Page 65: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/65.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Thanks to
I LAD, LAU and the wider Linux audio community, for allthat software and the reading matter they provide.
I http://tuxfamily.org for their friendly no-BShosting.
![Page 66: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/66.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Demo
![Page 67: Chino - scripted meta-applications for Linux audiolac.linuxaudio.org/2013/download/lac2013_chino_slides.pdf · Chino David Adler Introduction Modular sessions Session management Concepts](https://reader035.vdocument.in/reader035/viewer/2022071009/5fc6dc9aadf4512d677624b9/html5/thumbnails/67.jpg)
Chino
David Adler
Introduction
Modular sessions
Session management
Concepts
Presets and sessions
Applications andMethods
Dependencies
Implementation
Steps and tasks
User interface
Miscellaneous
Demo
Q&A
Q&A
http://chino.tuxfamily.org