Anybody figured out how to get Tonex one as an audio interface on Zynthian working?

Hi All,

Anybody any suggestions how to use Tonex as an audio interface on Zynthian?
The interface is recognised as device. I is show as inou and output device in the Zynthian GUI.
Unfortunately no audio in and no audio out. No matter what I set the for samplerate, buffer size and number of buffers… And I selected teh device as input and output for the cjain I am using.
Also on the tonex I switched direct monitoring on and off… (read somewhere it might be necessary)

Any suggestions? :slight_smile:

Cheers,
Maarten

1 Like

Hi @maartmaart,

Have you tried using it in fail-safe mode, selecting “Generic USB”, with related sample rate and buffer size basic settings, as audio device?

Hi @Aethermind

Thanks for your message :slight_smile:

I am not sure what you mean with fail-safe mode… (I only know safe mode drom windows drivers…)…
but… I tried all permutations possible on the audio soundcard page ‘Soft x-run mode’ but no succes…
I am pretty sure it has to do with Tonex… but perhaps somebody figered it out…

Thanks again and cheers,

Maarten

1 Like

Are you trying to use the Tonex as the primary audio interface by selecting it in webconf or as a secondary audio interface using audio hotplug?

For the former, you should be able to select it from the dropdown titled “Soundcard Device” as highlighted in this screenshot:

You will have to select the Audio Input and Output routing in each chain’s Audio In/Out menus.

If the latter then it should appear as an interface in teh Hotplug Audio menu where it can be enabled. Then you need to route inputs and outputs in chain Audio In/Out menus.

Hi Riban,

Thanks… but I have tried using the Tonex as the primary audio interface by selecting it in webconf AND as a secondary audio interface using audio hotplug.

Zynthian does not start when Tonex is the primary audio interface.
When using a Scarlerr or Lewit device as primary audio interface then the Tonex is show in the Zynthian GUI. Input and output and is selectable in the chains as input and/or output.

When connecting the Tonex as secondary device It get:

Sep 29 16:24:14 zynthian kernel: usb 3-1: new high-speed USB device number 5 using xhci-hcd
Sep 29 16:24:14 zynthian kernel: usb 3-1: config 1 interface 1 altsetting 0 bulk endpoint 0x87 has invalid maxpacket 64
Sep 29 16:24:14 zynthian kernel: usb 3-1: New USB device found, idVendor=1963, idProduct=00d1, bcdDevice= 1.35
Sep 29 16:24:14 zynthian kernel: usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=18
Sep 29 16:24:14 zynthian kernel: usb 3-1: Product: ToneX One
Sep 29 16:24:14 zynthian kernel: usb 3-1: Manufacturer: IK Multimedia
Sep 29 16:24:14 zynthian kernel: usb 3-1: SerialNumber: 00000000000000210123
Sep 29 16:24:14 zynthian kernel: cdc_acm 3-1:1.0: ttyACM0: USB ACM device
Sep 29 16:24:14 zynthian mtp-probe[3440]: checking bus 3, device 5: “/sys/devices/platform/axi/1000120000.pcie/1f00300000.usb/xhci-hcd.1/usb3/3-1”
Sep 29 16:24:14 zynthian mtp-probe[3440]: bus: 3, device: 5 was not an MTP device
Sep 29 16:24:14 zynthian mtp-probe[3448]: checking bus 3, device 5: “/sys/devices/platform/axi/1000120000.pcie/1f00300000.usb/xhci-hcd.1/usb3/3-1”
Sep 29 16:24:14 zynthian mtp-probe[3448]: bus: 3, device: 5 was not an MTP device

Is this significant? Something wrong with how Zynthian interprets the audio card?

Thanks for your time and support,
Maarten

Throw us a bone here, which model of Tonex? What zynthian os? Whats the output of aplay -l on the cli?

2 Likes

We did get one bone already above.

1 Like

Hi @Baggypants , @tunagenes , @riban , @Aethermind

I saw on the internet that more people have problems in Linux to get the ToneX ONE going.

Anyway… perhaps someone has idea’s:\

aplay -l →
*** List of PLAYBACK Hardware Devices ***
card 0: One [ToneX One], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: Mobile [CONNECT 6 Mobile], device 0: USB Audio [USB Audio]
Subdevices: 0/1
Subdevice #0: subdevice #0

Version:
zyncoder: [vangelis (a03a079)]
zynthian-ui: [vangelis (96fa846)]
zynthian-sys: [vangelis (4e453b7)]
zynthian-data: [vangelis (6ac209e)]
zynthian-webconf: [vangelis (f070940)]

Hardware PI5 4Gb.
Lewitt Connect 6 (Using the mobile USB. The main USB is connect to Windows PC) (Great audio USB!!)
ToneX one (Small but powerfull :smiley:)

Thanks people!
Cheers, Maarten

1 Like

Hi there @maartmaart :slight_smile:,

I didn’t know about these two audio interfaces. Albeit they look geared for specific usage, both seem ingenious and well equipped USB devices.

All best luck!

Hi @Aethermind ,

