blog.plee.me About software, technology and random things

7Aug/170

Fixing Low Stereo Out Sound Volume For the Yamaha MG12XU / MG16XU / MG20XU Audio Mixer

Hi!

I recently got my hands on a Yamaha MG12XU audio mixer and dove right into the world of amateur analog audio mixing.

Everything went fine until it came to the USB interface. When trying to record the sound that was output via USB to my computer (basically STEREO OUT without the master stereo fader), it did arrive, but the volume was really, really low. Audacity barely showed any change in the graphs displaying the signal volume (went from a one pixel thick line to an occasionally 2-3 pixel thick line).

Additionally, the audio that went into the mixer via USB (channel 11/12 on the MG12XU) was considerably louder than all my other channels. In fact, if I used the USB attenuator function (press the PROGRAM dial/button 5x, turn the dial to adjust between -24 to 0 dB and confirm by pressing it once more) to set it to -24 dB, the lowest setting, only then was it as loud as all my other channels. That should have been the first indication as to what was wrong.

This was after installing the YAMAHA Steinberg USB driver from the official Yamaha Professional Audio website, which I strongly recommend. The default one that Windows 10 installed when it first detected the mixer somehow resulted in CPU usage skyrocketting due to svchost.exe. Not sure what that was about.

I tried installing the ASIO4ALL driver, but it didn't appear to make any difference, so I called the technical support hotline.

The very friendly and competent person on the other end explained to me that the signal strength the mixer was working with from the input all the way to STEREO OUT was simply too low. I had intentionally kept everything just as low as I could with the channel sliders on the 0 positions because I didn't want the gain settings to distort my signals. Turns out that mixers work best with the highest volume levels possible without distortion or constant peaking which does make sense - if you have more data for the signals, you can do more with them in terms of EQ, FX or anything really. Another clue was the monitor level display on the right side. For normal signals it only went up to a strength of about -25 to -30, which is basically the two bottom indicators of a total of twelve. They should be around the 0 level (5th from the top).

Once I realized that, it was only a matter of increasing the gain levels for the different input channels and lowering the master stereo slider as well as the phones level knob (and the AUX1 level knob in the SEND MASTER section) accordingly because the signal was now very strong. The monitor level now usually filled up to the 4-6 bottom-most lights (-15 to -6).

One test recording confirmed that the STEREO OUT USB signal was now as loud as what I heard on my headphones.

