Ugrás a fő tartalomra
Ugrás a fő tartalomra

A cseles Hercules

Közzétéve:

A probléma - a hibásan működő navigátor gomb

Nemrégiben szert tettem egy használt Hercules DJControl Inpulse 500 DJ-controllerre a Vinteden (opens in new tab). Az eszköz épségben megérkezett és külsőre remek állapotban volt. Hogy leteszteljem működés közben, gyorsan a gépre kötöttem, a Mixxx DJ szoftverben hozzátársítottam a beépített mappelést és végigtekergettem és nyomkodtam rajta mindent.

Mixxx ingyenes, nyílt forráskódú DJ-alkalmazás LateNight skinnel

Amikor a dalok közötti váltásra szolgáló forgójeladóhoz (rotary encoder) (opens in new tab) értem, úgy éreztem, a vezérlő trollkodik velem.

Jobbra tekertem: lefelé ment a kurzor. Balra tekertem: lefelé ment a kurzor. Megint jobbra tekertem: helyben maradt. Balra tekertem: le-fel ugrált. A dobozon láttam, hogy van benne valami asszisztens meg a hivatalos szoftverben "AI", ami kitalálja a dalok "energiaszintjét" de azt nem gondoltam, hogy ilyen élesen fogja bírálni a zenei ízlésemet.

Nem a leglényegesebb kezelőszerv, hiszen a dalokat a laptopon is könnyen ki lehet választani, de azért nem szerettem volna annyiban hagyni.

Hibakeresés - a MIDI-kommunikáció vizsgálata

Első körben szerettem volna kideríteni, hogy a Mixxx mappelésen vagy a hardverben van-e a probléma.

Ezeknek a DJ-pultoknak a vezérlő része valójában egyszerű MIDI-controller. Olyan, mint egy egyszerű MIDI-billentyűzet vagy pad, csak billentyűk helyett főleg potméterek vannak rajta.

Hogy belehallgassak a háttérben zajló MIDI-kommunikációba, bevetettem az alsa-utils (opens in new tab) csomagban található aseqdump (opens in new tab) Linux parancsot.

Ő azt tudja, hogy az ALSA hangrendszerhez érkező eseményeket nyers formában kiírja a képernyőre. Így meg lehet nézni vele, hogy a tekerés hatására a Hercules milyen CC üzeneteket küld.

Ahhoz, hogy ezt meg lehessen kérdezni tőle, előbb meg kellett tudni, hogy milyen porton jelenik meg a controller a rendszerben. Ezt az aseqdump -l paraméterével tudjuk megtenni, ami kilistázza, milyen porton milyen virtuális vagy valós eszköz figyel:

[learnforeffect]$ aseqdump -l
 Port    Client name                      Port name
  0:0    System                           Timer
  0:1    System                           Announce
 14:0    Midi Through                     Midi Through Port-0
 36:0    DJControl Inpulse 500            DJControl Inpulse 500 MIDI 1

Most, hogy kiderült, hogy ez 36:0 a címe, végre megvizsgálhatjuk az általa küldött eseményeket az aseqdump -p 36:0 paraméterezéssel.

[learnforeffect]$ aseqdump -p 36:0
Waiting for data. Press Ctrl+C to end.
Source  Event                  Ch  Data
 36:0   Control change          0, controller 1, value 1
 36:0   Control change          0, controller 1, value 127
 36:0   Control change          0, controller 1, value 1
 36:0   Control change          0, controller 1, value 1
 36:0   Control change          0, controller 1, value 127
 36:0   Control change          0, controller 1, value 1
 36:0   Control change          0, controller 1, value 127
 36:0   Control change          0, controller 1, value 127
 36:0   Control change          0, controller 1, value 1
 36:0   Control change          0, controller 1, value 1
 36:0   Control change          0, controller 1, value 127
 36:0   Control change          0, controller 1, value 1
 36:0   Control change          0, controller 1, value 1
 36:0   Control change          0, controller 1, value 1
 ...

