Giter Site home page Giter Site logo

Comments (8)

offa avatar offa commented on May 21, 2024

The device PID isn't supported and not listed here. The main question is though: Does it use the Mustang protocol, or something different like the LT series?

I took to ownership of the AUR package for this plugin as the previous versions did not compile anymore.

Nice, thank you! 😃

from plug.

callmemagnus avatar callmemagnus commented on May 21, 2024

Ha! I didn't see the list... Shame on me.

Regarding the similarity with the LT, I don't know, both products look surprisingly similar from an external point of view.

I've only used the Fender Tone android App to access it via Bluetooth.

I now wonder if the GT provides anything more than an audio interface over USB... I will check that.

from plug.

offa avatar offa commented on May 21, 2024

You can do a simple test:

  1. Add the PID 0032 to the linked code
  2. compile, run and see how far you get / where it fails

from plug.

callmemagnus avatar callmemagnus commented on May 21, 2024

I added

diff --git a/src/com/ConnectionFactory.cpp b/src/com/ConnectionFactory.cpp
index 6c52c31..71b6b2d 100644
--- a/src/com/ConnectionFactory.cpp
+++ b/src/com/ConnectionFactory.cpp
@@ -41,6 +41,7 @@ namespace plug::com
             inline constexpr std::uint16_t mustangFloor{0x0012};
             inline constexpr std::uint16_t mustangI_II_v2{0x0014};
             inline constexpr std::uint16_t mustangIII_IV_V_v2{0x0016};
+            inline constexpr std::uint16_t mustangGT_40{0x0032};
         }
 
         inline constexpr std::initializer_list<std::uint16_t> pids{
@@ -50,7 +51,8 @@ namespace plug::com
             usbPID::mustangMini,
             usbPID::mustangFloor,
             usbPID::mustangI_II_v2,
-            usbPID::mustangIII_IV_V_v2};
+            usbPID::mustangIII_IV_V_v2,
+            usbPID::mustangGT_40};
 
         DeviceModel getModel(std::uint16_t pid)
         {
@@ -70,6 +72,8 @@ namespace plug::com
                     return DeviceModel{"Mustang I/II", DeviceModel::Category::MustangV2, 24};
                 case usbPID::mustangIII_IV_V_v2:
                     return DeviceModel{"Mustang III/IV/V", DeviceModel::Category::MustangV2, 100};
+                case usbPID::mustangGT_40:
+                    return DeviceModel{"Mustang GT40", DeviceModel::Category::MustangV2, 100};
                 default:
                     throw CommunicationException{"Unknown device pid: " + std::to_string(pid)};
             }

Last changed line: total guess!

I also added the productId in a udev file rule with:

ATTRS{idVendor}=="1ed8", ATTRS{idProduct}=="0032", ENV{ID_AUDIO_MODELING_AMP}="1", MODE="0666"

Running the compiled version:

