Folosirea laptopului in conditii de live si latenta DPC

O blasfemie, veti spune. Nu are cum sa functioneze – mai ales daca e vorba de un sarman PC (variante de Mac folosit in conditii de live s-au mai intalnit totusi prin strainatate, si in ultima vreme si pe la noi)!

Cu toate acestea, cu o placa audio STABILA si un sistem cat de cat optimizat pentru audio, se poate face. Cele cateva zeci de sonorizari si inregistrari live multi-track pe care le-am facut pe un banal laptop HP (vechi de 5 ani) cu procesor Pentium M la 1.73Gb, 512Mb RAM si hard disk intern de 40Gb la 5400RPM stau in spatele acestei afirmatii.

Sonorizari live

Te-ai plictisit sa cari dupa tine un rack de 10HE pentru toate pa rack 2compresoarele si gate-urile necesare pentru un concert live? Rack-ul tau nu are decat 4HE si nu mai incape in el acel ultim gate de care ai nevoie pentru a putea sa tai coada aia enervanta de la tomul pe care l-ai rugat deja de 3 ori pe tobar sa-l acordeze/amortizeze? Ai observat ca vocalistul/vocalista are impresia ca microfonul este facut sa-l tii la lungime de brat si asta poate functiona fara microfonie (in timp ce trupa urla in spate, cu monitoarele date la maxim)? Tot de ce ai nevoie este o placa audio decenta cu mai multe intrari/iesiri, REAPER si plug-in-urile lui incluse (extrem de stabil, usor de folosit).

Eu folosesc un Echo Audio Audiofire 8 sau un Indigo I/O (varianta veche), amandoua ducand pana pe la 3-4ms latenta la monitorizare software, cu pana la 5 gate-uri, ceva EQ-uri si compresoare puse in REAPER (cele incluse), plus un analizor spectral care sa-mi arate ce se intampla pe anumite canale (frecventele pe care apare microfonia pe microfonul vocal, de exemplu). E obligatorie posibilitatea de reducere a latentei pana la valori foarte mici – eu estimez ca deja mare parte din muzicieni nu-si dau seama de o latenta mai mica de 7ms, dar (mi se pare ca) le poate afecta feeling-ul. De aceea prefer reglarea ei undeva pe la 3-4ms, pentru a ma asigura ca nu simt nici un efect secundar al latentei – e deja valoarea la care nici eu nu mai imi dau seama de existenta ei, ca si tobar capsoman pe problema latentei. Poate cu un calculator mai puternic as putea folosi si reverb sau compresoare multibanda (de ce nu reusesc chitaristii sa-si dea seama ca in urma pozitionarii defectuoase a cabinet-ului, pot aparea rezonante ale boxei FOARTE puternice si deranjante, care nu le poti controla doar cu EQ?…), dar cu sistemul actual nu am reusit, pastrand si latenta scazuta.

Un alt avantaj ar fi faptul ca, in urma unei investitii minime intr-un microfon electret de test (Behringer ECM8000, de exemplu), poti folosi laptopul din dotare si un RTA (Room EQ Wizard, freeware si cu multe facilitati) pentru a afla raspunsul salii si problemele de reglare a crossoverului, pe care le poti corecta cu usurinta cu un EQ pe master – sau macar stii de ele si le poti corecta cat de cat din EQ-ul de pe canale.

Configurarea laptopului pentru live

behind_laptop_to_stage_smalIn primul rand ai nevoie de o configuratie care sa aiba o latenta DPC redusa… Un lucru destul de rar intalnit la ora actuala, s-ar parea – pentru desktop-uri, placile de baza Intel P5k, P35 (Gigabyte ar fi avut ceva probleme cu chipsetul respectiv, rezolvate intre timp – deci grija la placile GB mai vechi) si P5b se mentioneaza ca si variante optime – date neconfirmate, dar posibil un bun punct de plecare pentru momentul in care vreti sa-ti faci un posibil desktop pentru live.

