angeloBerlin / MIDI-Automator

MIDI Automator is a desktop software for automating user actions (i.e. opening files, clicking buttons) triggered by midi messages.
http://midi-automator.com
MIT License
18 stars 3 forks source link

MIDI learn doesn't learn any item number that does not have the radix 3 #70

Closed peterzen closed 6 years ago

peterzen commented 6 years ago

I'm noticing an issue that items down from position 4 can't learn the MIDI trigger signal. I've verified that the controller is sending the PC messages and items 1-3 DO work correctly (the Listening field shows the correct value, see screenshot 2), but on items 4-6, the message isn't stored properly (although it seems that Automator does receive and interpret the message, see screenshot 3 and 4).

I've shuffled around the files and it appears that it's always the first 3 that work correctly, but none above.

image

image

image

image

angeloBerlin commented 6 years ago

Hi @peterzen , thanx for your bug report. I just got the same issue from another user via mail and saw your issue when i wanted to raise it myself.

Do yow know how I can configure e-mail notifications for new issues even if they are not assigned to me? (already found the option the setting now).

I can reproduce the bug locally but I can not make any prediction when I will be able to release a fix. I am in the middle of a refactoring process so the master branch is not in a stable at the moment (and I was too lazy to develop the refactoring in an own branch <- lesson learned!).

Anyway, here is a possible workaround for you until the fix is released:

Edit the CSV file /Users/aguelle/Library/Application Support/Midi Automator/file_list.mido

structure: name ; file path ; midi listening signature ; midi sending signature ; path to dedicated program

As I found the bug in the learning function, you can just hard code your "midi listening signature" here. Best idea is to copy a signature from a successfully learned index (1, 2, or 3) and manipulate it accordingly.

Cheers,

Angelo

angeloBerlin commented 6 years ago

Ok bug found. I used radix 3 instead of 10 for Character.digit(s.charAt(i), radix).

Lesson Learned: radix is not the amount of digits, but the numeric base :D.

peterzen commented 6 years ago

Hi @aguelle , thanks for looking into this and for the workaround also! I had a gut feeling that it's some kind of radix issue :)