• @Gordon,

    I have a minimal nodejs app that extracts the data from the audio mixer. I was way off in the total number of bytes - the real count is actually 67,786 bytes for the entire state of the mixer. Here is the code that successfully got the message dump (obfuscated IP address):

    let net = require('net');
    
    let tcpSocket = net.Socket();
    
    let mixerIpAddress = "169.254.0.1"; // A&H Qu Series Mixer IP
    let tcpPort = 51325;                // ...and port
    let totalLength = 0;
    
    let sysExAllCall = new Uint8Array([0xF0,
        0x00, 0x00, 0x1A,   // Allen & Heath
        0x50, 0x11,         // Qu series 
        0x01, 0x00,         // Major/Minor version
        0x7F,               // All MIDI channels
        0x10,               // ??
        0x00,               // LSB is iPad bit, zero to disable requiring ActiveSense
        0xF7]               // All-Call
    );
    
    function tcpConnect(details) {
        tcpSocket.connect({port: tcpPort, host: mixerIpAddress}, function() {
            console.log("...connected!");
    
            tcpSocket.on('data', tcpOnMessage.bind(this));
            tcpSocket.on('close', tcpOnDisconnected.bind(this));
    
            // inform the Qu that we want telemetry from the device
            tcpSocket.write(sysExAllCall);
    
        }.bind(this));
    }
    
    function tcpOnMessage(chunk) {
        totalLength += chunk.length;
        console.log("chunk length is " + chunk.length + ", totalLength is " + totalLength);
    }
    
    function tcpOnDisconnected() {
        console.log('client disconnected');
    }
    
    // Get connected
    tcpConnect();
    

    I've attached the file that represents the data dump (and there is no missing data from what I can tell). The data dump is a file of space-separated hex values, each representing a byte received from the mixer. At the very end, you'll see a few 'fe' single-byte messages, which is the MIDI ActiveSense byte sent once-per-second by the device. The fact that only 'fe' is being sent at the end of the data means the mixer has completed its dump of NRPN and SysEx data.

    I dumped the messages as they arrived - no buffering or messing with the data. Each newline represents the end of the data for that particular message. If you need the file in a different format, let me know and I'll see what I can do.

    Edit: how fast can the wifi go? For my project to work, it's gotta be pretty close to real network speeds. I saw 13Mbps was being mentioned on the internet - is that possible?


    1 Attachment

  • Fri 2019.10.25

    'the real count is actually 67,786 bytes'

    Two observations:

    1) 67786 is greater than 65535 - might be a factor

    2) From #15 available JsVars 3995 (understood that program may have grown in the last week)

    67786 / 16 = 4237

    What is the program usage, and/or free space before the data fetch? (on EspruinoWiFi not via Node.js)

About