Ce este latenta DPC (Deffered Procedure Calls – cereri de intrerupere amanate, in traducere aproximativa)? Pe scurt, latenta este durata de timp din momentul din care se face o cerere de acces la procesor (placa audio care-si cere randul la eliberarea micului sau buffer) si pana in momentul in care i se da curs. Vorbind de o cerere de procesare a stream-ului de date audio, daca acest moment apare prea tarziu, buffer-ul placii audio este deja plin in momentul in care aceasta isi doreste sa mai scrie in el, iar in cele din urma, in momentul in care procesorul va ajunge sa-l goleasca, datele din buffer vor fi fost partial suprascrise sau golite, ducand la “snap, crackle and pop” (dupa cum era reclama la Kellogg’s, daca nu ma lasa memoria) – pacanituri, intreruperi si alte cele, in spiritul comentariilor recente legate de folosirea limbii romanoengleze in articolele scrise. J

Latenta respectiva, spre ghinionul nostru, nu tine de aplicatiile sau serviciile care ruleaza in background, ci de modul de functionare al driverelor fiecarui subansamblu al PC-ului, fie el placa grafica sau bus-urile USB. Pentru a inrautati situatia, nu exista un sistem de prioritizare a acesora (si daca ar exista, e perfect posibil ca placile audio sa fi suferit si mai mult), principiul de executare este FIFO (primul intrat, primul servit). Cererile facute de placa audio nu sunt, din pacate, “considerate” ca fiind critice (cum sunt cererile de intrerupere hardware), iar in lunga lista de cereri de acces la procesor pot surveni prea tarziu. Daca procesorul ajunge prea tarziu la cererea respectiva de lucru cu buffer-ul placii, apar problemele – acesta este motivul pentru care un buffer mare iti rezolva multe probleme; din pacate in conditii de live, NU iti permiti un buffer mare.

Cum afli cam care este valoarea latentei DPC si modul in care evolueaza pe parcursul timpului – luand in considerare ca desi ea poate sa fie majoritar stabila in jurul unei valori mici, se intampla sa apara varfuri de latenta foarte mari (multumita placilor wireless, ca si suspect de serviciu). O micuta aplicatie freeware (pentru uz non-comercial), denumita DPC latency checker:

Pentru mai multe detalii legate de latenta DPC (in limba engleza!), puteti citi documentatia de pe site-ul checker-ului de latenta:

Latenta DPC

dpclat2Desi nu imi este foarte clar care ar fi valorile optime, din cele citite si din experienta personala, o latenta generala sub 100us este suficienta. La utilizare normala, a mea oscileaza in jurul a 25us, cu varfuri ocazionale de pana la 450us, in situatia in care am activate absolut toate subansamblele laptopului (wireless, card reader, samd). Cu toate acestea, nu am avut probleme la procesare in timp real/inregistrare, nici in aceste conditii. Dar din principiu, opresc din Device Manager toate subansamblele nenecesare activitatilor audio desfasurate.

Ce este de facut daca observi varfuri de latenta foarte mari sau o latenta medie mare? Incepe distractia – cu DPC Latency Checker-ul activat, din Device Manager, te pui si dezactivezi pe rand orice subansamblu care nu este necesar domeniului audio. Ordinea in care le poti lua la puricat pare sa fie urmatoarea: interfata de retea wireless, placa de retea, modem-uri interne, placa audio integrata, bus-urile USB pe rand, periferice pe USB (tastatura, mouse, samd). Grija sa nu dezactivezi subansamble necesare: hard disk, tastatura sistemului, display, samd.

In speranta ca ti-ai rezolvat problemele legate de latenta DPC, sau nu le-ai avut din start, ce ar trebui facut mai departe? Cu mica paranteza ca in momentul acesta fac 101% pe lupul moralist, eu avand un singur sistem de operare pe laptop, vechi de vreun an si jumatate, pe care am instalat absolut toate programele de uz general posibile, a trecut prin minim o devirusare brutala, a servit drept platforma de test pentru plug-in-uri, s-a facut editare video pe el, samd.

