# M-Audio Delta66

## ETeria

M-Audio Delta66 è la scheda audio pci che uso con Jack Audio Connection Kit per produrre la mia musica, si tratta di una scheda con 4 prese TRS da 1/4" (quelli grossi) in entrata e 4 in uscita, il tutto in una scatolina esterna collegata con un cavo fornito assieme alla scheda dalla M-Audio, più due canali digitali (uno in e uno out) montati sulla scheda pci stessa.

Quando la montai purtroppo ebbi un sacco di problemi. Il sistema vede la scheda, il driver fornito da ALSA pare che supporti egregiamente eppure il sistema operativo non lo carica perchè c'è qualche problema. Passai alcune notti a dire le parolacce ad alta voce mangiandomi mezzo google, tutta la documentazione di alsa, tutto quello che saltava fuori anche solo inserendo come chiave ice1712 (il chip sulla scheda) in tutti i motori di ricerca che conosco ... finchè mi sono imbattuto in un thread di un tizio che aveva il mio stesso problema, questo addirittura la montava sull'hardware in una radio ... e poi dice che risolve il problema modificando il sorgente del driver togliendo il supporto dell'uscita digitale (niente di più). Vabbè, ci capisco poco niente di quello che c'è scritto in quei files li di codice sorgente, però una cosa la so fare, so quotare. Il problema è che non sapevo che cosa ... alla fine dopo una notte di esperimenti ho scoperto che il file

/usr/src/linux/sound/pci/ice1712/delta.c

contiene il codice dei drivers della mia scheda (uso alsa incluso nel kernel), li c'è la sezione

/* initialize spdif */

che va quotata per intero, praticamente bisogna mettere tra /* e */ il seguente testo in modo che appaia così come l'esempio qua sotto:

```
/* initialize spdif */

        /*

        switch (ice->eeprom.subvendor) {

        case ICE1712_SUBDEVICE_AUDIOPHILE:

        case ICE1712_SUBDEVICE_DELTA410:

        case ICE1712_SUBDEVICE_DELTA1010E:

        case ICE1712_SUBDEVICE_DELTA1010LT:

        case ICE1712_SUBDEVICE_VX442:

        case ICE1712_SUBDEVICE_DELTA66E:

                if ((err = snd_i2c_bus_create(ice->card, "ICE1712 GPIO 1", NULL, &ice->i2c)) < 0) {

                        snd_printk(KERN_ERR "unable to create I2C bus\n");

                        return err;

                }

                ice->i2c->private_data = ice;

                ice->i2c->ops = &ap_cs8427_i2c_ops;

                if ((err = snd_ice1712_init_cs8427(ice, CS8427_BASE_ADDR)) < 0)

                        return err;

                break;

        case ICE1712_SUBDEVICE_DELTA1010:

        case ICE1712_SUBDEVICE_MEDIASTATION:

                ice->gpio.set_pro_rate = delta_1010_set_rate_val;

                break;

        case ICE1712_SUBDEVICE_DELTADIO2496:

                ice->gpio.set_pro_rate = delta_1010_set_rate_val;

                /* fall thru

        case ICE1712_SUBDEVICE_DELTA66:

                ice->spdif.ops.open = delta_open_spdif;

                ice->spdif.ops.setup_rate = delta_setup_spdif;

                ice->spdif.ops.default_get = delta_spdif_default_get;

                ice->spdif.ops.default_put = delta_spdif_default_put;

                ice->spdif.ops.stream_get = delta_spdif_stream_get;

                ice->spdif.ops.stream_put = delta_spdif_stream_put;

                /* Set spdif defaults

                snd_ice1712_delta_cs8403_spdif_write(ice, ice->spdif.cs8403_bits);

                break;

        }

        */
```

Consiglio di usare un editor a colori (i colori evidenziano la parte quotata) per assicurarsi di averlo fatto correttamente.

