[linux-audio-user] Re: Footswitch & Freewheeling 0.5pre3

JP Mercury swirlee at stickist.com
Wed Mar 23 14:26:32 EST 2005


> JP, great tutorials, very laid-back -- you're a teacher man.
> The MIDI filtering/output is neat. So is the tap pulse feature.

Good stuff, I'm glad the tutorials are doing their work.

> *  Seeing it done in your tutorial I want to get my footswitch into 
> action too. It's a simple sustain pedal connected to my midi master 
> keyboard and works as that. But Freewheeling doesn't react to it. 
> Maybe you're talking about a different kind of footswitch? Can you 
> direct me somewhere?

This should be a simple matter. It occurs to me now that I'm using a
non-standard controller # for my switch- thanks for pointing that out. I use
one switch (controller #64) for sustain on piano parts, and another
(controller #67) for grabbing loops. 

You can check what controller # your keyboard is transmitting from inside
Freewheeling. Start it up and press the gray enter to display debugging info
to the console. Press and release your footswitch. In the console window you
should see what midi controller and values your MIDI keyboard transmits for
the footswitch. 

If you want your sustain (#64) controller to grab loops, change this line in
the config file:

 <declare var="VAR_midi_footswitch" type="int" init="67"/>

Change init="67" to init="64". 

I think I'll make this change for the next release. It's confusing to talk
about footswitch and use a non-standard number.

> *  Freewheeling sometimes doesn't startup. Called from the console 
> it would say      FreeWheeling 0.5pre3      Brought to you by a 
> grant from Mother Earth. which is nice but nothing else happens. 

Well, you could look at it as a bug, or you could look at it as a built in
opportunity to reflect on all that the Earth gives us.  ;-)

It's a mystery to me. Some people have reported strange pauses on startup.
Here's some test code for you:

Find Fweelin::setup() in src/fweelin_core.cc and replace the start of the
function with:

int Fweelin::setup()
  char tmp[255];

  printf("MAIN: Start 1\n");

  // Keep all memory inline

  printf("MAIN: Start 2\n");

  if (!XInitThreads()) {
    printf("MAIN: ERROR: FreeWheeling requires threaded Xlib support\n");
    return 0;

  printf("MAIN: Start 3\n");

  /* Initialize SDL- this happens here because it is common to video, keys &
     config */ 
    printf("MAIN: ERROR: Can't initialize SDL: %s\n",SDL_GetError());
    return 0;

  printf("MAIN: Start 4\n");

  // Memory manager
  mmg = new MemoryManager();

  printf("MAIN: Start 5\n");

  // Load configuration from .rc file
  cfg = new FloConfig(this);

  printf("MAIN: Start 6\n");

-- Now you will see a series of messages when you start- this will help me
determine where it's hanging.

> Ctrl-C and calling fweelin again will sooner or later result in 
> Freewheeling starting up. This happens *sometimes* and I have no 
> clue at all as it seems to happen under different circumstances. 

Thanks again for your reports,

More information about the Linux-audio-user mailing list