Ideal ar fi sa ai doua sisteme de operare pe el: unul de uz general, cu toate aplicatiile, serviciile si prostiile necesare, si altul dedicat strict pentru audio – care nu are instalate decat DAW-ul folosit, cele cateva plug-in-uri si/sau VSTi-uri necesare, are dezactivate subansamblele, procesele si aplicatiile de background nenecesare, samd.

Pentru cei pasionati de IT, exista o aplicatie foarte simpatica denumita nLite cu ajutorul caruia iti poti customiza FOARTE in detaliu direct kit-ul de instalare al Windows-ului, eliminand extrem de multe procese si servicii complet inutile, de care e posibil nici sa nu ai habar. Dar cu un pic de grija, totusi – prima oara cand l-am folosit, dupa vreo 2 ore de taiat cu cutitul prin kit-ul de instalare, am dezactivat inclusiv Firewire-ul… Mare mirare cand nu mai imi functiona placa audio Firewire pe care o aveam pe atunci; dar intr-adevar se misca fantastic de repede…

O mica paranteza: Windows-urile care vin preinstalate pe laptop-urile recente au tendinta sa fie pline-ochi de o serie de aplicatii complet inutile – bloatware, cum i se spune. Daca nu ai posibilitatea de reinstalare a unui Windows adecvat, atunci esti nevoit sa intri in el cu toporul, dezinstaland o serie intreaga de aplicatii, oprind servicii si procese, samd. E un pic de lucru cu ele, mai ales daca nu le cunosti in detaliu, dar este o operatiune care iti da un plus de performata perfect sesizabil.

Ca de obicei, am deviat destul de mult de la titlul original al articolului, datorita prezentarii asupra latentei PDC. Ce as mai dori sa mentionez, pentru a mai dezamorsa un mit care circula prin aer: pe laptopul antementionat, ruland vreo 3-4 plugin-uri cu o latenta de 4.3ms (poate mergea si mai jos, dar nu am vrut sa-mi fortez norocul), am inregistrat in timpul sonorizarilor pana la 10 canale mono, la 24 biti/44.1kHz, pe un hard disk de 5400RPM pe care ruleaza si sistemul de operare. Absolut fara nici un glitch! Si mergand mai departe, atata timp cat nu apar glitch-uri, calitatea semnalului inregistrat este exact aceeasi, indiferent ca folosesti un hard disk la 5400RPM sau un SSD.

Daca vi se pare ca ar fi vreun aspect pe care l-am sarit in descrierea mea, sau unul insuficient abordat, va rog sa mentionati – voi reveni, pe cat posibil, cu detalii.

