New .xml Configuration System:

From FreewheelingWiki

Revision as of 01:46, 16 February 2008; view current revision
←Older revision | Newer revision→
Jump to: navigation, search

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.

to be deleted