Ci tengo a pubblicare questa mia esperienza, perchè la scheda audio in questione è un gioiellino, la uso da un paio di anni con risultati notevoli, ci ho fatto grandi cose, il supporto del canale digitale non serve, chi si compra una scheda di questo tipo la usa per produrre musica e servono le entrate e le uscite TRS di qualità. Mi da il nervoso il fatto che uno come me si compra sta scheda, la monta e poi ottiene i deludenti risultati che ebbi io all'inizio ... non si trova nessuna documentazione, l'unico che trovo con un problema simile dopo una notte a far ricerche dappertutto non dice nemmeno come ha fatto per risolvere. Poi incontro la gente nel mio ambiente che mi dice "per produrre musica ci vuole Pro Tools su Windows", mi dicono "per far musica come si deve si usa MacOsX" ... infine quando passano di qua da casa mia mi chiedono di installargli sto sistema operativo qua sui loro macchinari.

Non so se in questi due anni qualcuno si sia svegliato a pubblicare questa soluzione, io pure lo ammetto, arrivo un po' tardi ... spero non troppo, spero di poter evitare una brutta delusione a gli abitanti del futuro che vorranno montare una Delta66 su una macchina Linux (nel mio caso Gentoo), ho letto di tantissimi con questo problema che si diedero per vinti.

SUERTE!!!

----------

## darkmanPPT

molto interessante. anche io uso linux per le registrazioni audio. sono sempre stato molto tentato di prendermi una scheda pci, ma ho sempre avuto il terrore di comperare qualcosa di inutile (leggasi: non supportato).

domanda: ma jack ti vede, dunque, tutti i 4 ingressi e le 4 uscite?

come tempi di latenza, come va il driver?

----------

## ETeria

