reinerh / loopertrx

import/export audio data from some looper pedals
GNU General Public License v2.0
30 stars 5 forks source link

Ammoon Looper AP-09 #1

Open wdog opened 6 years ago

wdog commented 6 years ago

The script is giving me a DEVICE NOT FOUND, my device is ammon looper AP-09

Bus 006 Device 010: ID 0416:5555 Winbond Electronics Corp. 

after I insert the usb cable i get this problem

Nov 28 22:48:37 lazarus kernel: [ 2038.708212] usb 6-1: USB disconnect, device number 9
Nov 28 22:48:39 lazarus kernel: [ 2040.684114] usb 6-1: new full-speed USB device number 10 using uhci_hcd
Nov 28 22:48:39 lazarus kernel: [ 2040.859227] usb 6-1: New USB device found, idVendor=0416, idProduct=5555
Nov 28 22:48:39 lazarus kernel: [ 2040.859238] usb 6-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Nov 28 22:48:39 lazarus kernel: [ 2040.859245] usb 6-1: Product: DFU̒
Nov 28 22:48:39 lazarus kernel: [ 2040.859250] usb 6-1: Manufacturer: Rowin
Nov 28 22:48:39 lazarus mtp-probe: checking bus 6, device 10: "/sys/devices/pci0000:00/0000:00:1d.0/usb6/6-1"
Nov 28 22:48:39 lazarus mtp-probe: bus: 6, device: 10 was not an MTP device
Nov 28 22:48:39 lazarus systemd-udevd[7685]: Process '/usr/sbin/alsactl -E HOME=/run/alsa restore 1' failed with exit code 99.
Nov 28 22:48:39 lazarus pulseaudio[7660]: [pulseaudio] module-alsa-card.c: Failed to find a working profile.
Nov 28 22:48:39 lazarus pulseaudio[7660]: [pulseaudio] module.c: Failed to load module "module-alsa-card" (argument: "device_id="1" name="usb-Rowin_DFU__-00" card_name="alsa_card.usb-Rowin_DFU__-00" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes card_properties="module-udev-detect.discovered=1""): initialization failed.

can you help me? thanks

wdog commented 6 years ago

sorry I forgot to write VIP/PID in the script, but now i get another error

[Errno 16] Resource busy

do i need to change other things?

VID = 0x0416
PID = 0x5555

ENDPOINT_IN  = 0x81
ENDPOINT_OUT = 0x02
danielwray commented 6 years ago

Hi,

I am seeing the same issue with the ammoon nano looper AP-09.

Is there any diagnostic tools I could run to provide more information?

wdog commented 6 years ago

Hi I have no idea about what's going on. 😄

Can you suggest me some tool to use or check to perform?


this i what i've discovered:

DEVICE ID 0416:5555 on Bus 001 Address 005 =================
 bLength                :   0x12 (18 bytes)
 bDescriptorType        :    0x1 Device
 bcdUSB                 :  0x200 USB 2.0
 bDeviceClass           :    0x0 Specified at interface
 bDeviceSubClass        :    0x0
 bDeviceProtocol        :    0x0
 bMaxPacketSize0        :    0x8 (8 bytes)
 idVendor               : 0x0416
 idProduct              : 0x5555
 bcdDevice              :    0x1 Device 0.01
 iManufacturer          :    0x1 Rowin
 iProduct               :    0x2 DFU̒
 iSerialNumber          :    0x0 
 bNumConfigurations     :    0x1
  CONFIGURATION 1: 64 mA ===================================
   bLength              :    0x9 (9 bytes)
   bDescriptorType      :    0x2 Configuration
   wTotalLength         :   0x65 (101 bytes)
   bNumInterfaces       :    0x2
   bConfigurationValue  :    0x1
   iConfiguration       :    0x0 
   bmAttributes         :   0x80 Bus Powered
   bMaxPower            :   0x20 (64 mA)
    INTERFACE 0: Audio =====================================
     bLength            :    0x9 (9 bytes)
     bDescriptorType    :    0x4 Interface
     bInterfaceNumber   :    0x0
     bAlternateSetting  :    0x0
     bNumEndpoints      :    0x0
     bInterfaceClass    :    0x1 Audio
     bInterfaceSubClass :    0x1
     bInterfaceProtocol :    0x0
     iInterface         :    0x3 DFU-Midi
    INTERFACE 1: Audio =====================================
     bLength            :    0x9 (9 bytes)
     bDescriptorType    :    0x4 Interface
     bInterfaceNumber   :    0x1
     bAlternateSetting  :    0x0
     bNumEndpoints      :    0x2
     bInterfaceClass    :    0x1 Audio
     bInterfaceSubClass :    0x3
     bInterfaceProtocol :    0x0
     iInterface         :    0x3 DFU-Midi
      ENDPOINT 0x81: Bulk IN ===============================
       bLength          :    0x9 (7 bytes)
       bDescriptorType  :    0x5 Endpoint
       bEndpointAddress :   0x81 IN
       bmAttributes     :    0x2 Bulk
       wMaxPacketSize   :   0x40 (64 bytes)
       bInterval        :    0x0
      ENDPOINT 0x2: Bulk OUT ===============================
       bLength          :    0x9 (7 bytes)
       bDescriptorType  :    0x5 Endpoint
       bEndpointAddress :    0x2 OUT
       bmAttributes     :    0x2 Bulk
       wMaxPacketSize   :   0x40 (64 bytes)
       bInterval        :    0x0

