This forum is read-only. Please post new topics in our Q&A forum.

A couple of MT questions

General discussion about MIDI Translator

Moderators: florian, DvlsAdvct

Post Reply
Bryan
User
Posts: 13
Joined: Sat Sep 08, 2007 6:53 pm

A couple of MT questions

Post by Bryan » Thu Sep 13, 2007 6:18 am

Dear Florian,

1) Is it possible, either with the classic or pro versions, for one translator to know if another is active? That is, if I press a G, I want its actions to be different depending on whether C is currently being held down. Can one translator set and clear a variable which can be tested by another?

2) I have another program listening to the same MIDI in as MT. I would like MT to instead act as a filter, passing on some MIDI events but not others. Is it possible in Windows to set up a "MIDI pipe" that MT would write to and the other program could listen to?

Bryan
User
Posts: 13
Joined: Sat Sep 08, 2007 6:53 pm

Post by Bryan » Sat Sep 15, 2007 2:46 am

Well, I found MIDI Yoke, and it seems that MT Pro does what I want.

I'm a little confused about the licensing--since it's a beta version, is there still a license fee?

User avatar
florian
Bome Software: Founder
Posts: 2435
Joined: Thu Apr 28, 2005 10:09 pm
Location: Munich, Germany
Contact:

Post by florian » Sat Sep 15, 2007 10:44 am

Hi Bryan,

1) with MT Pro you can set and query variables. Variables are 2-letter words, starting with g, e.g. ga,gb,gc... (there are also local variables which loose their meaning when done processing an event).

The way to go (taking your example):

Code: Select all

Translator 1: set flag when C is down
INCOMING: key C down
RULES: gc=1
OUTGOING: <none>

Translator 2: clear flag when C is up
INCOMING: key C up
RULES: gc=0
OUTGOING: <none>

Translator 3: do one thing on G with C not pressed
OPTIONS: stop processing: unchecked
INCOMING: key G
RULES: IF gc!=0 THEN exit rules, do not execute action
OUTGOING: <do one thing>

Translator 4: do another thing on G with C held down
OPTIONS: stop processing: unchecked
INCOMING: key G
RULES: IF gc!=1 THEN exit rules, do not execute action
OUTGOING: <do another thing>
Licensing:
Indeed, there is a license fee for the beta version after the 30 day trial. I know it's not usual, but in this case, MT Pro has already been very stable, and the main reason why it's still in beta phase is the lack of a user manual. We're currently working on it.

Also, owning MT Pro beta, you'll get a free update to the release version, of course.

And there'll be a new beta soon...

I hope that explains,
Florian

User avatar
florian
Bome Software: Founder
Posts: 2435
Joined: Thu Apr 28, 2005 10:09 pm
Location: Munich, Germany
Contact:

Post by florian » Mon Sep 17, 2007 10:40 am

"exit rules, do not execute action" moves on the the next rule regardless of the stop option, right? It would be handy if there were a way to prevent this.
Indeed:
- "exit rules, do not execute action" will skip anything further in this translator entry and move on to the next translator, examining its input action
- the "stop processing" flag only applies when the Outgoing Action is executed. Then, if the flag is true, further translator entries will be ignored.

You can always (though it's clumsy) add a "swallow" translator entry with "Stop Processing" turned on, and an empty/"None" outgoing action.

For a future version of MT Pro we will add a rule "Stop processing of this input event" to force "stop processing" in a rule.

Florian

PS: Bryan, I don't know why your reply does not show up here - I received a notification email about it, so I just included it as a quote.

Bryan
User
Posts: 13
Joined: Sat Sep 08, 2007 6:53 pm

Post by Bryan » Mon Sep 17, 2007 6:41 pm

I erased it, since it seems like a nit pick, but I'm glad to hear you're considering it for a future improvement.

My other suggestion would be to allow variables in the keyboard output.

Outgoing3=KAM10100KSQ100020ga2ga

I realize the problem is making this user-friendly

User avatar
florian
Bome Software: Founder
Posts: 2435
Joined: Thu Apr 28, 2005 10:09 pm
Location: Munich, Germany
Contact:

Post by florian » Tue Sep 18, 2007 1:20 pm

yes, I've been thinking about ways to parameterize the outgoing key string.

One important thing is to "send text" rather than keystrokes, i.e. you just enter e.g. "Typed Text" as Outgoing Action. Now variables can be inserted with an escape sequence, e.g. "Still %ga% notes left". %ga% would be replaced by the number, e.g. "Still 10 notes left" if ga has the value 10.
Also it should be possible to replace a variable with the ASCII equivalent, e.g. %(ga)% or so will be replaced with the ASCII character with index ga (I'm not sure about a suitable format yet).

How does that sound?
Florian

Bryan
User
Posts: 13
Joined: Sat Sep 08, 2007 6:53 pm

Post by Bryan » Tue Sep 18, 2007 9:28 pm

I'm more interested in sending a particular character then in converting to decimal. For my application, probably ASCII conversion in text would be good enough, though being able to do more general keystrokes would be cool.

As far as syntax, why not use the C printf format?

Post Reply