This was loud enough for me (the phones dial being set to 1 / the first "notch"), and translated to a gain level at 8 out of 10 "notches" (3 o'clock position) for all my sound cards (which were set to 100% volume in Windows for input as well as output) as well as my XLR microphone. Luckily, at this point there was no noticeable distortion yet.

Oh, and the volume in the USB input (channel 11/12) was now as loud as the other ones even without any attenuation set.

That's it!

I hope that helps you.

PS: Sorry if that is a bit of an obvious "hint", but as a beginner in the audio space myself, the advice from the Yamaha customer service representative made a light bulb switch on in my head. I thought I would share it in case you are having the same experience.

PPS: Even though I can only speak of the MG12XU, I am pretty certain that this applies to the sister models MG16XU and MG20XU, too, and maybe even the entire range of Yamaha audio mixers.

18Jan/170

PhonerLite With FRITZ!Box

Hello!

If you want to set up your PhonerLite VoIP/SIP client with the FRITZ!Box so you can receive phone calls on your computer as well, of course you should have a look at the official AVM documentation (like the one for the FRITZ!Box 7390).

However, I encountered the following problems:

  • outgoing calls would result in a "480 Temporarily Unavailable" error (even the test number **797)
  • saving the configuration (tab "Configuration" => "Save" button) repeatedly would cause the status bar to alternate between
    • showing a red indicator and the error message "sip:<number>@fritz.box not registered <Connectivity Checks Failed>" every second click
    • showing a green indicator and the message "sip:<number>@fritz.box registered" every other click

I changed the following server / connection settings to fix the problem:

  • Proxy/Registrar: <FRITZ!Box IP address instead of fritz.box, e.g. 192.168.1.1>
  • Domain/Realm: fritz.box

After that, every time I saved the configuration if would show the success indicator and message and telephony just worked in general.

My local network interface uses an external DNS server for hostname resolution and I have added the fritz.box name manually in my hosts file. This might be why this was causing me problems.

I hope this was of any help to you in case you encountered this as well.

Thanks for reading!

1Dec/130

Installing the Logitech F710 Wireless Gamepad on Windows 7 x64 (XInput Driver)

Update from 2015-10-18: Windows 10 Pro (x64) does not appear to require this workaround. It automatically installed the correct driver and allowed me to use the controller right away.

Hi!

In order to be able to benefit from using the XInput mode for the Logitech F710 Wireless Gamepad, of course you need to install the correct driver. This is made a little hard for Windows 7 x64 seeing as there is no driver that comes with the device itself.

I found a guide on how you can manage it by using Microsoft's official Xbox 360 Controller driver.

Be careful though, you're messing with driver files. Use this guide at your own risk.

  1. Go to the Microsoft Hardware downloads page: http://www.microsoft.com/hardware/en-us/downloads
  2. Click on the category "Gaming"
  3. Click on the link "Xbox 360 Wireless Controller for Windows"
  4. Download the correct version of the file (Windows 7 64-bit only) and install it
  5. Open the Device Manager (e.g. [Windows]+[Break] => Device Manager)
  6. Right-click on the entry with "Logitech F710" in its name and the yellow triangle icon in front of it
  7. Open its properties
  8. Switch to the "Details" tab
  9. Choose the property "Hardware Ids"
  10. Right-click on the one without the "&REV_<Number>" at the end of the name and copy it. It should look something like this: USB\VID_046D&PID_C21F
  11. Go to the directory in which you installed the Xbox 360 Accessories Software a minute ago: C:\Program Files\Microsoft Xbox 360 Accessories
  12. Open the file Xusb21.inf with a plain text editor like Notepad
  13. At the top in the commented section you can see the line containing "Wireless Common Controller USB\Vid_045E&Pid_0719". Search for "USB\Vid_045E&Pid_0719" and replace each occurence with the hardware ID you copied earlier. Afterwards, save it to the file. You might need to have your editor program in elevated privilege mode in order to do so.
  14. Go back to the Device Manager with the open F710 properties window
  15. Switch to the "Driver" tab
  16. Click on the "Update Driver..." button
  17. In the assistant, choose "Browse my computer for driver software"
  18. Choose the path "C:\Program Files\Microsoft Xbox 360 Accessories"
  19. Confirm the driver warning and you're good to go

To check if it really worked, you can just press the Logitech button on the game controller and it should cause a little frame with the Xbox logo, the text "Click for Help" and a down-pointing arrow button and an X button to pop up in the lower center of your screen.

I do not usually recommend modifying driver files like that, but I have used this method before and it worked for me, so I stopped looking for a better way, as there doesn't seem to be any official solution provided by Logitech themselves (which is a shame).

Original post and the ones who can be credited with this solution: post by breakfastmonkey on the official Logitech forums (referencing a couple of previous posts in the same thread).

Thanks for reading.

29Apr/100

Internet Connection Reset on the Speedport W 722V (Type B)

Hi!

Since I've recently found out that my new router, the T-Home Speedport W 722V Type B, apparently does not support automatic disconnecting at a specific time (in order to circumvent the 24-hour connectionreset by my ISP), I took a route that my good friend Pool has been using for quite some time.

It is a batch script, so in order to use it, you have to be able to execute it.

On a side note, the Type A model of this router does support automatic disconnecting! Make sure you choose "Other provider" when you're in the internet configuration menu in order to be able to see the setting for that. The "T-Online" option sadly does not show it.

What you need:

  • A Windows machine that is running at the given time (has to execute the script)
  • cURL for Windows, preferably the win32-ssl-sspi version (download page). win32-ssl should be fine as well.
  • Configure a scheduled task for the script, which is not covered in this guide (but quite simple. Just make it execute the script.)

The batch script:

REM Speedport W 722V Type B Internet Reset Script v1.0 - 2010-04-29
REM Written by pl (plee.me)
REM
REM Works with the T-Home Speedport W 722V Type B home router.

REM START CONFIGURATION
REM Adjust these variables to your own ones!
SET PWD=12345678
SET COOKIEFILE="routercookies.txt"
REM END OF CONFIGURATION

@echo off
curl -k https://speedport.ip/cgi-bin/login.cgi -d "pws=%PWD%" -e "https://speedport.ip/hcti_start_passwort.stm" -c "%COOKIEFILE%"
curl -k https://speedport.ip/cgi-bin/status_startseite.cgi -d "connect=0&disconnect=1&block=0&nonblock=0&abc=0" -e "https://speedport.ip/hcti_startseite.stm" -b "%COOKIEFILE%"
curl -k https://speedport.ip/cgi-bin/status_startseite.cgi -d "connect=1&disconnect=0&block=0&nonblock=0&abc=0" -e "https://speedport.ip/hcti_startseite.stm" -b "%COOKIEFILE%"
curl -k https://speedport.ip/cgi-bin/logoutall.cgi -e "https://speedport.ip/hcti_startseite.stm" -b "%COOKIEFILE%"
del "%COOKIEFILE%"

What this script does:

It logs on the web administration interface, uses a hidden option to disconnect the internet connection, then uses a hidden option to connect, and finally logs out again.

Because the cookie is cached in a text file, it is deleted at the end of the script.

Additional information:

The lines beginning with REM are comments, so you might as well leave them out.

If you run the script, make sure that you either have the cURL directory in the PATH environment variable, or that you set its folder as the working directory, so that it can find the curl.exe and actually execute the (central) steps of the script.

I'm sure that this script can be optimized (probably a lot), but for now, it's doing the job.

I hope that was of any help to you, and thanks for reading! 🙂

8Jun/090

Asus P5B and the broken JMicron SATA/PATA controller

Hey there!

Yesterday, while I was trying out my new hard drive, I noticed that it apparently took ages to defragment. Not only that, but it also took away a major amount of resources. Funnily enough, the CPU usage didn't show up at all in the task manager (I'm using Windows XP x64 Professional). However, the mouse cursor was lagging behind and whenever I played audio or video - be it a YouTube video or an actual video in VLC - it lagged there as well.