so i changed the values of VID PID and ENDPOINT_IN ENDPOINT_OUT

reinerh commented 6 years ago

Sorry, I missed this bug report, somehow I didn't get notified by Github. I will have a look in the following days.

hashtagcpt commented 6 years ago

I also get Error 16 device busy with the ammon looper AP-09. Thanks for the help.

reinerh commented 6 years ago

Regarding the "device busy" error, is currently something else on your systems accessing the device? Can you please check with lsof | grep dev.*usb?

And interesting, according to @wdog's device information, the ammoon looper exports two audio interfaces, while my Harley Benton looper announces a mass storage interface (though it's not accessible as mass storage device).

DEVICE ID 0483:572a on Bus 001 Address 026 =================
 bLength                :   0x12 (18 bytes)
 bDescriptorType        :    0x1 Device
 bcdUSB                 :  0x200 USB 2.0
 bDeviceClass           :    0x0 Specified at interface
 bDeviceSubClass        :    0x0
 bDeviceProtocol        :    0x0
 bMaxPacketSize0        :   0x40 (64 bytes)
 idVendor               : 0x0483
 idProduct              : 0x572a
 bcdDevice              :  0x200 Device 2.0
 iManufacturer          :    0x1 STMicroelectronics
 iProduct               :    0x2 STM32 Mass Storage
 iSerialNumber          :    0x3 00000000001A
 bNumConfigurations     :    0x1
  CONFIGURATION 1: 100 mA ==================================
   bLength              :    0x9 (9 bytes)
   bDescriptorType      :    0x2 Configuration
   wTotalLength         :   0x20 (32 bytes)
   bNumInterfaces       :    0x1
   bConfigurationValue  :    0x1
   iConfiguration       :    0x4 MSC Config
   bmAttributes         :   0xc0 Self Powered
   bMaxPower            :   0x32 (100 mA)
    INTERFACE 0: Mass Storage ==============================
     bLength            :    0x9 (9 bytes)
     bDescriptorType    :    0x4 Interface
     bInterfaceNumber   :    0x0
     bAlternateSetting  :    0x0
     bNumEndpoints      :    0x2
     bInterfaceClass    :    0x8 Mass Storage
     bInterfaceSubClass :    0x6
     bInterfaceProtocol :   0x50
     iInterface         :    0x5 MSC Interface
      ENDPOINT 0x81: Bulk IN ===============================
       bLength          :    0x7 (7 bytes)
       bDescriptorType  :    0x5 Endpoint
       bEndpointAddress :   0x81 IN
       bmAttributes     :    0x2 Bulk
       wMaxPacketSize   :   0x40 (64 bytes)
       bInterval        :    0x0
      ENDPOINT 0x1: Bulk OUT ===============================
       bLength          :    0x7 (7 bytes)
       bDescriptorType  :    0x5 Endpoint
       bEndpointAddress :    0x1 OUT
       bmAttributes     :    0x2 Bulk
       wMaxPacketSize   :   0x40 (64 bytes)
       bInterval        :    0x0