:smiley: Specific use? A little bit…
The Lewitt makes it possible to record the zynthian via USB, so totally digital into my recording software on my PC… (Also the 4 analog inputs of which 2 go to the Zynthian (Guitar and Voice) are via the Lewitt available as ‘Dry’ ( = input for the zynthian) signals within my recording software.
Tada :slight_smile:
(I try to optimize the AD and DA conversions)

Thanks for your willingness to help.

Cheers,
Maarten

1 Like

Can you get anything re the problem from the log file(s)? I don’t know where to look specifically, I’m hoping you do.

Can you successfully use the Tonex under Raspberry Pi OS without Zynthian? If so that tells us that at least it works with base RPi. If not, then you might be able to get some help from IK Multimedia. And I wonder if given that error message they could help in either case.

Gemini response re the error message:

The message “bulk endpoint 0x87 has invalid maxpacket 64” indicates a USB communication error, likely due to a mismatch between the device’s reported maximum packet size and the USB standard for its bus speed, possibly requiring a configuration update to match a USB 3.0 high speed device’s standard 512 bytes or more, or a configuration error in the device’s USB descriptors. [1, 2]

Understanding the Error

  • Bulk endpoint: A type of USB endpoint used to transfer large amounts of data, such as files or storage. [2]

  • MaxPacket: The largest amount of data that can be sent in a single USB transfer. [2]

  • 0x87: This is the endpoint address. [3]

Causes of the Error

  • Incorrect MaxPacket size: A device reported a MaxPacket size (like the 64-byte value mentioned) that doesn’t match the USB bus speed. For example, if the device is operating at high speed, it should support a larger MaxPacket size. [2]

  • Misconfigured Descriptors: USB devices have descriptors that describe their capabilities, including endpoint types and MaxPacket sizes. An error in these descriptors can cause this message. [1]

  • Hardware Mismatch: The device may not be connected to a high-speed USB port, causing a miscommunication. [3]

How to Fix the Error

  • Check USB Bus Speed: Verify that the device is connected to a USB 3.0 or later port for high-speed data transfer, which supports larger MaxPacket sizes. [2]

  • Update Device Drivers: Ensure your device has the latest drivers, as they often contain updated information and fixes for USB devices. [2]

  • Correct Device Descriptors: If you have control over the device’s firmware, check and update the USB descriptors to reflect the correct MaxPacket size for the device’s bus speed. [1]

AI responses may include mistakes.

[1] https://e2e.ti.com/support/processors-group/processors/f/processors-forum/311603/errors-with-usb_dev_serial-example

[2] https://learn.microsoft.com/en-us/windows-hardware/drivers/usbcon/usb-bulk-and-interrupt-transfer

[3] https://stackoverflow.com/questions/55073578/usb-bulk-transfer-timeout-under-linux-while-it-works-under-windows

This indicates the device is USB3. Have you tested in the Raspberry Pi’s USB3 sockets?

@DEARALL

Thanks for all your help but I am not confident that I can make it work…
I tried the Tonex One on a fresh image… audio output works but recording doesn’t.
I installed guitarix ( sudo apt install jackd2 qjackctl pipewire-pulse guitarix) to check jack2…
Unfortunately this doesn’t either. Jack crashes…

This is the generated error message:

11:29:59.876 Statistics reset.
11:29:59.907 ALSA connection change.
Cannot connect to server socket err = Connection refused
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
11:29:59.927 ALSA connection graph change.
11:30:54.616 JACK is starting…
11:30:54.617 /usr/bin/jackd -dalsa -dhw:One -r44100 -p64 -n3
Cannot connect to server socket err = Connection refused
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
11:30:54.627 JACK was started with PID=3767.
jackdmp 1.9.21
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2016 Grame.
Copyright 2016-2022 Filipe Coelho.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
JACK server starting in realtime mode with priority 10
self-connect-mode is “Don’t restrict self connect requests”
audio_reservation_init
Acquire audio card Audio2
creating alsa driver … hw:One|hw:One|64|3|44100|0|0|nomon|swmeter|-|32bit
configuring for 44100Hz, period = 64 frames (1.5 ms), buffer = 3 periods
ALSA: final selected sample format for capture: 32bit integer little-endian
ALSA: use 3 periods for capture
ALSA: final selected sample format for playback: 32bit integer little-endian
ALSA: use 3 periods for playback
11:31:01.678 Could not connect to JACK server as client. - Overall operation failed. - Server communication error. Please check the messages window for more info.
JackPosixProcessSync::LockedTimedWait error usec = 5000000 err = Connection timed out
Driver is not running
Cannot create new client
Cannot read socket fd = 27 err = Success
CheckRes error
JackSocketClientChannel read fail
Cannot open qjackctl client
JackShmReadWritePtr1::~JackShmReadWritePtr1 - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Unknown request 4294967295
CheckSize error size = 0 Size() = 12
CheckRead error
11:31:13.208 JACK is stopping…
Jack main caught signal 15

So, I stop trying to make it work. This is something for somebody who is knowledgeble and skilled.

Thanks again and enjoys your days!
:folded_hands::four_leaf_clover::four_leaf_clover::four_leaf_clover::four_leaf_clover::four_leaf_clover::folded_hands:

Maarten

Thank you, for the kind words @maartmaart!

I actually did nothing but being supportive, and giving my two cents of advice. What you achieve with the Lewitt and Zynthian Is really remarkable :+1:.

Best Regards

1 Like