JCally JM12 EQ app for Android
Contour EQ is a free, open-source Android app that reads and writes the parametric EQ stored inside the JCally JM12. The EQ is written into the dongle itself, so it works in every app and on every device you plug it into.
Stable 1.8.0
Install ContourWhat Contour does on the JM12
| Bands | Filter typesPKLSHSLPHPBPAP | Kept in the DAC | DAC settings in the app |
|---|---|---|---|
| 5 bands | 1 EQ | DAC settings: EQ on/off, Global gain |
| Supported since | Contour 1.7.0 |
|---|---|
| USB ID (VID:PID) | 31B2:0111 |
| Chip / protocol | KT Micro |
| EQ | Read and write; every send is read back from the DAC once it is back on USB |
| Bands | 5 |
| Filter types | PEAK, LOW SHELF, HIGH SHELF |
| Gain | -12 to +12 dB (shelves -6 to +6 dB) |
| Q | 0.2 to 10 (shelves 0.7 to 1.0) |
| Frequency | 20 Hz to 20 kHz |
| Preamp | none |
| Where the EQ is kept | In the DAC's memory: one EQ, no slots. Contour saves it after each send, and the JM12 then drops off USB for about one to three seconds. It stays after unplugging. |
| DAC page | Since 1.7.0: the EQ switch (OFF / ON) and GLOBAL GAIN from -18 to +3 dB in 1.5 dB steps. Each change is saved and read back once the JM12 is back on USB. A send turns the EQ switch ON if it is OFF. |
| Tested | By the developer on hardware and on a test rig, November 2026, firmware 1.0.1. |
Using Contour with the JM12
- Keep the profile to 5 bands of PEAK, LOW SHELF or HIGH SHELF, with no preamp. A profile that does not fit can't be sent until you change it; the red line under HOLD TO SEND says what to change.
- Send it with HOLD TO SEND. A new JM12 ships with its EQ switched off, so the first send also switches it ON. After each send the JM12 drops off USB for a moment and comes back on its own; Contour waits for it and then reads every band back.
- If the JM12 does not come back after a send, or comes back but does not answer, unplug it and plug it back in; Contour marks that send as not confirmed and asks you to. On the test bench this happened twice in about 45 saves.
- Play at 48 kHz, the usual USB rate on Android. The JM12 works out its filters as if the stream ran at 24 kHz, so Contour writes each frequency converted for a 48 kHz stream; a player that forces 44.1 kHz shifts every band about 8% down.
Everything else works the same on every DAC: How to use Contour.
Contour EQ and devicePEQ
JCally publishes no EQ tool for the JM12. The open-source devicePEQ web tool lists it, under its USB name KT02H20 HIFI Audio, with five PEAK bands and no shelves. Contour adds LOW SHELF and HIGH SHELF up to -6 and +6 dB, PEAK bands up to Q 10, and GLOBAL GAIN, the dongle's output level. Contour runs on the Android phone the dongle is plugged into, keeps your profiles in a library on the phone and needs no internet or account.
Questions about the JM12
Is there an EQ app for the JCally JM12 on Android?
Yes. Contour EQ reads and writes the JM12's 5-band EQ from an Android phone, with PEAK, LOW SHELF and HIGH SHELF filters, and its DAC page sets the EQ switch and GLOBAL GAIN. It is free and open source (Apache 2.0). JCally publishes no EQ tool of its own.
Can Contour update the JM12's firmware?
No. Contour does not update firmware. It reads and writes the EQ, the EQ switch and GLOBAL GAIN. It was tested on a JM12 with firmware 1.0.1.
Why does my JM12 show up as KT02H20 HIFI Audio?
That is the name the JM12 reports over USB, after its KT02H20 chip. It shares its USB ID, 31B2:0111, with the Kiwi Ears Allegro Mini, so Contour tells the two apart by that name.
Can I make the JM12 louder?
Yes, with GLOBAL GAIN on the DAC page, from -18 to +3 dB in 1.5 dB steps. The JM12 ships at about -6 dB, so it can play up to 9 dB louder than it came.