So it could be that the protocol differs as well. Though I'm a bit surprised, as the Windows tools for these loopers look nearly identical. Does anyone have a Windows machine/VM and could capture a few sample transfers with Wireshark? Otherwise I'll try to get one of those ammoon loopers to play around with.

wdog commented 6 years ago

according to the self.dev I changed the values in the loopertrx.py to

VID = 0x0416
PID = 0x5555

ENDPOINT_IN  = 0x81
ENDPOINT_OUT = 0x02

now I have a simple [Errno 110] Operation timed out or [Errno 16] Resource busy random

can someone tell me if I need to change also this part? ( or explain their meaning )

COMMAND_SIZE = 0xfe
COMMAND_DATA = 0xff

@reinerh sorry I do not have a windows machine to test but I'll try to ask to some friends

wdog commented 6 years ago

If I exec export PYUSB_DEBUG=debug before launching the command I can retrieve more information.

Please be patient I'm learning...

reinerh commented 6 years ago

@wdog COMMAND_SIZE and COMMAND_DATA should not be changed. They are part of the protocol while transmitting data. But maybe your looper uses a different protocol, then more parts need to be changed. A capture of the USB traffic would be helpful to analyze this.

reinerh commented 6 years ago

Okay, I also have an ammoon looper now. It looks like they are producing different hardware since July 2017, and they also require new software for transferring files.

An example is here: https://www.donnerdeal.com/pages/download Their legacy software supports devices produced before July 2017, while for newer devices the newer software is required. And on a Windows VM the old software is indeed no longer working with my recently bought ammoon looper, while the new software works well.

Looks like I need to figure out their new protocol as well...

ElWorel commented 6 years ago

Hi there, I also have an ammoon looper (actually I have 2 at my disposal right now), just wanted to ask if there's still a chance of the script handling these newer loopers? I can offer help, but I don't know anything about coding.. Thanks Worel

sehrgut commented 6 years ago

I just got one of these new-model pedals as well. Here's the sequence of operations I performed:

  1. Start Wireshark listening to new USB devices only
  2. Plug in pedal
  3. Open LooperSuite v1.7
  4. Receive recorded loop
  5. Delete recorded loop (3-4x, since deletion wasn't reflecting in UI, not sure if it took)
  6. Transmit received loop back
  7. Stop packet capture

https://www.dropbox.com/s/o0a7mh6jdipi26t/ammoon-nano-looper.pcapng?dl=0

Edit: the "delete" operation in the UI definitely doesn't work, and also the UI only lists the first recording (first "layer" of the loop). If you're able to list and download all tracks, this seems to be legit multitrack and not just overdubbing.

This also looks like it's using USB-MIDI, and shows up in the OSX Audio MIDI Setup; but doesn't appear to do anything standard and just use some sysex commands.

Olli commented 6 years ago

I've also tried to get a pcap of the usb traffic but the LooperSuite1.7 doesn't work with my new buyed looper. But the looper is recognized as an midi device via "amidi --dump -l ".

Olli commented 6 years ago

Ok LooperSuite1.7 doesn't work with Windows 7 properly but it works with Windows 10

HeavySchorsch commented 5 years ago

any news lately?

Olli commented 5 years ago

Not on my side. I don't have the need for editing the contents of the looper anymore.

AndreRH commented 4 years ago

Linux makes it available as /dev/midi1 but the wrong interface seems to be selected. Otherwise it would be possible to write to midi1 and read from it and try to replay the Wireshark recordings Any ideas?

cbmoop commented 4 years ago

@reinerh any update?

skystalkerrc commented 2 years ago

Can someone share the legacy version of LooperSuite? The only one version I can get is V1.7, which doesn't work on my looper3.

skystalkerrc commented 2 years ago

Can someone share the legacy version of LooperSuite? The only one version I can get is V1.7, which doesn't work on my looper3. I have found it on https://www.donnerdeal.com/pages/looper, the link is https://www.dropbox.com/s/iimlk7m3yi7d9wq/Donner_V9.0.exe?dl=0

mungewell commented 1 year ago

@wdog Obviously a very old thread/bug report.... but if you're still wanting to work on this check out bug #6 as I have made some progress...

AlmTheHedgehog commented 1 year ago

Does anyone have a firmware for AP-09? I want to try to upload it using LooperSuite v1.7 because my looper stopped working after importing a song. It shows that memory is empty, but when I am trying to record something it only lights red and that is all :(