[LAU] Editing zynadsuxfx/yoshimi patches?

Julien Claassen julien at c-lab.de
Wed Apr 20 20:42:23 UTC 2011


Hello!
   So I finally went through the thread and collected ideas and thoughts. Here 
they are, a little chaotic still, but I suppose from there we can go on, 
adding to it, shifting things.
Proposal for a good CLI access to audio (and other?) software
The interface should have two parts:
1. a shell-like commandline
2. an interactive fullscreen mode

Random thoughts:
* Use a tree structure for commands/parameters
* Have expand/collpase function for the parameter view (aptitude, mail-clients)
* Parameters are searchable (the tree-structure is searchable for node-data)
* Always move the real cursor (no soft cursor) to the actual parameter
* Encourage programmers to use consistent long and short commands for the shell part
* leave fullscreen mode by colon and enter by ESC

Questions:
* Which keys/mechanisms to use for collapse/expand?
* How to move between parameters on one level?
* What about real menus (as in file, view, edit,...)?
* Can one assume, that OSC is always the easiest/fastest choice and hardcode it?
* Would the commandline mainly just echo the fullscreen tree-structure?
* Would the commandline hold special (non fullscreen) commands?

   I thought about a few of the questions and here are my tentative answers:
* Which keys/mechanisms to use for collapse/expand?
   In alpine/pine the folder list (one major level of the tree) can be 
navigated by using the cursor (all directions). ENTER is used to access a 
folder (go down the tree). Only in the sublevels entries (mails) are listed 
one underneath the other. So cursor left goes back. Best to think of a 
different way, so one can have more compressed layouts, probably organise 
strongly related parameters in one row.  For example Attack Decay Sustain and 
Release.

* How to move between parameters on one level?
   Well partly answered. I think simple lists (showsn as such) might be very 
long seeing the amount of parameters Yoshimi has to offer. Or what do you 
think? It is a little more complicated than aptitude or some of the other 
examples, since they mostly use it for simple lists or long menus.

* What about real menus (as in file, view, edit,...)?
   I think some real menus might occasinally be nice. It's just another tree 
with a root node, from which the main menus branch out. Might be reached by 
something like Ctrl+first letter or a printed capital.

* Can one assume, that OSC is always the easiest/fastest choice and hardcode 
it?
* Would the commandline mainly just echo the fullscreen tree-structure?
   If the command line does echo the full screen commands one might use a 
filesystem like navigation: ls - show all parameters on this level, probably 
with "/" after them, if they open a sublevel. cd name - change to level 
"name". get name - get current state, set name <value> - set parameter name to 
value. Perhaps some more symbols are needed to show things like sublevel, 
boolean, integer, float, string or list/enumeration. Perhaps get can offer 
that info.
   That way a lot can be done by the basic interface infrastructure, without 
the programmer having to worry about getting all the names correct a second 
time round.
   This would make some thing a little longer perhaps, but very consistent. 
Still shortcuts might be nice. Perhaps they can be implemented as 
aliases/substitutions:
alias filter_res='set synth/filter/resonance'
   ?

* Would the commandline hold special (non fullscreen) commands?
   Should one allow for it or wouldn't it be counter productive at this point? 
One idea might be to allow setting a whole level in one go. Good for setting 
plugin parameters. So you might do:
ls effect/reverb
room size
reverb time
bandwidth
damping
dry
early reflection level
tail level
set effect/reverb 50 4.0 0.6 0.6 0 -18 -20
   Another thing, which I'll enter into the file shortly: have a pager for the 
shell output, or at least allow to set one!

   So I ope, this doesn't seem too pointless or unorganised... Please someone 
pounce and make me see the errors of my ways. :-)
   Warm regards
          Julien

--------
Music 
was my first love and it will be my last (John Miles)

======== FIND MY WEB-PROJECT AT: ========
http://ltsb.sourceforge.net
the Linux TextBased Studio guide
======= AND MY PERSONAL PAGES AT: =======
http://www.juliencoder.de


More information about the Linux-audio-user mailing list