|
Post by paoloros on May 23, 2022 9:24:25 GMT
Hello Torsten,
I'll propose a new setting to add in the .ini file.
Something like:
AutoPlayScrollingFromMIDI=yes/no
If yes, when live prompter receive a MIDI Program Change to trigger a certain song, the scrolling/Play starts automatically. I know there is the "MidiInKeyPausePlay" mapping, but that mean to send another MIDI data after the Program Change.
Thank you in advance.
Cheers, Paolo.
|
|
|
Post by Torsten on May 23, 2022 9:37:43 GMT
Hi Paolo,
interesting one - let me clarify: would this setting be to always start scrolling when a song is loaded or only to start when a song is loaded via MIDI program change?
So far, I've made sure that songs DON'T start scrolling automatically when loaded - the typical usage scenario is that you load a next song, everybody read the first couple of lines and comments to get themselves ready, then the drummer counts in, so we press "start scrolling" then. But of course I can imagine other scenarios.
Can you describe in a bit more detail what your specific use case is that you want to start scrolling right away?
Easier to put together a good solution if I know the use case better.
Cheers,
Torsten
|
|
|
Post by paoloros on May 23, 2022 9:57:50 GMT
Hello Torsten,
Thanks for answering.
For me it's ok to have only the start when a song is loaded via MIDI program change.
I'll try to explain the scenario.
(I'm a Computer Engineer and not a musician, I have musician friends in a group band)
They have a special machine (Cymatic lp 16) with MIDI and Audio outputs.
To start a song, the drummer just push play on this machine, and it outputs the audio to the mixer (with the base) and also sends a defined MIDI signal(s). This midi signal is used to change programs on the digital guitar pedals, on the keyboards, Live Prompter, soon to trigger stage lights DMX programs, and so on...
If you r asking: "How do they know the next song?" They prepare it a priori, or just with talking on the stage.
It's useful to have an automatic start of the scrolling when the machine sends this MIDI signal.
Hope it's clear.
Cheers, Paolo.
PS: The aim is to provide a full hand free solution.
|
|
|
Post by Torsten on May 23, 2022 13:49:13 GMT
Hmm, TBH, I don't see that as a very wide-spread use case.
I can see valid work-arounds here: it shouldn't be too difficult to either train the Cymatic "master machine" to not only send the program change, but also the necessary Pause/Play CC or Note command, or alternatively to use something like Bome's MIDI translator on the LivePrompter machines to convert the program change to the necessary sequence of PC and then CC. In both cases, you would have a full hands-free solution.
I'm somewhat reluctant to put in settings that only affect very niche use cases - LivePrompter is supposed to stay lean and focused...
I'll put your request on the backlog - if there is additional demand for it, I'll consider pushing it up.
Cheers,
Torsten
|
|
|
Post by paoloros on May 23, 2022 21:45:11 GMT
Hello Torsten, It's pretty tricky to send another signal with the Cymatic. Does it takes too much time to include this new setting? Because it can be very very helpful for me.
There is also another problem in LivePrompter: if you hold the play/pause button (Enter or via Midi signal) the loaded song play and pause continuously, it doesn't wait the button (or midi signal) release.
Thank you in advance. Regards, Paolo.
|
|
|
Post by Torsten on May 24, 2022 13:10:48 GMT
Does it takes too much time to include this new setting? Because it can be very very helpful for me. Hey Paolo, that's not how feature requests work - this isn't a mail-order service ;-)
Whenever I add a new feature, this carries in itself the risk of adding new complexity, introducing potentially breaking points or sources of bugs, also potential feature overload, which I definitely want to avoid.
So for any new feature request, I consider if this will be useful for the broader user community and not just for one user with a very specific use case - otherwise LivePrompter might end up an unholy mess of features that don't fit together...
I will put this on the backlog, and in case there is more demand for something like this, I'll consider it, but don't expect it anytime soon.
In the meantime, look at Bome's MIDI translator - it should be pretty easy to create a rule in it that waits to receive a program change, and on receiving one, forwards it and sends a CC (for Play/Pause) after it. All you need to make this work is a virtual MIDI connection between Bome and LivePrompter (e.g. loopMIDI), and you can solve your specific problem.
Not everything needs to be solved within LivePrompter - a bit of creativity helps!
Cheers,
Torsten
|
|
|
Post by Torsten on May 24, 2022 13:21:56 GMT
There is also another problem in LivePrompter: if you hold the play/pause button (Enter or via Midi signal) the loaded song play and pause continuously, it doesn't wait the button (or midi signal) release.
Hey Paolo, for keys (e.g. Enter), this is pretty normal - in Windows, keys have an auto-repeat function, so if you keep your finger on a key, it will auto-repeat, thus re-triggering play/pause over and over Regarding MIDI, this shouldn't happen - LivePrompter does trigger on note-on, not on note-off, that's correct. But there shouldn't be repeated key-presses when you hold a key. When you push a key on a MIDI keyboard, it should send ONE command (note on) and nothing else (except possibly aftertouch, but LivePrompter ignores that). So I would be very surprised if this multi-trigger happens via MIDI notes. Can you maybe use a MIDI monitor like MIDI-OX (or the LivePrompter diagnostic tool) and take a look at the MIDI stream from your device and send me the output? Easier to diagnose what is happening if I can see the MIDI stream. Regarding not waiting for a button release: that is by design - there are a number of controllers out there that send only one CC when a button is pressed and not when it is released. So there is no waiting for a "release" command - LivePrompter will always trigger a button on a note command with velocity > 0 or a CC value > 0. But that shouldn't cause multiple repeats. So if you could let me have a look at your MIDI stream, that would be helpful. Cheers, Torsten
|
|
|
Post by paoloros on May 24, 2022 14:11:19 GMT
Hello Torsten, At the moment I don't have the physical testing equipments. Asap I can I'll send the logs to you. What do you think about it? I still need to test it with a physical MIDI device (Cymatic), but with an internal emulator it works nice.
Regards, Paolo.
|
|
|
Post by Torsten on May 24, 2022 15:56:14 GMT
Hi Paolo,
cool and pragmatic solution! Exactly along the lines of my thinking with Bome - of course it helps if you are a programmer and can build your own tools ;-) . I have a couple of such "little helpers" I've built for my live and studio setup - stuff like a simple button that sends different MIDI commands in "up" or "down" mode, e.g. for an on-screen talkback switch.
I would probably try to simplify the setup of your solution a bit - currently, a lot of installation (Python, Visual Studio) necessary for such a little tool. Not sure: is there a way to compile such python scripts to a self-contained .exe?
Cheers,
Torsten
Cheers,
Torsten
|
|
|
Post by paoloros on May 24, 2022 17:11:32 GMT
Hello,
Yes, make sense. Of course you can, the .exe is the next step (but with some very little changes).
The Visual Studio is just for install a library at the beginning, and this is the heaviest one. For python it's ok, since it's already installed on the pc for other purposes (in my case).
I had chosen this way because we use a tiny PC, and I don't want to load it too much, and python seems to be very very light in this case.
Just out of curiosity, how do u have implemented LivePrompter? C++?
Cheers, Paolo.
|
|
|
Post by Torsten on May 24, 2022 17:45:13 GMT
Just out of curiosity, how do u have implemented LivePrompter? C++? Yes, LivePrompter is built in C++ using the wxWidgets framework.
The next version - I'm currently working on the Android version, but iOS and a new Windows version are planned to follow - is built using Dart and the Flutter framework. So far that looks good, look & feel is a lot more modern, and the performance is very snappy.
Cheers,
Torsten
|
|