$ LIBUSB_DEBUG=4 ./src/plug                                         
[timestamp] [threadID] facility level [function call] <message>
--------------------------------------------------------------------------------
[ 0.000019] [000fd316] libusb: debug [libusb_init_context] created default context
[ 0.000024] [000fd316] libusb: debug [libusb_init_context] libusb v1.0.27.11882
[ 0.000031] [000fd316] libusb: debug [usbi_add_event_source] add fd 16 events 1
[ 0.000037] [000fd316] libusb: debug [usbi_io_init] using timer for timeouts
[ 0.000040] [000fd316] libusb: debug [usbi_add_event_source] add fd 17 events 1
[ 0.000047] [000fd316] libusb: debug [get_kernel_version] reported kernel version is 6.6.16-2-MANJARO
[ 0.000065] [000fd316] libusb: debug [op_init] found usbfs at /dev/bus/usb
[ 0.000069] [000fd316] libusb: debug [op_init] max iso packet length is (likely) 98304 bytes
[ 0.000074] [000fd316] libusb: debug [op_init] sysfs is available
[ 0.000250] [000fd31d] libusb: debug [linux_udev_event_thread_main] udev event thread entering
[ 0.005661] [000fd316] libusb: debug [linux_get_device_address] getting address for device: usb1 detached: 0
[ 0.005669] [000fd316] libusb: debug [linux_get_device_address] scan usb1
[ 0.005693] [000fd316] libusb: debug [linux_get_device_address] bus=1 dev=1
[ 0.005697] [000fd316] libusb: debug [linux_enumerate_device] busnum 1 devaddr 1 session_id 257
[ 0.005713] [000fd316] libusb: debug [linux_enumerate_device] allocating new device for 1/1 (session 257)
[ 0.005795] [000fd316] libusb: debug [linux_get_device_address] getting address for device: 1-2 detached: 0
[ 0.005799] [000fd316] libusb: debug [linux_get_device_address] scan 1-2
[ 0.005821] [000fd316] libusb: debug [linux_get_device_address] bus=1 dev=16
[ 0.005823] [000fd316] libusb: debug [linux_enumerate_device] busnum 1 devaddr 16 session_id 272
[ 0.005827] [000fd316] libusb: debug [linux_enumerate_device] allocating new device for 1/16 (session 272)
[ 0.005849] [000fd316] libusb: debug [linux_get_parent_info] dev 0x55a5a14a4d50 (1-2) has parent 0x55a5a14eefa0 (usb1) port 2
[ 0.005922] [000fd316] libusb: debug [linux_get_device_address] getting address for device: 1-3 detached: 0
[ 0.005929] [000fd316] libusb: debug [linux_get_device_address] scan 1-3
[ 0.005955] [000fd316] libusb: debug [linux_get_device_address] bus=1 dev=2
[ 0.005959] [000fd316] libusb: debug [linux_enumerate_device] busnum 1 devaddr 2 session_id 258
[ 0.005962] [000fd316] libusb: debug [linux_enumerate_device] allocating new device for 1/2 (session 258)
[ 0.005987] [000fd316] libusb: debug [linux_get_parent_info] dev 0x55a5a14ef0c0 (1-3) has parent 0x55a5a14eefa0 (usb1) port 3
[ 0.006052] [000fd316] libusb: debug [linux_get_device_address] getting address for device: 1-4 detached: 0
[ 0.006056] [000fd316] libusb: debug [linux_get_device_address] scan 1-4
[ 0.006078] [000fd316] libusb: debug [linux_get_device_address] bus=1 dev=3
[ 0.006080] [000fd316] libusb: debug [linux_enumerate_device] busnum 1 devaddr 3 session_id 259
[ 0.006083] [000fd316] libusb: debug [linux_enumerate_device] allocating new device for 1/3 (session 259)
[ 0.006104] [000fd316] libusb: debug [linux_get_parent_info] dev 0x55a5a14a4a50 (1-4) has parent 0x55a5a14eefa0 (usb1) port 4
[ 0.006162] [000fd316] libusb: debug [linux_get_device_address] getting address for device: 1-4.1 detached: 0
[ 0.006165] [000fd316] libusb: debug [linux_get_device_address] scan 1-4.1
[ 0.006188] [000fd316] libusb: debug [linux_get_device_address] bus=1 dev=4
[ 0.006192] [000fd316] libusb: debug [linux_enumerate_device] busnum 1 devaddr 4 session_id 260
[ 0.006195] [000fd316] libusb: debug [linux_enumerate_device] allocating new device for 1/4 (session 260)
[ 0.006218] [000fd316] libusb: debug [linux_get_parent_info] dev 0x55a5a14a5b30 (1-4.1) has parent 0x55a5a14a4a50 (1-4) port 1
[ 0.006276] [000fd316] libusb: debug [linux_get_device_address] getting address for device: 1-4.4 detached: 0
[ 0.006278] [000fd316] libusb: debug [linux_get_device_address] scan 1-4.4
[ 0.006299] [000fd316] libusb: debug [linux_get_device_address] bus=1 dev=6
[ 0.006301] [000fd316] libusb: debug [linux_enumerate_device] busnum 1 devaddr 6 session_id 262
[ 0.006304] [000fd316] libusb: debug [linux_enumerate_device] allocating new device for 1/6 (session 262)
[ 0.006330] [000fd316] libusb: debug [linux_get_parent_info] dev 0x55a5a14a5a10 (1-4.4) has parent 0x55a5a14a4a50 (1-4) port 4
[ 0.006382] [000fd316] libusb: debug [linux_get_device_address] getting address for device: usb2 detached: 0
[ 0.006385] [000fd316] libusb: debug [linux_get_device_address] scan usb2
[ 0.006406] [000fd316] libusb: debug [linux_get_device_address] bus=2 dev=1
[ 0.006409] [000fd316] libusb: debug [linux_enumerate_device] busnum 2 devaddr 1 session_id 513
[ 0.006412] [000fd316] libusb: debug [linux_enumerate_device] allocating new device for 2/1 (session 513)
[ 0.006482] [000fd316] libusb: debug [linux_get_device_address] getting address for device: usb3 detached: 0
[ 0.006486] [000fd316] libusb: debug [linux_get_device_address] scan usb3
[ 0.006507] [000fd316] libusb: debug [linux_get_device_address] bus=3 dev=1
[ 0.006510] [000fd316] libusb: debug [linux_enumerate_device] busnum 3 devaddr 1 session_id 769
[ 0.006513] [000fd316] libusb: debug [linux_enumerate_device] allocating new device for 3/1 (session 769)
[ 0.006581] [000fd316] libusb: debug [linux_get_device_address] getting address for device: 3-2 detached: 0
[ 0.006585] [000fd316] libusb: debug [linux_get_device_address] scan 3-2
[ 0.006606] [000fd316] libusb: debug [linux_get_device_address] bus=3 dev=2
[ 0.006609] [000fd316] libusb: debug [linux_enumerate_device] busnum 3 devaddr 2 session_id 770
[ 0.006611] [000fd316] libusb: debug [linux_enumerate_device] allocating new device for 3/2 (session 770)
[ 0.006635] [000fd316] libusb: debug [linux_get_parent_info] dev 0x55a5a14a4bf0 (3-2) has parent 0x55a5a14a6340 (usb3) port 2
[ 0.006688] [000fd316] libusb: debug [linux_get_device_address] getting address for device: usb4 detached: 0
[ 0.006690] [000fd316] libusb: debug [linux_get_device_address] scan usb4
[ 0.006711] [000fd316] libusb: debug [linux_get_device_address] bus=4 dev=1
[ 0.006715] [000fd316] libusb: debug [linux_enumerate_device] busnum 4 devaddr 1 session_id 1025
[ 0.006717] [000fd316] libusb: debug [linux_enumerate_device] allocating new device for 4/1 (session 1025)
[ 0.078059] [000fd316] libusb: debug [libusb_get_device_list]  
[ 0.078087] [000fd316] libusb: debug [libusb_get_device_descriptor]  
[ 0.078090] [000fd316] libusb: debug [libusb_get_device_descriptor]  
[ 0.078093] [000fd316] libusb: debug [libusb_get_device_descriptor]  
[ 0.078097] [000fd316] libusb: debug [libusb_get_device_descriptor]  
[ 0.078100] [000fd316] libusb: debug [libusb_get_device_descriptor]  
[ 0.078102] [000fd316] libusb: debug [libusb_get_device_descriptor]  
[ 0.078107] [000fd316] libusb: debug [libusb_get_device_descriptor]  
[ 0.078110] [000fd316] libusb: debug [libusb_get_device_descriptor]  
[ 0.078114] [000fd316] libusb: debug [libusb_get_device_descriptor]  
[ 0.078116] [000fd316] libusb: debug [libusb_get_device_descriptor]  
[ 0.078124] [000fd316] libusb: debug [libusb_open] open 1.16
[ 0.078151] [000fd316] libusb: debug [usbi_add_event_source] add fd 24 events 4
[ 0.078156] [000fd316] libusb: debug [libusb_claim_interface] interface 0
[ 0.078459] [000fd316] libusb: debug [libusb_submit_transfer] transfer 0x55a5a1a813f0
[ 0.078469] [000fd316] libusb: debug [add_to_flying_list] arm timer for timeout in 1000ms (first in line)
[ 0.078495] [000fd316] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 0.078498] [000fd316] libusb: debug [handle_events] event sources modified, reallocating event data
[ 0.078503] [000fd316] libusb: debug [usbi_wait_for_events] poll() 3 fds with timeout in 60000ms
[ 0.078837] [000fd316] libusb: debug [usbi_wait_for_events] poll() returned 1
[ 0.078847] [000fd316] libusb: debug [reap_for_handle] urb type=2 status=0 transferred=4
[ 0.078851] [000fd316] libusb: debug [handle_control_completion] handling completion status 0
[ 0.078855] [000fd316] libusb: debug [arm_timer_for_next_timeout] no timeouts, disarming timer
[ 0.078860] [000fd316] libusb: debug [usbi_handle_transfer_completion] transfer 0x55a5a1a813f0 has callback 0x7fd1d1679c90
[ 0.078863] [000fd316] libusb: debug [sync_transfer_cb] actual_length=4
[ 0.078869] [000fd316] libusb: debug [libusb_free_transfer] transfer 0x55a5a1a813f0
[ 0.078873] [000fd316] libusb: debug [libusb_submit_transfer] transfer 0x55a5a1a814e0
[ 0.078877] [000fd316] libusb: debug [add_to_flying_list] arm timer for timeout in 1000ms (first in line)
[ 0.078887] [000fd316] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 0.078890] [000fd316] libusb: debug [usbi_wait_for_events] poll() 3 fds with timeout in 60000ms
[ 0.079202] [000fd316] libusb: debug [usbi_wait_for_events] poll() returned 1
[ 0.079211] [000fd316] libusb: debug [reap_for_handle] urb type=2 status=0 transferred=56
[ 0.079214] [000fd316] libusb: debug [handle_control_completion] handling completion status 0
[ 0.079217] [000fd316] libusb: debug [arm_timer_for_next_timeout] no timeouts, disarming timer
[ 0.079221] [000fd316] libusb: debug [usbi_handle_transfer_completion] transfer 0x55a5a1a814e0 has callback 0x7fd1d1679c90
[ 0.079225] [000fd316] libusb: debug [sync_transfer_cb] actual_length=56
[ 0.079228] [000fd316] libusb: debug [libusb_free_transfer] transfer 0x55a5a1a814e0
[ 0.079254] [000fd316] libusb: debug [libusb_submit_transfer] transfer 0x55a5a1a81720
[ 0.079258] [000fd316] libusb: debug [add_to_flying_list] arm timer for timeout in 500ms (first in line)
[ 0.079263] [000fd316] libusb: debug [submit_bulk_transfer] need 1 urbs for new transfer with length 64
[ 0.079268] [000fd316] libusb: error [submit_bulk_transfer] submiturb failed, errno=2
[ 0.079272] [000fd316] libusb: debug [submit_bulk_transfer] first URB failed, easy peasy
[ 0.079275] [000fd316] libusb: debug [arm_timer_for_next_timeout] no timeouts, disarming timer
[ 0.079279] [000fd316] libusb: debug [libusb_free_transfer] transfer 0x55a5a1a81720
ERROR:  Input/Output Error
``

