Ah porque en este código no va esto?
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
#use fast_io(A)
Me lo compila bien y todo pero no lo detecta la pc, que puede ser?
Aparecia un define en rojo... lo escribi en minusculas y quedo bien.
Y yo quiero utilizar un cristal de 4Mhz y deshabilitar el pin MCLR, esta bien esto que hice?:
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NOMCLR,NODEBUG,USBDIV,PLL1,VREGEN
Adjunto lo que tengo hecho a ver si detectas los problemas 
#include <18F2550.h>
#device ADC=8
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NOMCLR,NODEBUG,USBDIV,PLL1,VREGEN      //~~~ 4MHZ OSCILLATOR CONFIGS ~~~//
#use delay(clock=48000000)
#define USB_HID_DEVICE     FALSE
#define USB_EP1_TX_ENABLE  USB_ENABLE_BULK  //turn on EP1 for IN bulk/interrupt transfers
#define USB_EP2_RX_ENABLE  USB_ENABLE_BULK  //turn on EP1 for OUT bulk/interrupt transfers
#define USB_EP1_TX_SIZE    64  //size to allocate for the tx endpoint 1 buffer
#define USB_EP2_RX_SIZE    64   //size to allocate for the rx endpoint 1 buffer
#include <pic18_usb.h>
#include <midi7.h> //USB Configuration and Device descriptors for this UBS device
#include <usb.c>           //handles usb setup tokens and get descriptor reports
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
#use fast_io(A)
int a1,a2,b1,b2,c1,c2,d1,d2,e1,e2; //variables para guardar
int f1,f2,g1,g2,h1,h2; //cada entrada, y el valor anterior
int envia[4];  //buffer para enviar las notas
void envia_nota()
{    usb_put_packet(1,envia,4,USB_DTS_TOGGLE);
}
void main(void)
{    a1=a2=b1=b2=c1=c2=d1=d2=e1=e2=f1=f2=g1=g2=h1=h2=0;
    envia[1]=0x90;
    envia[0]=envia[1]>>4;
    setup_adc_ports(ALL_ANALOG);  //todas las entradas analogicas
    setup_adc(ADC_CLOCK_DIV_16);  //dividimos el reloj por 16, para tener
            //un tiempo de conversion de 1.33us
    for(;

    {    set_adc_channel(0);
        a2=a1;
        delay_us(3);
        a1=read_adc();
        if(a2>a1)
            {    envia[2]=0x00; //nota 0
                envia[3]=(a2/2);
                envia_nota();
            }
        
        set_adc_channel(1);
        b2=b1;
        delay_us(3);
        b1=read_adc();
        if(b2>b1)
            {    envia[2]=0x01; //nota 1
                envia[3]=(b2/2);
                envia_nota();
            }
        set_adc_channel(2);
        c2=c1;
        delay_us(3);
        c1=read_adc();
        if(c2>c1)
            {    envia[2]=0x02; //nota 2
                envia[3]=(c2/2);
                envia_nota();
            }
    
        set_adc_channel(3);
        d2=d1;
        delay_us(3);
        d1=read_adc();
        if(d2>d1)    
            {    envia[2]=0x03; //nota 3
                envia[3]=(d2/2);
                envia_nota();
            }
        set_adc_channel(4);
        e2=e1;
        delay_us(3);
        e1=read_adc();
        if(e2>e1)    
            {    envia[2]=0x04; //nota 4
                envia[3]=(e2/2);
                envia_nota();
            }
    
        set_adc_channel(8);
        f2=f1;
        delay_us(3);
        f1=read_adc();
        if(f2>f1)
            {    envia[2]=0x05; //nota 5
                envia[3]=(f2/2);
                envia_nota();
            }
        set_adc_channel(9);
        g2=g1;
        delay_us(3);
        g1=read_adc();
        if(g2>g1)    
            {    envia[2]=0x06; //nota 6
                envia[3]=(g2/2);
                envia_nota();
            }
        set_adc_channel(10);
        h2=h1;
        delay_us(3);
        h1=read_adc();
        if(h2>h1)
            {    envia[2]=0x07; //nota 7
                envia[3]=(h2/2);
                envia_nota();
            }
    }
}