ASIO channels with chinese characters


#1

Hello,

I am using classes AudioDeviceSelectorComponent and AudioDeviceManager to provide audio setup to my audio application.
When selecting ASIO drivers, channel names are written with Chinese characters in configuration list box (although no support for Chinese language has ever been considered).

Using juce 1.52.

Please can someone help ?
Thomas


#2

I don’t understand - are you saying that your ASIO device has chinese names which aren’t shown correctly?


#3

Not the device itself but the channels below.
I attached screenshot.


#4

…so are you saying that the names shouldn’t be chinese? I can’t understand what it says, so I have no idea whether it looks correct or not.


#5

It should not be Chinese.
I expect it to be English.


#6

There are two possibilities:

  1. The juce ASIO wrapper works perfectly for all other devices, but is somehow translating your device’s names from english to chinese.
  2. The device is returning chinese names.

Personally, I think option 2 is more likely.


#7

After checking with unsatisfied user,
it happens with Asio4All (as well as on my computer).
I will check with another audio card if find some time,
by the way, it seems to be an asio4all issue.

Sorry for the noise,
Thanks for your help


#8

Or 3 the endian order is off on the Unicode name


#9

Doesn’t look like an error to me. If you look at the chinese characters, the last character is different on each channel, as you’d expect to see if it was the chinese equivalent of “channel 1”, “channel 2”, etc.


#10

Bad news !
I have attached a screenshot with M-Box 2 USB: chinese names again.
I know that my M-Box driver does not return chinese names :wink:

By the way, I am using Juce 1.52.
Does anyone know if this issue has been fixed ?
I have noticed many changes between 1.52 and 1.53
and I don’t want to spend a lot of time for the upgrade from 1.52 to 1.53 if I don’t get this fix.

Suggestions are welcome :slight_smile:


#11

What on earth makes you assume this is a juce problem?? To me it looks like those names are legitimate chinese (or japanese?) names - like I said above, look at the way their endings differ by a single character! It doesn’t sound at all like a bug, it looks like the drivers are returning chinese names because they think that’s what your locale is!


#12

My computer is running a french version of windows.
No application of this computer has ever shown any characters like these.
I did not set any locale in the application,
just wrote the following code :

class TempDialogWindow : public DialogWindow
{
public:
    TempDialogWindow (const String& title, const Colour& colour, const bool escapeCloses)
        : DialogWindow (title, colour, escapeCloses, true)
    {
    }

    ~TempDialogWindow()
    {
    }

    void closeButtonPressed()
    {
        setVisible (false);
    }

private:
    TempDialogWindow (const TempDialogWindow&);
    TempDialogWindow& operator= (const TempDialogWindow&);

};

int MainWindow::showModalDialogEx(const String& dialogTitle,
                                   Component* contentComponent,
                                   Component* componentToCentreAround,
                                   const Colour& colour,
                                   const bool escapeKeyTriggersCloseButton,
                                   const bool shouldBeResizable,
                                   const bool useBottomRightCornerResizer)
{
    TempDialogWindow dw (dialogTitle, colour, escapeKeyTriggersCloseButton);

    dw.setContentComponent (contentComponent, true, true);
	
	// the only line we need to add:
	dw.setUsingNativeTitleBar(true);
    
	dw.centreAroundComponent (componentToCentreAround, dw.getWidth(), dw.getHeight());
    dw.setResizable (shouldBeResizable, useBottomRightCornerResizer);
    const int result = dw.runModalLoop();
    dw.setContentComponent (0, false);
    return result;
}

---------------

invoked by:
...
			int numInputs = audioProcessor->getNumInputChannels();
			int numOutput = audioProcessor->getNumOutputChannels();
			AudioDeviceSelectorComponent selectorComp (*deviceManager,
													   numInputs, numInputs,
													   numOutput, numOutput,
													   true, false, true, true);
			selectorComp.setSize (500, 450);
			showModalDialogEx (TRANS("Audio Settings"), &selectorComp, this, Colours::lightgrey, true, false, false);
...

How to get proper labels for audio device channels ?


#13

You need to ask your device driver manufacturer that question, not me.


#14

[quote=“dilig0”]
and I don’t want to spend a lot of time for the upgrade from 1.52 to 1.53 if I don’t get this fix[/quote]
You could try the 1.53 JuceDemo for a quick check.

Chris


#15

After investigations, was an ASIO SDK issue.