-
-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for SysEx messages #55
Comments
The code for this issue is in the Until now, Overwitch was ignoring the SysEx messages flowing both ways but now these messages are processed too. AFAIK, the MIDI events in Overbridge follow the same specification as the USB MIDI one. This means that messages are always 4 byte packets where the first byte indicates the type of message. Messages with less than 3 bytes use less bytes but the packet itself has still 4 bytes. SysEx messages are split into many of these packets. Overbridge sends this packets in blocks of 512 bytes (128 messages at most) in each USB MIDI block. So these conversions need to be done in both directions and this is our goal here. In order to mix JACK (or PipeWire) messages with the MIDI ports that Elektroid uses, the This is the result. Keep in mind that adding all this things and using long SysEx messages might impact the latency of MIDI messages. Although it works, some MIDI messages are lost.
Despite of being lost, this are received by the JACK client. This can be seen in the log. The full SysEx message is there and is queued without errors.
I suspect the problem is either in the PipeWire bridge or in the |
I can confirm that the issue is not in Overwitch. When using
Running
The 5th message has no response but |
I didn't even get as far as you did so I did a sanity check. sudo modprobe snd-virmidi enable=1 midi_devs=1 Run Open Ardour in Jack mode and select the virtual MIDI port in the MIDI tracer (Window > MIDI tracer). (replace amidi -p hw:XX -S "fc"
amidi -p hw:XX -S "f0 7e 7f 06 01 f7" The first message shows up in the MIDI tracer but the second doesn't. Can you repeat the same steps and report back what response you got? |
I had to leave any Overwith off, right? I see both messages in
Ardour MIDI tracer
As the message in Ardour looked a bit odd, I sent another
Sending the
Tested on Ardour 8.4.0~ds1 (Debian testing). |
I forgot to mention that when using Overwitch, only the 5th SysEx message is skipped. Following messages sent from my Digitakt are shown in
|
Tested with this.
|
I have different versions. I think we have to consider that this might really be a bug with PipeWire, or specifically its Jack implementation.
I will try to compile the latest development version of PipeWire and if it doesn't work with that then I will open an issue on their GitLab. |
@szszoke, I agree with you. However,. I've decided to run one last test to prove this. I've created this minimal setup. With
|
I'm pretty sure the issue is around this line. The problem is that I haven't found a solution yet and I haven't reported this either. |
Have you been able to trigger this scenario? If you add some log statements and trigger it then I'd say you should report it even before you came up with a solution. You could then come up with a solution together with the PipeWire devs. Just do it on their GitLab server and not on GitHub. |
Yes. You're right. I'll report them my findings later today. It's just that I don't fully understand a couple of functions in the ALSA API. |
If I understand correctly then the SysEx message is larger than the allocated buffer for Have you tried to increase the buffer size? |
That's not the problem here.
In this case, a new iteration over the I'll publish my findings there later but it's not an ALSA issue. |
The issue you created is now closed with a commit. |
From memory, the solution in that commit is the same thing I proposed and tested. It works but I need to check something. Have you tested it? |
I just did but it still doesn't work for me. My Digitakt just doesn't seem to respond to any SysEx message, not even the short ones. Playback still stopped when I tried to open it from Elektroid so at least some MIDI messages appear to reach the Digitakt. I also tried to test with just Alsa and something is not quite right. This is what I get from 691: track: 0 sec:294,542389 SysEx: f0 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e 7f 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e
691: track: 0 sec:294,542389 Unknown: 7f f7
It is still better however because if I revert my system I also tried to connect to my Digitakt in MIDI mode but through the virtual MIDI ports which also worked so at least it is not something with the PipeWire routing itself. |
Could it be that some commits are not pushed? |
Same happens here. Well, not exactly. But I'd say is working worse than before as no SysEx message passes thru.
They've done more things than the fixing commit to address other things around the same lines. I'll take a fresh look tomorrow and see if there are any more fixes. |
I also noticed that my Digitakt glitches if I send a playback start message. It looks like the sequencer just hangs but then eventually it continues. I tried the same with the Syntakt but it didn't happen there. |
I am on The $ elektroid-cli -vv elektron-data-ls 1:/
DEBUG:elektroid-cli.c:833:(main): Connector: "elektron"; filesystem: "data"; operation: "ls"
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend.c:306:(backend_init): Initializing backend (ALSA) to 'hw:0,0,0'...
DEBUG:backend_alsa.c:84:(backend_init_int): Setting blocking mode...
DEBUG:backend.c:626:(backend_rx_drain): Draining buffers...
DEBUG:backend.c:395:(backend_rx_raw_loop): Timeout (1000)
DEBUG:backend.c:317:(backend_init): Stopping device...
DEBUG:backend_alsa.c:204:(backend_tx_sysex_internal): Raw message sent (6): f0 7e 7f 06 01 f7
DEBUG:backend.c:606:(backend_rx_sysex): Raw message received (6): f0 7e 00 7c 00 f7
DEBUG:backend.c:144:(backend_midi_handshake): Illegal SUB-ID2
DEBUG:connector.c:178:(connector_init_backend): Testing elektron connector...
DEBUG:backend_alsa.c:204:(backend_tx_sysex_internal): Raw message sent (13): f0 00 20 3c 10 00 00 00 00 00 00 01 f7
DEBUG:connectors/elektron.c:758:(elektron_tx): Message sent (5): 00 00 00 00 01
DEBUG:backend.c:606:(backend_rx_sysex): Raw message received (75): f0 00 20 3c 10 00 04 00 7b 00 00 01 0c 2b 00 01 02 03 05 04 06 07 00 50 52 51 10 13 11 12 00 20 21 22 23 28 30 31 00 32 36 40 41 42 46 17 00 18 19 29 53 54 55 56 00 57 58 59 5a 5b 5c 5d 00 5e...
DEBUG:connectors/elektron.c:803:(elektron_rx): Message received (59): 00 7b 00 00 81 0c 2b 01 02 03 05 04 06 07 50 52 51 10 13 11 12 20 21 22 23 28 30 31 32 36 40 41 42 46 17 18 19 29 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 44 69 67 69 74 61 6b 74 00
DEBUG:connectors/elektron.c:3270:(elektron_configure_device): Failed to open file “/home/szabi/.config/elektroid/elektron/devices.json”: No such file or directory
DEBUG:connectors/elektron.c:3276:(elektron_configure_device): Falling back to /usr/local/share/elektroid/elektron/devices.json...
DEBUG:connectors/elektron.c:3335:(elektron_configure_device): Device 12 found
DEBUG:backend_alsa.c:204:(backend_tx_sysex_internal): Raw message sent (13): f0 00 20 3c 10 00 00 00 01 00 00 02 f7
DEBUG:connectors/elektron.c:758:(elektron_tx): Message sent (5): 00 01 00 00 02
DEBUG:backend.c:606:(backend_rx_sysex): Raw message received (26): f0 00 20 3c 10 00 04 00 7c 00 01 02 30 30 00 38 39 00 31 2e 35 31 00 41 00 f7
DEBUG:connectors/elektron.c:803:(elektron_rx): Message received (16): 00 7c 00 01 82 30 30 38 39 00 31 2e 35 31 41 00
DEBUG:backend_alsa.c:204:(backend_tx_sysex_internal): Raw message sent (13): f0 00 20 3c 10 00 00 00 02 00 00 03 f7
DEBUG:connectors/elektron.c:758:(elektron_tx): Message sent (5): 00 02 00 00 03
DEBUG:backend.c:606:(backend_rx_sysex): Raw message received (18): f0 00 20 3c 10 00 06 00 7d 00 02 03 3a 7c 60 3a 6a f7
DEBUG:connectors/elektron.c:803:(elektron_rx): Message received (9): 00 7d 00 02 83 ba 7c ba ea
DEBUG:connectors/elektron.c:3484:(elektron_handshake): UID: eaba7cba
DEBUG:connector.c:182:(connector_init_backend): Using elektron connector...
DEBUG:backend_alsa.c:204:(backend_tx_sysex_internal): Raw message sent (26): f0 00 20 3c 10 00 00 00 03 00 00 53 2f 00 00 00 00 00 00 00 00 00 00 00 01 f7
DEBUG:connectors/elektron.c:758:(elektron_tx): Message sent (16): 00 03 00 00 53 2f 00 00 00 00 00 00 00 00 00 01
DEBUG:backend.c:606:(backend_rx_sysex): Raw message received (65): f0 00 20 3c 10 00 04 00 7e 00 03 53 01 00 00 00 00 00 00 00 00 02 00 00 00 00 02 70 72 6f 00 6a 65 63 74 73 00 01 04 01 00 00 00 00 73 6f 00 75 6e 64 62 61 6e 6b 00 73 00 01 01 00 00 00 00 08...
DEBUG:connectors/elektron.c:803:(elektron_rx): Message received (50): 00 7e 00 03 d3 01 00 00 00 00 00 00 00 02 00 00 00 02 70 72 6f 6a 65 63 74 73 00 01 01 00 00 00 80 73 6f 75 6e 64 62 61 6e 6b 73 00 01 01 00 00 00 08
D 0000 0 0 0B -1 projects
D 0000 0 0 0B -1 soundbanks
DEBUG:backend.c:332:(backend_destroy): Destroying backend...
DEBUG:backend.c:223:(backend_destroy_data): Destroying backend data... |
Downloading a project fails however: $ elektroid-cli -vv elektron-data-dl 1:/projects/1
DEBUG:elektroid-cli.c:833:(main): Connector: "elektron"; filesystem: "data"; operation: "dl"
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend_alsa.c:362:(backend_get_system_subdevices): Adding hw:0 (name 'Virtual Raw MIDI', subname '')...
DEBUG:backend.c:306:(backend_init): Initializing backend (ALSA) to 'hw:0,0,0'...
DEBUG:backend_alsa.c:84:(backend_init_int): Setting blocking mode...
DEBUG:backend.c:626:(backend_rx_drain): Draining buffers...
DEBUG:backend.c:395:(backend_rx_raw_loop): Timeout (1000)
DEBUG:backend.c:317:(backend_init): Stopping device...
DEBUG:backend_alsa.c:204:(backend_tx_sysex_internal): Raw message sent (6): f0 7e 7f 06 01 f7
DEBUG:backend.c:606:(backend_rx_sysex): Raw message received (6): f0 7e 00 7c 00 f7
DEBUG:backend.c:144:(backend_midi_handshake): Illegal SUB-ID2
DEBUG:connector.c:178:(connector_init_backend): Testing elektron connector...
DEBUG:backend_alsa.c:204:(backend_tx_sysex_internal): Raw message sent (13): f0 00 20 3c 10 00 00 00 00 00 00 01 f7
DEBUG:connectors/elektron.c:758:(elektron_tx): Message sent (5): 00 00 00 00 01
DEBUG:backend.c:606:(backend_rx_sysex): Raw message received (75): f0 00 20 3c 10 00 24 00 03 00 00 01 0c 2b 00 01 02 03 05 04 06 07 00 50 52 51 10 13 11 12 00 20 21 22 23 28 30 31 00 32 36 40 41 42 46 17 00 18 19 29 53 54 55 56 00 57 58 59 5a 5b 5c 5d 00 5e...
DEBUG:connectors/elektron.c:803:(elektron_rx): Message received (59): 00 83 00 00 81 0c 2b 01 02 03 05 04 06 07 50 52 51 10 13 11 12 20 21 22 23 28 30 31 32 36 40 41 42 46 17 18 19 29 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 44 69 67 69 74 61 6b 74 00
DEBUG:connectors/elektron.c:3270:(elektron_configure_device): Failed to open file “/home/szabi/.config/elektroid/elektron/devices.json”: No such file or directory
DEBUG:connectors/elektron.c:3276:(elektron_configure_device): Falling back to /usr/local/share/elektroid/elektron/devices.json...
DEBUG:connectors/elektron.c:3335:(elektron_configure_device): Device 12 found
DEBUG:backend_alsa.c:204:(backend_tx_sysex_internal): Raw message sent (13): f0 00 20 3c 10 00 00 00 01 00 00 02 f7
DEBUG:connectors/elektron.c:758:(elektron_tx): Message sent (5): 00 01 00 00 02
DEBUG:backend.c:606:(backend_rx_sysex): Raw message received (26): f0 00 20 3c 10 00 24 00 04 00 01 02 30 30 00 38 39 00 31 2e 35 31 00 41 00 f7
DEBUG:connectors/elektron.c:803:(elektron_rx): Message received (16): 00 84 00 01 82 30 30 38 39 00 31 2e 35 31 41 00
DEBUG:backend_alsa.c:204:(backend_tx_sysex_internal): Raw message sent (13): f0 00 20 3c 10 00 00 00 02 00 00 03 f7
DEBUG:connectors/elektron.c:758:(elektron_tx): Message sent (5): 00 02 00 00 03
DEBUG:backend.c:606:(backend_rx_sysex): Raw message received (18): f0 00 20 3c 10 00 26 00 05 00 02 03 3a 7c 60 3a 6a f7
DEBUG:connectors/elektron.c:803:(elektron_rx): Message received (9): 00 85 00 02 83 ba 7c ba ea
DEBUG:connectors/elektron.c:3484:(elektron_handshake): UID: eaba7cba
DEBUG:connector.c:182:(connector_init_backend): Using elektron connector...
DEBUG:backend_alsa.c:204:(backend_tx_sysex_internal): Raw message sent (33): f0 00 20 3c 10 00 00 00 03 00 00 54 2f 70 00 72 6f 6a 65 63 74 73 00 2f 31 00 00 00 20 00 00 01 f7
DEBUG:connectors/elektron.c:758:(elektron_tx): Message sent (22): 00 03 00 00 54 2f 70 72 6f 6a 65 63 74 73 2f 31 00 00 00 20 00 01
DEBUG:backend.c:606:(backend_rx_sysex): Raw message received (25): f0 00 20 3c 10 00 24 00 06 00 03 54 01 00 00 00 00 03 00 00 20 00 00 01 f7
DEBUG:connectors/elektron.c:803:(elektron_rx): Message received (15): 00 86 00 03 d4 01 00 00 00 03 00 00 20 00 01
DEBUG:connectors/elektron.c:2237:(elektron_open_datum): Open datum info: job id: 3; chunk size: 8192; compression: 1
DEBUG:backend_alsa.c:204:(backend_tx_sysex_internal): Raw message sent (22): f0 00 20 3c 10 00 00 00 04 00 00 55 00 00 00 00 03 00 00 00 00 f7
DEBUG:connectors/elektron.c:758:(elektron_tx): Message sent (13): 00 04 00 00 55 00 00 00 03 00 00 00 00
DEBUG:backend.c:606:(backend_rx_sysex): Raw message received (38): f0 00 20 3c 10 00 24 00 07 00 04 55 01 00 00 00 00 03 40 12 17 78 3b 42 36 7f 60 00 7f 7f 60 7f 7f 00 00 00 00 f7
DEBUG:connectors/elektron.c:803:(elektron_rx): Message received (27): 00 87 00 04 d5 01 00 00 00 03 40 12 17 78 42 b6 ff e0 00 ff ff ff ff 00 00 00 00
DEBUG:connectors/elektron.c:2441:(elektron_download_data_prefix): Read datum info: job id: 3; last: 0, hash: 0xffffffff
DEBUG:backend_alsa.c:204:(backend_tx_sysex_internal): Raw message sent (22): f0 00 20 3c 10 00 00 00 05 00 00 55 00 00 00 00 03 00 00 00 01 f7
DEBUG:connectors/elektron.c:758:(elektron_tx): Message sent (13): 00 05 00 00 55 00 00 00 03 00 00 00 01
DEBUG:backend.c:395:(backend_rx_raw_loop): Timeout (5000)
DEBUG:backend_alsa.c:204:(backend_tx_sysex_internal): Raw message sent (18): f0 00 20 3c 10 00 00 00 06 00 00 56 00 00 00 00 03 f7
DEBUG:connectors/elektron.c:758:(elektron_tx): Message sent (9): 00 06 00 00 56 00 00 00 03
DEBUG:backend.c:606:(backend_rx_sysex): Raw message received (42): f0 00 20 3c 10 00 24 00 09 00 06 56 00 52 00 65 61 64 65 72 20 64 00 69 64 20 6e 6f 74 20 00 63 6f 6d 70 6c 65 74 00 65 00 f7
DEBUG:connectors/elektron.c:803:(elektron_rx): Message received (30): 00 89 00 06 d6 00 52 65 61 64 65 72 20 64 69 64 20 6e 6f 74 20 63 6f 6d 70 6c 65 74 65 00
ERROR:connectors/elektron.c:2306:(elektron_close_datum): Operation not permitted (Reader did not complete)
DEBUG:backend.c:332:(backend_destroy): Destroying backend...
DEBUG:backend.c:223:(backend_destroy_data): Destroying backend data...
ERROR:elektroid-cli.c:897:(main): Error: Operation not permitted |
I got it to work! I had to increase the I'm assuming that you followed the build instructions from Uncomment line I am so far successfully downloading samples while also having |
I was able to trip it up a few times by changing connections to the different ports while the samples were downloading. I think |
This is good news. I'll test all this during the weekend and close the PipeWire issue if everythings goes as said there. BTW, thanks for the tips.
This might need some work though. Does it make sense to pass the MIDI messages albeit the tuning is running? Perhaps it does. Besides, the time in the SysEx messages is totally useless. I'll check some things regarding this and come back to you. |
I think it depends on how MIDI and audio is synchronized. If that would depend on the tuning then maybe regular MIDI messages would have to wait. SysEx for transferring samples likely doesn't care about any of that. |
Everything seems to be working quite well. I've pushed some commits but we aware that I've rewritten the branch to fix a couple of things. Also, MIDI events should pass regardless of the resampler status now. I've found occasional errors but not sure where the cause is as there are many parts to consider now (Elektroid, Overwitch, the Digitakt and all the PipeWire components). This will need lots of debugging. Could you try the branch again? I've seen some errors like this in the PipeWire log but I'm not sure if these are related as some errors occur without this warning.
|
I gave it a try. I do not get errors logged anywhere and it feels much more stable compared to yesterday. I am yet again trying to download all my samples while having all the individual outputs routed to a USB sound card, and having Elektroid routed into the Digitakt while I play a longer sample on loop. I forgot to change the standard period size however so it is now at 1024 - not sure if that matters. |
Loading different presets during downloading can make downloading fail. Maybe the Digitakt responds slower during loading. I don't know if it would eventually continue responding but if it does then a longer timeout in Elektroid could make it more immune to this problem. |
I tried with a much longer timeout and it didn't help. |
I've realized this too. Changing the filesystems and doing concurrent operations makes things fail. This happens with other devices too when changing the filesystem. AFAIK, Elektron devices are the only ones that are able to perform several operations SysEx-wise at once (e.g. reading a directory and uploading a file can be done simultaneously). In fact, there is an option in the filesystems to indicate this feature. But if it's not working well, we can remove this feature. How's behaving Transfer in this regard? Apart from this, disabling the filesystem combo when other operations are running it something what should be already be implemented for the single operations filesystems. I'd take a look at this. |
I've pushed some commits to Elektroid to disable the filesystem combo for single operation filesystems. This should not change the behavior with Elektron machines. |
SysEx messages are ignored by Overwitch.
The text was updated successfully, but these errors were encountered: