This is just to let others know that some JVC devices (in my case, a 2007 JVC TF…T TV) apparently ignore commands if they are not sent three times with appropriate timing in between. To me this was not clear from reading the JVC spec at http://support.jvc.com/consumer/support/documents/RemoteCodes.pdf so I spent a lot of time and in the end found the solution by comparing what the original remote sends to what the sketch sends using a USB sound card "oscilloscope" and Audacity.
Here is code that works for me:
```
// Mute = 0xC038 (command needs to be sent three times!) - works
unsigned int jvc[104] = {
8400, 4220, // Header
527, 1583, 527, 1583, 527, 527, 527, 527, // 1100 =, 0xC
527, 527, 527, 527, 527, 527, 527, 527, // 0000 =, 0x0
527, 527, 527, 527, 527, 1583, 527, 1583, // 0011 =, 0x3
527, 1583, 527, 527, 527, 527, 527, 527, // 1000 =, 0x8
527, 75000, // Pause
527, 1583, 527, 1583, 527, 527, 527, 527, // 1100 =, 0xC
527, 527, 527, 527, 527, 527, 527, 527, // 0000 =, 0x0
527, 527, 527, 527, 527, 1583, 527, 1583, // 0011 =, 0x3
527, 1583, 527, 527, 527, 527, 527, 527, // 1000 =, 0x8
527, 75000, // Pause
527, 1583, 527, 1583, 527, 527, 527, 527, // 1100 =, 0xC
527, 527, 527, 527, 527, 527, 527, 527, // 0000 =, 0x0
527, 527, 527, 527, 527, 1583, 527, 1583, // 0011 =, 0x3
527, 1583, 527, 527, 527, 527, 527, 527, // 1000 =, 0x8
527, 75000 // Footer
};
```
Or, using the built-in function:
```
void sendJVC(long command)
{
// JVC commands need to be sent three times with 75 ms pause in between
irsend.sendJVC(command, 16, 0); // 0 = with lead-in
delayMicroseconds(75);
irsend.sendJVC(command, 16, 1); // 1 = without lead-in
delayMicroseconds(75);
irsend.sendJVC(command, 16, 1);
}
```