10 comentarii la „Folosirea laptopului in conditii de live si latenta DPC

  • 3 august 2010 la 9:39 am
    Permalink

    Nu e nici o mirare, deja din ce în ce mai multă lume a ajuns la soluția asta.
    http://forum.poweraudio.ro/viewtopic.php?t=8421
    Windows-ul nu poate fi curatat pe bune, trebuie modificat inainte de instalare. ACPI (mare mincator de resurse) nu poate fi dezinstalat sau oprit. Exista kituri deja optimizate audio si exista instructiuni despre cum sa o faci.
    Daca ti se pare ca 3-5 ms latenta e mult atunci afla ca toate mixerele digitale mari de peste 50.000-200.000$ au latenta 3-5 ms si TOATE folosesc windows pentru remote. Bine e un Windows embeded adica un XP foarte modificat.
    Eu asa am pornit in excursia MIXERLESS. Si deocamdata merge bine.
    Despre latenta gasesti in articolul mentionat cum sa calculezi cit suporta oamenii care cinta.

  • 3 august 2010 la 10:03 am
    Permalink

    Latenta de 3-5ms – nu spuneam ca este mult, chiar sustineam ca la 3-4ms deja nu mai simt nici eu vreo urma de diferenta (la tobe, clape, monitorizare directa, samd); cu mentiunea ca mare parte din lume nu simte nimic de la 7ms in jos (+ timpul aferent transmiterii sunetului prin aer, mentiune pe care am sarit-o). Deci amandoi spuneam cam acelasi lucru. 🙂

    Faina mentiunea cu kit-urile de Windows, nu stiam de ele – eu am intrat direct in WinLite si m-am pus sa elimin.

    Legat de „nu folositi Windows-uri preinstalate” – laptopul pe care l-am tot mentionat ca fiind abuzat in si in afara live-urile este cu Windows preinstalat (modificat ulterior), si rulez buffer de 32 de sample-uri pe el.

    Mihai Toma

  • 3 august 2010 la 10:46 am
    Permalink

    Chiar daca buffer-ul arata 2-4-5 ms latenta, aveti grija cu plug-in-urile, la inregistrare, ca pot adauga la latenta.
    Latenta este foarte problematica pentru cantareti. Poate transforma cantareti buni, in cantareti mediocri, mai ales daca folosesti optiunile de monitorizare de intrare din DAW-uri.
    Preferabil este sa folosesti monitorizarea direct din interfata audio.

    Trebuie sa incerc si eu un kit de windows optimizat.

    Salut!

  • 4 august 2010 la 8:40 am
    Permalink

    Pentru Mihai:
    Deci tu rulezi drivere cu buffer de 32 sample pe Windows XP standard pe firewire???? Cred ca vorbesti de PCMCIA.
    Pentru Alex:
    Latenta de care vorbesti tu se numeste latenta variabila si se intilneste la interfetele USB. Firewire nu are latenta variabila. Latenta variabila poate transforma un cintaret foarte bun intr-unul foarte prost.
    Reaper iti arata la fiecare plug-in in parte daca si mai ales cita latenta adauga. Eu le scot pe cele cu latenta.

  • 4 august 2010 la 5:28 pm
    Permalink

    Foarte bun linkul dar ei discuta latenta pentru monitorul vocalului la inregistrare. E alta mincare de peste, desi e destul de aproape de mixul live. Cubase sucks total la capitolul latenta. Sub 192 samples devine instabil. Acelasi calculator-interfata-sistem operare poate 32 samples in Reaper.
    Prin toate comparatiile intre interfete am trecut si eu acum 10 luni. Cel mai bine e sa poti folosii mixerul hardware de pe interfata, asa numitul mixer de monitorizare, dar la marea majoritate e doar un mixer chior fara EQ si dinamica, fara reverb. Adica fara DSP on board. Ca sa nu mai zic ca la unele interfete nu are nici macar gain. Dar ai latenta aproape de zero, mai mica de 0,5 ms. Pentru ca audio nu mai trece nici macar prin firewire. AD – mixer hardware – DA.
    Fara interfata cu DSP esti nevoit sa treci prin calculator si adaugi minim 3 ms prin firewire plus cel putin 2 ms prin DAW.
    Foarte multi pot cinta live astfel. Pina la urma 5-7 ms este latenta naturala a sunetului in aer liber pe distanta de 1,7 metri- 2,3 metri adica distanta de la un monitor pus pe scena la picioare. Exista totusi multi muzicieni de studio care nu pot cinta live din cauza asta. Pot sa cinte doar cu casti pe urechi.
    Un vocal care poate cinta live cu monitoare la 2 metri de urechi (distanta cea mai mica posibila de fapt) poate cinta fara probleme cu monitorul si la 4,5 metri. Adica echivalentul latentei la care te duce mixatul cu un sistem DAW plus monitorizarea normala la distanta de 2 metri.
    Ti-am spus de USB si latenta variabila pentru ca m-am lovit de problema si am ramas socat ce efect negativ are asupra vocalistilor.

  • 5 august 2010 la 1:17 pm
    Permalink

    @octavian:
    Ma refer la buffer de 32ms pe Firewire (TI, integrat), cu Echo Audio Audiofire 8. Se poate. 🙂

    La un search rapid prin Google, nu am prea gasit referinte legate de latenta variabila la monitorizare software a interfetelor USB. Ai cumva ceva link-uri?

    Multam in avans.

    Mihai Toma

  • 9 august 2010 la 5:00 pm
    Permalink

    Probabil ca ai vrut sa zici 32 samples adica 0,7 ms ca 32 ms deja nu mai e latenta e delay.
    Despre latenta variabila in audio e greu sa gasesti texte nestiintifice.
    Dar logica spune ca o interfata cu arhitectura Master-Slave in care perifericul nu are nici un control si asteapta dupa Master (speak when spoken to) are un numar de probleme. USB-ul nu poate initia dialogul niciodata, adica e o interfata non-time-critical spre deosebire de FireWire.
    In clipa in care ai 3 sau mai multe periferice pe USB – gen o clapa, un hdd extern, o interfata audio, un modem USB atunci vei observa inconsistenta semnalului audio chiar si la citeva canale.

    Eu m-am lovit in alte aplicatii mult mai precise de problema asta.
    http://netwinder.oregonstate.edu/pub/netwinder/docs/intel/pix/1110_prod_brf.pdf

    Cauta in interiorul paginilor urmatoare „variable latency” sau „variable latencies”
    http://gpsd.berlios.de/faq.html

    http://www.datx.com/phpkb/question.php?ID=627

  • 9 august 2010 la 6:05 pm
    Permalink

    Foarte folositor Octavian, mersi.
    Da, Mihai a vrut probabil sa zica de sample-uri. In mod teoretic 32samples = 0.7ms doar pt fs=44.1kHz, ca pentru 96kHz ar fi undeva la 0.33ms. Bineinteles asta doar pe A/D conteaza mai mult acuma. Dar dupa cum spune articolul acela de pe datx.com practic delayul efectiv e greu de calculat ca numai depinde doar de hardware, ci si de dimensiunile bufferelor la nivel de transport si driver.
    Arhitectura Master/Slave nu ar trebui sa fie neaparat cu probleme. Ca din moment ce masterul reuseste sa trimeata un numar destul mare de requesturi per unitate de timp spre Slave latenta ar putea fi decenta.

    Imi aduc aminte cat de simplu era asta pe vremurile de DOS cand daca vroiai prioritate pentru aplicatia ta, o aveai, doar ca trebuia sa rezervi o intrerupere si un DMA. Le programai, iar apoi astia singur se ocupau de restul. Tu doar trebuia sa „umpli” bufferul cu „material”. Nu existau hidden-buffere etc 🙂

  • 12 iulie 2011 la 1:39 pm
    Permalink

    Update din seria traiasca HP nc6120 (acelasi sarman Centrino la 1.6 antementionat) + Echo Audiofire 8.

    Actualmente proceseaza in mod constant 8 canale audio cu 1-3 pluginuri pe canal in conditii de live + inregistrare pe 10 canale, fara glitch-uri – la sonorizari, cu o latenta de 4.3ms (64 sample-uri buffer, daca nu ma lasa memoria).

    In conditii de concert pe Reaper 4beta folosit ca si hub, s-au rulat concomitent la o latenta totala de 5.1ms (96 sampleuri buffer, parca) urmatoarele: 12 track-uri audio lungi de o ora procesate de pluginuri la 44kHz, procesare live cu trigger/sampler pe 3 canale, un VSTi+filtrele aferente rulat in timp real de pe un LPD-8, un semnal MIDI trimis pentru un show de lumini, SIIIII… video in format MPEG4 sincronizat cu track-urile audio, pe toata durata spectacolului. Eu nu am resimtit nici un glitch, colegii mei spun ca PARCA ar fi fost ceva aproape insesizabil.

    Spune cate una-alta despre stabilitatea Audiofireului. 🙂

    Tom

Lasă un răspuns

Adresa ta de email nu va fi publicată.

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.