from plug.

offa avatar offa commented on May 21, 2024

That's a different error than expected. Do you get this error each time?

from plug.

callmemagnus avatar callmemagnus commented on May 21, 2024

No. If I start the application, I get the IO Error.
If I then use the "Connect" entry in the menu, I get the following error:

...
[ 0.074970] [0019426b] libusb: debug [add_to_flying_list] arm timer for timeout in 500ms (first in line)
[ 0.074980] [0019426b] libusb: debug [submit_bulk_transfer] need 1 urbs for new transfer with length 64
[ 0.074989] [0019426b] libusb: error [submit_bulk_transfer] submiturb failed, errno=2
[ 0.074994] [0019426b] libusb: debug [submit_bulk_transfer] first URB failed, easy peasy
[ 0.075001] [0019426b] libusb: debug [arm_timer_for_next_timeout] no timeouts, disarming timer
[ 0.075010] [0019426b] libusb: debug [libusb_free_transfer] transfer 0x562bfbe01c70
ERROR:  Input/Output Error
[ 3.716230] [0019426b] libusb: debug [libusb_get_device_list]  
[ 3.716255] [0019426b] libusb: debug [libusb_get_device_descriptor]  
[ 3.716259] [0019426b] libusb: debug [libusb_get_device_descriptor]  
[ 3.716261] [0019426b] libusb: debug [libusb_get_device_descriptor]  
[ 3.716265] [0019426b] libusb: debug [libusb_get_device_descriptor]  
[ 3.716267] [0019426b] libusb: debug [libusb_get_device_descriptor]  
[ 3.716271] [0019426b] libusb: debug [libusb_get_device_descriptor]  
[ 3.716275] [0019426b] libusb: debug [libusb_get_device_descriptor]  
[ 3.716278] [0019426b] libusb: debug [libusb_get_device_descriptor]  
[ 3.716282] [0019426b] libusb: debug [libusb_get_device_descriptor]  
[ 3.716286] [0019426b] libusb: debug [libusb_get_device_descriptor]  
[ 3.716293] [0019426b] libusb: debug [libusb_open] open 1.18
[ 3.716327] [0019426b] libusb: debug [usbi_add_event_source] add fd 27 events 4
[ 3.716331] [0019426b] libusb: debug [libusb_claim_interface] interface 0
[ 3.716361] [0019426b] libusb: debug [libusb_release_interface] interface 0
[ 3.716367] [0019426b] libusb: debug [libusb_close]  
[ 3.716371] [0019426b] libusb: debug [usbi_remove_event_source] remove fd 27
ERROR:  Resource busy

from plug.

offa avatar offa commented on May 21, 2024

This might be an indication of a different protocol. Usually it should fail with some kind of 'invalid id', not on USB writing.

from plug.

callmemagnus avatar callmemagnus commented on May 21, 2024

That is sad news.

from plug.

Related Issues (18)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.