• @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