Create a loading message while MIDIguitar loads
to-the-sun opened this issue · 0 comments
Repository
https://github.com/to-the-sun/amanuensis
The Amanuensis is an automated songwriting and recording system aimed at ridding the process of anything left-brained, so one need never leave a creative, spontaneous and improvisational state of mind, from the inception of the song until its final master. The program will construct a cohesive song structure, using the best of what you give it, looping around you and growing in real-time as you play. All you have to do is jam and fully written songs will flow out behind you wherever you go.
If you want to try it out, please get a hold of me! Playtesters wanted!
Details
The newly implemented integration of MIDIguitar with Singing Stream allows for the plug-in to be loaded dynamically on a per-input basis. This means that the user could cause this to happen at any time via UI controls, not just at start up. When it does, it causes a bit of lag which the user may not be expecting and is otherwise unexplained.
Therefore, this task request is for creating a loading "screen" for Singing Stream while this is happening. What I really mean when I say "loading screen", is a semi-transparent panel
laid over the window with a comment
explaining what's happening, in exactly the same manner as happens when inputs themselves are being loaded (see following screenshot). Because this functionality already exists in Singing Stream it shouldn't actually be too difficult to augment it in this way.
Components
On the main UI of singingstream.maxpat there is a panel
with a scripting name of message
and a comment
with a scripting name of message_text
. These will be the ones in question and everything can be executed using scripting. If you open up p UI
in p target
, you can see how this is already being done.
I would create a new subpatcher using p UI
as your template. Everything can be sent through s ---scripting
connected to a thispatcher
in the main patch. It may look complicated at first but all you'll need to account for are
- sending
script send message_text set <insert text here>, script send message_text presentation_rect 1. 45. 230. 100., script send message_text hidden 0, script send message hidden 0
to initialize the message - sending
script hide message, script hide message_text
to hide the message - sending
script send Sources ignoreclick $1, script send Activate/Deactivate ignoreclick $1, script send Recalibrate ignoreclick $1, script send Sustain ignoreclick $1, script send Channel ignoreclick $1, script send Octave ignoreclick $1, script send pitch ignoreclick $1, script send tonal ignoreclick $1
to prevent user interaction while the loading screen is up, where$1
is0
or1
as appropriate.
Deadline
I would expect that this should take no more than three days.
Communication
Reply to this post or contact me through Github for more details.