L'ice1712 è il cippetto usato anche per la Delta1010, Jack mostra nell'apposito pannellino 10 entrate e 10 uscite. Ovviamente nella Delta66 funzionano le prime quattro, nella Delta1010 funzionano tutte e 10. QUESTO è un esempio di come posso bindare i vari programmi sulle quattro uscite in mono (è molto flessibile, se metterò da parte un po' di soldini non ci penserò su ad acquistare una Delta1010 per sfruttare tutte e dieci le uscite).

In quanto alla latenza, io setto qjackctl COSI', il tutto mi funziona in perfetta sincronia, senza problemi, finchè non lo metto in modalità Duplex (tipo quando devo registrare voce con microfoni), perchè ho un hardware un po' vecchiotto e quando lo carico troppo diventa un po' instabile (ogni tanto crasha ardour o rosegarden in modo Duplex), ma adesso ci sono le cpu multicore a 64bit, dovrebbe tenere tutto alla grande.

Infine,  il driver mi sembra ottimo, una volta rimosso il supporto delle prese digitali, il resto funziona alla grande, arriva a 96000Hz 24bit, il cippetto converte d/a e a/d senza fare riconversioni interne, tutti i calcoli ulteriori che effettua sul segnale sono a 32bit (volume ecc ...), accetta i TRS da 1/4 sia quelli in mono che quelli bilanciati. A orecchio mi piace come esce il suono, è pulito, ha un segnale alto e nitido, io poi faccio passare ogni canale per un compressore/gate ed un equalizzatore parametrico.

----------

## darkmanPPT

perdonami se continuo con le domande, ma quello che hai postato è davvero interessante (sia per il driver che per la scheda)

quello che mi chiedo io è se si riesce davvero a registrare più tracce contemporaneamente senza avere xrun/problemi di vario genere.

cioè, una scheda con così tanti input è possibile davvero sfruttarla al massimo?

esempio concreto:

registro contemporaneamente voce, chitarra, basso e batteria.

se si, allora è proprio un gran bel driver!

uhm... adesso mi fai pure venire voglia di pensarci a comperarmi una cosa del genere.

----------

## ETeria

Mi chiedi qualcosa a cui non so rispondere. Già ti dicevo che se la abilito in Duplex alcuni programmi mi diventano un pochino instabili, io al massimo ho registrato da due entrate contemporaneamente (una traccia stereo per registrare delle percussioni in un modo un po' particolare). Il fatto è che possiedo un hardware di una decina di anni fa, uso ancora i dischi quelli IDE UDMA, che poi non sfrutto nemmeno a manetta perchè il bus della scheda madre fa da collo di imbuto. E' una Tyan Thunder K7 (S2462), con due AthlonMP da 2100 Mhz (quelli a 32bit), non è un catorcio, anzi, la comprai nel 2001 e tutt'ora soddisfa le mie esigenze, Gentoo ci scorre superbene, Jack mi garba, invece che un programma monolitico per fare tutto, uso programmi diversi tra sequencer, multipiste, drummachine ecc ... e questo fa si che le due cpu si aiutino a smaltire il carico di lavoro. La Delta66 ha dei requisiti alti ma io registro le tracce con ardour a 48000x32 , credo che se imposti di registrare le quattro tracce a 96000x32 la scheda audio è fatta apposta per tener duro, ma il resto dell'hardware se non è tosto piange ... io registro una alla volta la traccia di chitarra, la voce, eventuali percussioni ... poi setto Jack di usare la scheda audio solo in riproduzione (ci guadagno in stabilità con i settaggi della latenza tirati al massimo) e faccio riprodurre tutto, assieme a hydrogen e rosgarden che comanda il qsynth (fluidsynth), inoltre comando tramite cavo midi anche altri synth esterni e convoglio tutto in un mixer analogico con cui effettuo la mescola. La Delta1010 ha lo stesso cippetto ma ha 10 canali in entrata e 10 in uscita, credo proprio che la Delta66 la puoi mettere sotto sforzo che non dovrebbe fare una piega, però comprati dei dischi duri belli veloci ed assicurati un hardware senza colli di imbuto con il sistema operativo configurato al top delle performances (io nel make.conf metto sempre -03 e -ffast-math, quest'ultimo però spesso da rogne, tipo per le cose che dipendono da Qt, quindi KDE, anche con lilypond e con altri che mo non mi ricordo, ma cerco di stare attento ad emergerli uno ad uno aggiungendo o togliendo quel parametro).

----------

## ETeria

Ma scusa un attimo, domanda banale ma necessaria: il clock di Jack è precisissimo, piuttosto crasha ma non distorce le tracce (cubase lo faceva!!! Odiavo Windows!!!), se te attacchi quattro strumenti in entrata, anche con latenza alta ti metti a registrare su ardour su quattro piste diverse in mono e contemporaneamente, tanto abiliti Jack per usare le uscite della Delta come monitors, quindi vi sentite in tempo reale quando suonate e non fate errori. Cosa ti impedisce poi a registrazione effettuata di allineare semplicemente col maus le tracce che eventualmente non sono in sincronia? E' una cosa piuttosto semplice e che si fa in un attimo. Ovviamente dopo aver salvato e riavviato Jack in modalità solo riproduzione con latenza bassissima, così senti benissimo qualsiasi imperfezione e la puoi correggere. Vedrai però che ti peserà molto di più effettuare la riproduzione delle tracce con plugini di effetti e compressori ed equalizzatori sulle varie tracce, di quanto ti pesa effettuare la registrazione.

Te che hardware hai?

----------

## darkmanPPT

allora. io non uso hardware ad-hoc come il tuo.

ho una scheda esterna usb della tapco.

non è malaccio, intendiamoci, però talvolta non mi dispiacerebbe avere più di 2 input (e, soprattutto, non dover più passare per usb/firewire).

l'hardware che uso... beh, ne ho due: tutti e due portatili (ma pensavo di passare ad un fisso, in modo da utilizzare i portatili per altro) e uso sempre jack in modalità duplex e riesco ad arrivare a latenze di 8msc

uno è un portatile vecchio di 4 anni fa con un intel pentium M (32 bit). va piuttosto bene la roba là, però già registrare due tracce contemporaneamente è piuttosto faticoso e devo disabilitare ogni tipo di plugin per farle rimanere in sync.

l'altro è un portatitle con un amd athlon 64 x2 e gira piuttosto bene la roba (anche i plugin caricati con fst/dssi). due tracce contemporaneamente ci vanno su nel contempo in cui uso hydrogen per la batteria/tempo e qualche plugin.

(inutile dire che uso sempre gentoo)

Ovviamente per queste cose non uso kde   :Laughing: 

mi trovo bene con fluxbox. è molto snello e non mi sembra che impatti molto sul risultato.

----------

## ETeria

Vabbè il desktop manager è a scelta dell'utente, il KDE 4.x a mio parere è veramente fluido, invade poca RAM, ma poi alla fine su un portatile conviene mettere qualcosa di ancora più snello solo per il fatto che il monitor è per forza piccolo. Io quando accendo tutti i programmi, voglio vedere bene tutto, non deve sfuggirmi niente, ho lo schermo da 40 pollici per essere sicuro di espandere bene i programmi multitraccia e poterli visualizzare con i mixers per controllare volumi e vedere bene gli editor di matrici e dei pentagrammi ed i forms per settare i plugini. Se te emergi Hydrogen o Rosegarden, ti chiede le versioni aggiornate di Qt, e che ti piaccia o non ti piaccia KDE, comunque Qt e la sua paranoia sul -ffast-math te la devi accollare. Infatti poi Rosegarden è più stabile se lo emergi senza quell'opzione, Lilypond idem e così via  :Smile: 

Se fino adesso hai lavorato con periferiche esterne (USB e FIREWIRE) allora ci credo che hai paura della latenza  :Very Happy:  vai tranquillo che con una scheda pci, quando configuri jack con latenza 20 ti registra più preciso di quando lo configuri con latenza 5 da una scheda esterna (lo so perchè anche queste sono esperienze fatte con jack su linux e su macosx). Io generalmente setto Jack così come hai visto nella screen che ti ho messo e ci lavoro con gusto, se devo registrare una traccia stereo dalla Delta, provo così in Duplex, se mi diventa instabile Rosegarden, allora riavvio Jack con il doppio di Frames/Period (lo metto a 256) e la latenza diventa 21, ancora registra da dio e non ci si accorge, comunque in caso che me ne accorgo vado poi a spostare giusto di quel millimetro indietro la traccia su ardour (le ultime versioni ufficialmente disponibili su portage di Rosegarden e Ardour, ricompilate con l'ultimo gcc e le ultime glibc ... sono moolto stabili anche sotto stress).

Il tuo portatile con AMD64 è una bella macchinetta, solo che se ci devi attaccare la scheda audio esterna, poi ovviamente vai incontro al problema latenza. Ho letto da qualche parte nella documentazione che il team di Gentoo per il supporto a 64bit punta molto su un buon supporto alle CPU Opteron, io già sono un fanatico AMD, poi per il fatto che scelgo Gentoo, se dovessi pensare a farmi hardware nuovo finirei a prendere un sistema basato su Opteron. Se ti devi fare la macchinetta nuova per fare harddisk recording, ormai non ti serve nemmeno comprare la cpu più costosa, nonostante la mia mania per gli Opteron, non posso negarti che se trovi anche in un negozio le cpu prodotte l'anno scorso in svendita con una mobo che le supporta, sei più che a posto (ormai sono tutte a 64bit, multicore con tremila cazzate tra sse e 3dnow di versioni potentissime, hanno addirittura i core che si gestiscono la ram separatamente e direttamente ... noi con le cpu a 32bit siamo oldissimi  :Very Happy:  ), che siano intel o amd, ma assicurati TANTA RAM (jack più ne trova e più ti fa felice!!!) perchè ardour prima di scrivere sui dischi usa solo la ram finchè è satura, no ram = latenza, dei DISCHI MOLTO CAPIENTI e possibilmente anche veloci, e che tra i bus dei dischi e quelli della mobo non ci siano colli d'imbuto. Per scheda audio sarebbe fico metterci una pcie , ma non saprei consigliarti quale, io ho testato questa col cippetto ice1712 che è pci normale (e comunque ti assicuro che fa bene il suo lavoro). Ah attenzione che le Delta non hanno prese midi esterne, quindi se hai dei sintetizzatori esterni da comandare, o ti trovi su ebay una vecchia Sound Blaster Live da montare interna affiancata alla scheda per produrre musica (il sequencer midi va sempre, anche con più schede montate assieme, le prese analogiche invece le controlli da jack) oppure con una esterna usb (che però secondo me casca nella latenza).

GL!

----------

