New .xml Configuration System:
From FreewheelingWiki
The New .xml Configuration System
The new Freewheeling configuration system was introduced in v0.5.6 - SVN.
Please read this page in conjunction with Configuring Freewheeling.
Previously Freewheeling configuration was controlled by a single monolithic file named ~/.fweelin/.fweelin.rc Now the config has been split into several smaller .xml files to enable easier customization.
These files are as follows:
fweelin.xml
- this is the top level config file
- introduces configuration system
- calls basics.xml, interfaces.xml, and graphics.xml
- indicates version number
basics.xml
- controls basic parameters including
- maximum number of loops
- storage directory for loops
- inputs and ouputs
- volume and limiter
- file formats
- integrated Fluidsynth
- soundfonts to load
interfaces.xml
- introduces interface system
- controls which interfaces to load
- each interface defines visuals and behavior for different hardware controllers
graphics.xml
- here in this graphics section, we define the way FreeWheeling looks onscreen
- the aim is to create a visual layout that is simple and functional
- FreeWheeling is designed to show you where your loops are mapped
- one user may be a drummer with a MIDI kit and footswitches, another might be sitting at a laptop
- the graphics section for each of these users can be configured with the geometry of the places where loops go
- we can say how our laptop keyboard looks onscreen, so that the loops will appear inside pictures of the keys to which they are assigned
- or we could configure visuals for our drumkit
- layouts do not define how loops are captured and triggered- only how they look onscreen
coreinterface.xml
- this is the bindings part of the configuration system
- here you can specify how FreeWheeling responds to the input commands you give it
- declares basic variables
- controls startup configuration
- controls key bindings for PC or laptop keyboard
- keys listed in square brackets [] are for laptop keyboard mode
- controls on-screen HELP listings
- controls graphics in main Freewheeling window
- FreeWheeling can also display system and user-defined variables such as midi transposition, or the last pressed midi key
- this is done by defining 'display' sections in this file
<my_custom>.xml
- you can create a custom .xml file and call it from interfaces.xml
- here you can customize Freewheeling for your own requirements
mercury.xml
- custom .xml file for Mercury's personal setup
- includes config for B3 drawbars, breath controller, and second octave of keys to select loops
- loads patchlists for Mercury's personal setup and startup config
browsers.xml
- controls which browsers to load
- browsers may show patches, loops, scenes
- browsers are defined so they can be accessed easily from any interface
- introduces patch system
- loads patches-channels.xml (in default config)
midifootswitch.xml
- defines variables and behaviour for MIDI footswitch used to grab loops
- controls footswitch graphic in bottom right of main Freewheeling window
pckeyboard.xml
- defines behaviour and graphic layout for PC keyboard
midikeyboard.xml
- defines behaviour and graphic layout for MIDI keyboard
- default layout shows one octave of a piano-style keyboard
bcf2000.xml
- defines behaviour and graphic layout for Behringer BCF2000 MIDI controller
- this unit features 8 rotary knobs, 16 buttons, and 8 sliding faders
- demo video by Hitmuri: http://vgbg.net/mercury/video/feedback-drummer-hitmuri-using-fw.avi
pcr-m1.xml
- defines behaviour and graphic layout for Edirol PCR-M1 MIDI controller from Roland
- this unit features 8 rotary knobs, 6 buttons, 2 pedal inputs and a double octave piano-style keyboard
dancemat.xml
- defines behaviour and graphic layout for 'Competition Pro' PS2 dancemat thru EMSUSB2 PS2->USB adaptor
- this unit features 8-9 pads for dancing on
- this unit has not yet been featured in any Freewheeling instructional videos :(
patches-channels.xml
- patch file with all channels available
- this is a basic template
- allows the user to simply switch between MIDI output channels without sending MIDI program/bank changes
patches1.xml
- legacy file - superceded by patches2.xml
patches2.xml
- lists patches available with Ghostess graphical DSSI host managing WhySynth and Hexter DSSI plugins
- see Sean Bolton's musound page at http://home.jps.net/~musound/ for more info
- WhySynth is a a DSSI softsynth plugin featuring subtractive, wavecycle, granular, FM, waveshaping, and PadSynth synthesis
- WhySynth includes 267 patches with all but the last 7 patches listed in this .xml file
- - (#127-#259 sound the same, am I missing something?)
- Hexter is a DSSI plugin which emulates the sound generation of a Yamaha DX7
- Hexter includes 71 patches, all listed here
- - another 57 patches also listed in this file (but they sound the same, am I missing a plugin?)
patches3.xml
- example of combi patch file
- this enables MIDI keyboard splitting and overlapping
- two or more patches may be played simultaneously
patches-b3.xml
- example of patchlist for Hammond B3 organ emulator
- 2 or 3 channels are mapped across the whole keyrange
- B3 MIDI controller remaps are found in mercury.xml
patches-strings.xml
- this patchlist splits strings into 3 channels: Ist Violins, Basses, and Ensemble
bindings.xml
- legacy file, replaced by coreinterface.xml
- begins with introduction to keys and events which may be of interest
Other documents of interest:
/usr/local/share/fweelin/config-help.txt
- table of key #s and key names
- input and ouput events
- creating bindings
- dynamic parameters
- order of operations
- dynamic ranges
- user variables
- order of bindings
- system variables
- triggering multiple outputs
- MIDI echo
??/freewheeling/TUNING
- hints on optimizing your system to run Freewheeling (written in 2004)
??/freewheeling/examples/README
- info on combination zone patches
- patch browser definition example
- hints on using Ghostess DSSI host with Freewheeling
First draft of this wiki contribution written by Freewheeling newbie Norval Watson in February 2008.
