Freeduino & USB shield & MIDI

I have a strange problem…
I am trying to send MIDI from an Arduino clone called Freeduino via a USB shield… :grin:
I cannot even compile … I get the following errors… Can someone please help…

In file included from C:\Program Files (x86)\Arduino\Arduino ERW 1.0.5\libraries\USB_Host_Shield_20_master/Usb.h:34,
from Basic_test_ino.ino:2:
C:\Program Files (x86)\Arduino\Arduino ERW 1.0.5\libraries\USB_Host_Shield_20_master/avrpins.h:746:2: error: #error “Please define board in avrpins.h”
In file included from C:\Program Files (x86)\Arduino\Arduino ERW 1.0.5\libraries\USB_Host_Shield_20_master/Usb.h:36,
from Basic_test_ino.ino:2:
C:\Program Files (x86)\Arduino\Arduino ERW 1.0.5\libraries\USB_Host_Shield_20_master/usbhost.h:78:2: error: #error “No SPI entry in usbhost.h”
In file included from C:\Program Files (x86)\Arduino\Arduino ERW 1.0.5\libraries\USB_Host_Shield_20_master/Usb.h:36,
from Basic_test_ino.ino:2:
C:\Program Files (x86)\Arduino\Arduino ERW 1.0.5\libraries\USB_Host_Shield_20_master/usbhost.h: In member function ‘int8_t MAX3421e<SPI_SS, INTR>::Init()’:
C:\Program Files (x86)\Arduino\Arduino ERW 1.0.5\libraries\USB_Host_Shield_20_master/usbhost.h:297: error: ‘spi’ has not been declared
C:\Program Files (x86)\Arduino\Arduino ERW 1.0.5\libraries\USB_Host_Shield_20_master/usbhost.h: In member function ‘int8_t MAX3421e<SPI_SS, INTR>::Init(int)’:
C:\Program Files (x86)\Arduino\Arduino ERW 1.0.5\libraries\USB_Host_Shield_20_master/usbhost.h:334: error: ‘spi’ has not been declared
In file included from C:\Program Files (x86)\Arduino\Arduino ERW 1.0.5\libraries\USB_Host_Shield_20_master/Usb.h:37,
from Basic_test_ino.ino:2:
C:\Program Files (x86)\Arduino\Arduino ERW 1.0.5\libraries\USB_Host_Shield_20_master/UsbCore.h: At global scope:
C:\Program Files (x86)\Arduino\Arduino ERW 1.0.5\libraries\USB_Host_Shield_20_master/UsbCore.h:41: error: ‘P10’ was not declared in this scope
C:\Program Files (x86)\Arduino\Arduino ERW 1.0.5\libraries\USB_Host_Shield_20_master/UsbCore.h:41: error: ‘P9’ was not declared in this scope
C:\Program Files (x86)\Arduino\Arduino ERW 1.0.5\libraries\USB_Host_Shield_20_master/UsbCore.h:41: error: template argument 1 is invalid
C:\Program Files (x86)\Arduino\Arduino ERW 1.0.5\libraries\USB_Host_Shield_20_master/UsbCore.h:41: error: template argument 2 is invalid
C:\Program Files (x86)\Arduino\Arduino ERW 1.0.5\libraries\USB_Host_Shield_20_master/UsbCore.h:41: error: invalid type in declaration before ‘;’ token
C:\Program Files (x86)\Arduino\Arduino ERW 1.0.5\libraries\USB_Host_Shield_20_master/UsbCore.h:190: error: expected class-name before ‘{’ token

And my sketch is pretty simple…

#include <MIDI.h>
#include <Usb.h>
#include <usbhub.h>
#include <usbh_midi.h>

MIDI_CREATE_DEFAULT_INSTANCE();

//Input pin declaration
int inPin1 = 2;

// Output pin declaration
int outPin1 = 10;

//Current state of output pins
int state1 = LOW;

//Current reading from the input pins
int reading1;

// Previous reading from the input pins
int previous1 = LOW;

long time = 0; // the last time the output pin was toggled
long debounce = 200; // the debounce time, increase if the output flickers

void setup()
{
Serial.begin(31250);
pinMode(inPin1, INPUT);
pinMode(outPin1, OUTPUT);

}

void loop()
{
reading1 = digitalRead(inPin1);

// if the input just went from LOW and HIGH and we’ve waited long enough
// to ignore any noise on the circuit, toggle the output pin and remember
// the time
{
if (reading1 == HIGH && previous1 == LOW && millis() - time > debounce) {
if (state1 == HIGH)
{
MIDI.sendProgramChange (9, 1);
delay(500);
state1 = LOW;
}
else
{
MIDI.sendProgramChange (1, 1);
delay(500);
state1 = HIGH;
}

time = millis();
}

digitalWrite(outPin1, state1);

previous1 = reading1;
}

}

The board is a Freeduino board but my IDE recognizes it as "Arduino NG or older w/ ATmega8".