So what could it be?

(Skip to the bottom to see the conclusion 🙂 )

My first guess was that there was a hardware failure. Probably with the new hard drive because my others all worked, right? Technically it was unlike for my new hard drive to be damaged though as I formatted it the day before (with TrueCrypt) and it showed around 90 MB/s of formatting speed.

After a series of rebooting and benchmarking via HD Tune (also in Windows Safe Mode) I realized that at the start (basically the first time after a bootup) the hard drive worked fine with an average of about a 100 MB/s transfer rate. However, at around 60%+ it sunk drastically to a minimum of 1.4 and a maximum of 1.5 MB/s. It stayed there till the end of the benchmark and for every following one (until you rebooted).

Next thing I did was to change the BIOS settings for the JMicron SATA/PATA Controller from Enabled / IDE to Enabled / AHCI. After the Windows bootup it recognized a new Primary IDE channel, Secondary IDE channel, Standard Dual Channel PCI IDE Controller and one of my two optical drives (why only one? Don't ask me :D). The hard drive didn't show up at all - neither in the Disk Management nor in the Device Manager. A change from Enabled / AHCI to Enabled / RAID (with "no raid" in the JMicron settings) did the same thing: recognition of new channels and no new hard drive.

The first run with an HDD on the JMicron controller.

Every other run following the first one with an HDD on the JMicron controller.

For reference - this is what a healthy drive usually looks like:

This is what a healthy HDD usually looks like in HD Tune.

When I looked that the Device Manager I found that there were two SATA controllers in the IDE ATA/ATAPI controllers category. One was the Intel(R) ICH8 2 port Serial ATA Storage Controller - 2825 and the other one was the Intel(R) ICH8 4 port Serial ATA Storage Controller - 2820. My main / old hard drives are all hooked to the 4 SATA ports on the lower half of the P5B, some of them using an eSATA to SATA cable. So that had to be the 4 port SATA controller, which worked fine. Thus, the 2 port controller was the one controlling the eSATA port in the back pane - and making trouble.

The moral of the story is that obviously the JMicron SATA/PATA Controller doesn't do his job on the ASUS P5B at all. So, in case you're looking for more SATA ports, you're going to have to buy a new SATA controller.

I myself will be settling with SATA and eSATA for my biggest drives and using USB for my smallest one.

Cheers 🙂