Forum Replies Created

Viewing 9 posts - 1 through 9 (of 9 total)
  • Author
    Posts
  • #79453
    Profile photo of Crosan007
    Crosan007
    Participant

    I’m very interested in this “sniff” of the dSnake protocol…

    Do you happen to have any of the “initialization bits” that are exchanged when a StageBox or Expander first connect to the mixer? I noticed that my QU32 didn’t “register” a dSnake simply by plugging in the Ethernet to the dSnake port, so I’m assuming there has to be some kind of initailization / handshake.

    I’d like to write a GStreamer pipeline to parse these raw layer-2 frames into an audio stream on the device. I’m already using GStreamer to parse the raw USB audio (Thank you A&H for fixing the noise issues with the 1.95 firmware), but I’d really like to give this a shot too! For anyone interested in how to capture USB raw audio into GStreamer (and Open Broadcast Studio), check this out: https://github.com/fzwoch/obs-gstreamer/wiki/examples#allen-and-heath-qu32-source-example

    #78145
    Profile photo of Crosan007
    Crosan007
    Participant

    Hooray!

    1.95 seems to have completely fixed the issue for me.

    I’m running Ubuntu 16.04.4 LTS on an Intel 4790-K, USB3.

    I’m mapping the USB sources via GStreamer as described Here and connecting into OBS Studio as described here

    #73155
    Profile photo of Crosan007
    Crosan007
    Participant

    Has anyone tried the new 1.95 firmware yet?

    The release notes seem to indicate a possible fix for this issue:

    Changes to USB – B streaming to improve stability with some computers/USB hosts

    https://www.allen-heath.com/media/Release-Notes-Qu-firmware-V1.95.pdf
    https://www.allen-heath.com/key-series/qu-series/#tab5

    I’m planning on trying it out sometime in the next two weeks…

    #68821
    Profile photo of Crosan007
    Crosan007
    Participant

    It’s been a while since I’ve followed up on my USB / RaspberryPi project, so here’s a quick update:

    * USB -> RaspberryPi -> 3.5mm headphones via GStreamer works flawlessly, there are no weird noises.
    * USB -> RaspberryPi -> TCP/IP -> Intel i7 video mixing computer -> This still exhibits the strange noises.

    It seems like there’s still some degree of timing error with how the buffers are timestamped / played back. It’s very weird IMO that the noise would not occur when monitored directly via the Pi’s 3.5mm jack, but the noise does occur when I stream two tracks
    of audio over the network to my Intel computer (streaming format is raw inside an MKV container).

    Here’s a link of the noise that occurs when using the network-stream approach (thereby using the Pi’s USB port instead of the desktop’s)
    https://owncloud.ccrossan.com/index.php/s/kLQnRu2zPEDPPnj

    #68367
    Profile photo of Crosan007
    Crosan007
    Participant

    Go for it Bob! The only thing that may be an issue is the speed of your SD card (or USB drive – probably a better idea) since there’s no artificial software limitation like there is on QU-Drive based recordings, you could potentially record all 32 tracks at the same time.

    I’m not sure if the mixer firmware will allow QU-Drive and USB-B streaming to be used at the same time, but if so, this would be a good thing for you to look into!

    You can follow steps 1,2, and 3 of the “Installation Instructions” on my GitHub project if your goal is simply “on-device” recording with a RaspberryPi: https://github.com/crossan007/PiCamFleetMapper

    If you wanted to dump all 32 channels to a single, multi-channel wave file, you could run:

    
    gst-launch-1.0 \
            alsasrc name=audiosrc device=hw:CARD=QU32,DEV=0 ! \
            audio/x-raw,channels=32,layout=interleaved,rate=48000 ! \
            filesink location=~/recording.wav
    

    If you want to grab the first 2 channels from your device and store in a 2 channel wave, and re-sample:

    
    gst-launch-1.0 \
            alsasrc name=audiosrc device=hw:CARD=QU32,DEV=0 ! \
            audio/x-raw,channels=32,layout=interleaved,rate=48000 ! \
            deinterleave name=d \
            interleave name=i  \
            d.src_0 ! queue ! audioconvert  ! i.sink_0 \
            d.src_1 ! queue ! audioconvert  ! i.sink_1 \
            i. ! \
            audio/x-raw,format=S16LE,channels=2,layout=interleaved,rate=44100 ! \
            filesink location=~/recording.wav
    
    

    If you want the end file to be an MP3, just change the end of the pipeline (after the final capsfilter) to:

    
            audioconvert ! lamemp3enc ! filesink location=~/recording.mp3
    
    

    Once you get the hang of sources (alsasrc), capability filters (audio/x-raw), plugins (interleave/deinterleavve), and sinks (filesink), GStreamer is a really simple, magical, powerful tool!

    Elements and plugins: https://gstreamer.freedesktop.org/documentation/plugins.html

    #68359
    Profile photo of Crosan007
    Crosan007
    Participant

    Hi Frank,

    I’d be glad to share here as well.

    Currently my entire production workload is running purely on Linux, so I’ll have to do some research (which I may or may not get around to) in order to make things work on Windows. Additionally, my personal Windows & Intel DAW uses are limited, as my current primary focus is two channel live streaming (with as few DAC/ADCs as possible).

    The bulk of my current platform is really just a bunch of GStreamer commands (known as pipelines) tied together: GStreamer allows you to write a few commands or text files that describe the way you want your streams to flow. GStreamer supports audio, video, subtitles, and event GPS timing data.

    I’m running a GStreamer pipeline on my Raspberry Pi 3 that captures the raw audio from my QU-32’s USB output. The input format is a 32 channel interleaved audio stream (each channel in the board’s native output format).

    From here, I’m using GStreamer on the RasPi to “deinterleave” the stream – so that I can access and manipulate each of the streams independently – specifically to resample and interleave the first two streams into a “Stereo” mix. This happens to be the “Mix 9-10” that I’ve mapped from my board’s System Utilities | USB Configuration. It’s this extracted stereo stream I’m pushing over the network into my video mixing system, which also has a few GStreamer pipelines running to patch in and create a composite view of the different camera angles in use. Each of my camera angles is actually just another RaspberryPi camera pushing H.264 frames over the network.

    Now, back to (what is likely) the primary use case for the folks here: Use of a DAW on an affected Intel system without resorting to QU drive and manually shuffling files back an forth:

    The real trick(s) here are going to be:

    1) Finding / creating some piece of software that runs on Windows that is capable of emulating a sound card that will work with an off-the-shelf DAW. I’m considering solutions like JACK/ASIO, Virtual Audio Cable (VAC), or similar as discussed in this thread: https://superuser.com/questions/356536/virtual-audio-driver-for-windows

    2) Creating a “connector” that can be easily installed on a RaspberryPi to automatically configure the appropriate pipelines from the mixer attached to the Pi’s USB into the affected Intel’s _virtual_ audio interface (by way of ethernet).

    Ultimately my ideas are more of a “work around,” and not actually a solution. It’s likely that implementing this will not be an easy thing to do for those not used to working with various command line tools.

    If / when I build more of a practical guide (rather than theory), I’ll share it.

    Thanks,

    #68343
    Profile photo of Crosan007
    Crosan007
    Participant

    I’ve just connected my QU-32 to a Raspberry Pi 3, and am happy to report that there are zero issues with USB audio streaming on this $35 device. Kind of amazing how a small bug from Intel can cripple an expensive workstation…

    I’m a software engineer, and I have been learning a lot about the GStreamer application lately. I’ve built a make-shift network bridge for my QU-32 (via the Raspverry Pi 3) so I can use it on my Intel based workstation. I’m planning on refining this solution a little more so others can use it. It likely will not work in very low latency scenarios (and is not a true fix), but I’ll be willing to share what I develop to anyone interested.

    My primary use case is live streaming a high quality multi-channel mix over various streaming services, so if anyone else is in the same scenario I’d love to chat – just ping me on twitter @crossan007

    #68331
    Profile photo of Crosan007
    Crosan007
    Participant

    My last post somehow didn’t actually get posted, so I’m posting again:

    Hi All,
    I’m encountering the same issue on a machine running Linux Mint 18.2 / Sonya (Kernel version 4.8.0-53-generic).
    I’m using GStreamer to capture my QU-32’s USB-B streaming interface with the following command:

    
    gst-launch-1.0 alsasrc name=audiosrc device=hw:CARD=QU32,DEV=0 !
    audio/x-raw,channels=32,layout=interleaved,rate=48000 !
    deinterleave name=d
    interleave name=i
    d.src_0 ! queue ! audioconvert ! i.sink_0
    d.src_1 ! queue ! audioconvert ! i.sink_1
    i. !
    audio/x-raw,format=S16LE,channels=2,layout=interleaved,rate=48000 !
    autoaudiosink
    

    I get the same exact types of noises that others have shared.

    I jotted down time stamps as the noises occur, and it appears that approximately 7 seconds of “distortion” occurs ever 1 minute 11 seconds. This timing is extremely reliable, and persists across reboots, number of channels streamed.

    Additionally, I tested playback of audio using a similar command, and discovered that the same issue occurs with playback (this does require setting one or more channels to use the USB-Preamp)

    
    gst-launch-1.0 audiotestsrc !
    alsasink device=hw:CARD=QU32,DEV=0
    

    Additionally, I’ve tried “disabling” xHCI in my UEFU with no success.
    I’m using an Intel i7 4790-K CPU with 16 GB RAM and a 256 GB solid state.

    My intent of using USB streaming is for live web streaming of our events using a software based video mixer. Currently I’m using unbalanced 3.5mm into the computer’s native sound card as a fall back, not my desired mode of capture.

    I sent a tweet to A&H support, who have basically written me off since I’m using Linux (half expected that response), but it appears this issue transcends operating systems and is actually a hardware bug: https://twitter.com/allen_heath/status/953564268158488576

    The related threads I’ve found reference the same thing:

    At this point, since my intent is live streaming, I’m considering using an intermediate (non-Intel) USB capture device, and leveraging GStreamer’s TCP streaming capability to shuffle my tracks off to the mixer over Ethernet. I’ll report back if I have success with that.

    #68308
    Profile photo of Crosan007
    Crosan007
    Participant

    Hi All,

    I’m encountering the same issue on a machine running Linux Mint 18.2 / Sonya (Kernel version 4.8.0-53-generic).

    I’m using GStreamer to capture my QU-32’s USB-B streaming interface with the following command:

    
    gst-launch-1.0 alsasrc name=audiosrc device=hw:CARD=QU32,DEV=0 ! \
            audio/x-raw,channels=32,layout=interleaved,rate=48000 ! \
            deinterleave name=d \
            interleave name=i  \
            d.src_0 ! queue ! audioconvert  ! i.sink_0 \
            d.src_1 ! queue ! audioconvert  ! i.sink_1 \
            i. ! \
            audio/x-raw,format=S16LE,channels=2,layout=interleaved,rate=48000 ! \
            autoaudiosink 
    

    I get the same exact types of noises that others have shared.

    I jotted down time stamps as the noises occur, and it appears that approximately 7 seconds of “distortion” occurs ever 1 minute 11 seconds. This timing is extremely reliable, and persists across reboots, number of channels streamed.

    Additionally, I tested playback of audio using a similar command, and discovered that the same issue occurs with playback (this does require setting one or more channels to use the USB-Preamp)

    
    gst-launch-1.0 audiotestsrc ! \
            alsasink device=hw:CARD=QU32,DEV=0
    

    Additionally, I’ve tried “disabling” xHCI in my UEFU with no success.
    I’m using an Intel i7 4790-K CPU with 16 GB RAM and a 256 GB solid state.

    My intent of using USB streaming is for live web streaming of our events using a software based video mixer. Currently I’m using unbalanced 3.5mm into the computer’s native sound card as a fall back, not my desired mode of capture.

    I sent a tweet to A&H support, who have basically written me off since I’m using Linux (half expected that response), but it appears this issue transcends operating systems and is actually a hardware bug: https://twitter.com/allen_heath/status/953564268158488576

    The related threads I’ve found reference the same thing:

Viewing 9 posts - 1 through 9 (of 9 total)