to-the-sun/amanuensis

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 is 0 or 1 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.

Proof of Work Done

https://github.com/to-the-sun