Ami ebből a kimenetből kiderül: a "36:0 porton levő eszköz MIDI CC üzenetet küld a nullás csatornán. Az egyes CC üzenettel kapott érték néha 1, néha 127". Az 1 jelentése: 1 egységgel növelni, a 127-é pedig, hogy 1 egységgel csökkenteni (A 127 valószínűéeg a -1 előjeles bináris ábrázolása miatt lesz 127). Ezzel világossá vált, hogy a Mixxx ártatlan, az eszköz a ludas, ugyanis én csak szépen lassan egy irányba, az óramutató járása szerint tekertem, mégis mindkét irányba jelzett.

Ilyen működési elvű rotary encoderrel leggyakrabban a számítógépes egerünk görgőjénél találkozunk. Azoknál is gyakran előfordul, hogy egy mozdulattal tudunk fel és le is görgetni. Ezt többnyire nem az alkatrész hibája okozza. Egyszerűen csak idővel oxidálódik illetve begyűlik annyi por és szösz az érzékelők közé, hogy megzavarja a jel ütemezését. Egy egyszerű takarítás szinte mindig megoldja a problémát.

Gondoltam, itt is teszek vele egy próbát. Hátha elég lesz ennyi és nem kell forrasztani.

Szétszedés és javítás

Fogtam hát ezt a "rezsót" és feltettem a műtőasztalra.

Hercules DJControl Inpulse 500 szétszedésre előkészítve

Akármit is akarok vele kezdeni, biztos, hogy le kell venni az encoder kupakját. Így is tettem. Ha szerencsém lett volna, az encoder tengelye és a ház között lett volna annyi hely, hogy ott be tudjak fújni egy kis levegőt és kontakttisztítót. Mint ahogy a feltételes módból már sejthető, nem volt.

Leszedtem minden kupakot és kihajtottam a középső panel két szélén jól látható 4-4 torx csavart. Ehhez egy T9 méretű csavarhúzót használtam.

Hercules DJControl Inpulse 500 kihajtott előlapi csavarokkal

Ezzel egyből le is jött ez a középső panel, ami egyébként egy vékony festett acéllap. Hercules DJControl Inpulse 500 levett előlappal

Első pillantásra úgy tűnt, nem lettem sokkal előrébb, mert a fémlap alatt egy ugyanakkora műanyag van, de egy apróság azért változott: most már el tudtam távolítani a navigálógombot körülvevő diffúzorgyűrűt.

Hercules DJControl Inpulse 500 navigáló gomb hozzáférhető

Így már teljesen jól hozzáférhetővé vált a gomb alatti encoder. Megfújtam a környékét sűrített levegővel és egy kis kontaktspray-t is tüsszentettem a belsejébe, majd jó alaposan megtekertem-megnyomkodtam. (Ha valaki hasonló javításra adja a fejét, ügyeljen rá, hogy csak olyan spray-t használjon, ami elektronikához való, nem oldja a műanyagot és maradéktalanul elpárolog.)

Ellenőrzés és összeszerelés

Hogy kiderüljön, változott-e valami, ismét feldugtam a laptopra, lefuttattam a már ismert parancsot és láss csodát: szép konzisztens egyesek jöttek jobbra csavarva.

[learnforeffect]$ aseqdump -p 36:0
Waiting for data. Press Ctrl+C to end.
Source  Event                  Ch  Data
 36:0   Control change          0, controller 1, value 1
 36:0   Control change          0, controller 1, value 1
 36:0   Control change          0, controller 1, value 1
 36:0   Control change          0, controller 1, value 1
 36:0   Control change          0, controller 1, value 1
 36:0   Control change          0, controller 1, value 1
 36:0   Control change          0, controller 1, value 1
 36:0   Control change          0, controller 1, value 1
 ...

(A másik irányba tekerve pedig csak 127-ek jöttek, de senkit nem untatnék hosszú logokkal. El tudjátok képzelni.)

A műtét sikeres volt, úgyhogy gyorsan összeraktam. Nem volt benne semmi érdekes, csak fordított sorrendben kellett végighaladni a szétszedésen: gyűrű a helyére, lap a helyére, csavarok vissza és már kész is volt.

Végszó

Azóta már jó pár órát gyakoroltam vele, minden kezelőszervét alaposan teszteltem, kiválóan, megbízhatóan biztosította a talpalávalót.

Összességében egy masszív, strapabíró eszköznek tűnik és az elérhető funkciók számára sem lehet panasz. Ideális választás lehet kezdő és középhaladó DJ-k számára is..

Linkek