Tuesday, June 25, 2024

Mesmerizer 1.8.0 release

CHAOS Mesmerizer 1.8.0 is in vendors and up on MP now.  This release adds support for streaming audio and video.  Read about it here.  Instructions for upgrading and a list of my vendors can be found in the stickies on the right-hand side of this page.

Wednesday, June 5, 2024

Mesmerizer 1.8.0 Preview

I had intended the next Mesmerizer release to be 1.7.5, which was planned to further enhance and streamline outfits, as well as providing some performance fixes.  However, a conversation with Jeff Cloud, co-founder of Mind Shift and the Live Trance Lab resulted in a major new feature: support for media playback, hence I'm renaming the next release 1.8.0 to indicate a significant enhancement.

Jeff has been creating some impressive trance videos and was interested in a device to allow them to be played back in-world in a full-screen format, so I created a simple HUD and dispenser system for him, and it seemed only natural to add that functionality to the Mesmerizer as well.

Video playback

Video playback is initiated by the new watch command, which comes in three variants: watch, watchi and watchf.  Each command accepts a video stream as a parameter and displays the video; the difference is in the level of control offered to the wearer.  The basic watch command allows the wearer to stop the playback via a menu obtained by clicking on the video;  watchf (or forced watch) doesn't allow the wearer to directly stop the video, but the menu obtained from clicking on the video will allow them to send a request to the person who initiated playback to ask them to stop it.  watchi (or watch interactively) allows the wearer to click on the video to allow access to embedded controls.

Each of these commands takes a single parameter: the stream to display.  A video stream is defined by three things: the URL of the stream, the aspect ratio of the video, and the duration of the video.  The latter is needed because SL unfortunately doesn't provide a way to determine when a video stream has ended.  There is a possible (albeit complex) workaround for this that I'll investigate for a future release, but for now, the duration has to be provided for the playback window to be automatically removed at the end of the video.

A video stream can be specified either within the watch parameter, or as a notecard in the Mesmerizer.  As a parameter, the stream is specified something like this:

/99 watch "aspect=1.778;duration=15:10;https://server.com/Clip1.mp4"

This gives the URL of the stream (https://server.com/Clip1.mp4), the aspect ratio (1.778) and the duration (15 minutes and 10 seconds).  Durations can be specified as hours:minutes:seconds as in the example, as a Mesmerizer interval (15m10s), or simply as a number of seconds (910).  If omitted, aspect defaults to 1.778, and duration defaults to 0 which means "unlimited", in which case stopv must be used to remove the playback window.

Rather than typing all of the above each time, the information can be stored in a notecard in the Mesmerizer's inventory.  The name of a video notecard must begin with "Video:".  The information in the example above, when stored in a notecard (perhaps called Video:FirstClip) might look something like this:

desc=Example Clip 1
desc=A second line of description
aspect=1.778
duration=15m10s
stream=https://server.com/Clip1.mp4

The video can then be played back by specifying the name of the notecard (excluding the leading "Video:"):

/99 watch "FirstClip"

There is an obvious parallel here to how picture data (aspect ratio, animation parameters, etc) can be stored in a notecard, and in a further parallel to the pics and picinfo commands, there are new vids and vidinfo commands.  vids lists the installed video notecards, and vidinfo takes a video notecard name as a parameter (without the leading "Video:") and displays information about the video, including the values in the desc (or description) line(s).

Audio playback

In addition to video streams, Mesmerizer 1.8.0 will support audio streams.  There is a single listen command to play an audio stream.  The command takes a parameter with the same syntax as the watch commands, the only difference being that any aspect qualifier is ignored.  Like with videos, an audio stream can be specified in a notecard, with the same syntax as video stream notecards, the only difference being that an audio stream notecard name must have an "Audio:" prefix instead of "Video:".

Almost identical to the vids and vidinfo commands, auds and audinfo commands provide the ability to list installed audio streams and inspect a stream notecard.

A/V common features

Playback of audio and video streams is identical, apart from no screen being visible for audio streams.  This means that it's possible to create both Audio: and Video: notecards using the same stream URL, to allow for playback with or without video.

In addition to the desc, aspect, duration and stream keywords that can appear in Audio or Video stream notecards, you can optionally define chapter markers.   These are simply places within a stream where the Mesmerizer will notify the person who initiated the playback.  For example, assume a stream contains a recorded audio induction of total length 2 minutes and 25 seconds, starting with 1 minute 10 seconds of general relaxation, followed by 1 minute of staircase descent, followed by a brief deepener, and uses the following notecard:

desc=Brief induction
duration=2m25s
stream=https://server.com/AudClip.mp3
chapter=1:10;Starting staircase
chapter=2:10;Deepener

When played back via the listen command, this will cause the Mesmerizer to send the following series of messages to the command initiator, at appropriate points during the playback:

Audio starting (2m25s)
Chapter: Starting staircase (1m10s)
Chapter: Deepener (2m10s)
Audio ended

The chapter markers allow a hypnotist to coordinate other actions with a stream, for example displaying pictures or text at appropriate points during an audio stream.  In addition to the visible messages above, the following Mesmerizer events are generated: on-stream-start, on-stream-end and on-stream-chapteron-stream-start sets a "stream" variable to the name of the stream - either the name of the notecard used (including the "Video:" or "Audio:" prefix), or the actual URL if no notecard was used (prefixed by "Astream:" or "Vstream:" for audio and video streams respectively).  The on-stream-chapter event sets the "chapter" variable to the text associated with the chapter (e.g. "Starting staircase" or "Deepener" in the above notecard).  These events allow the Mesmerizer to provide programmed responses during a stream.

Chapter markers will be sent to the trance initiator only if that's someone different to the subject.  Displaying these notifications to the subject would be distracting, and also superfluous, since the subject should be able to hear or see what's going on in the stream.  If the wearer really wants to see the chapter marker messages, they can do so by installing a trigger for the on-stream-chapter event, that simply echoes the chapter text.

Playback of both audio and video streams can be terminated early via the stopv command.

Requirements for media playback

Both audio and video playback make use of an SL feature known as "Media On A Prim" (or MOAP).  MOAP allows textures to be generated within the viewer from a web-page or stream. This feature needs to be enabled in user preferences.  To verify that it is enabled, open the Preferences dialog in the viewer (Ctrl-P or choose "Preferences" in the "Avatar" menu), and select the "Sound & Media" page on the left side of the dialog.  Switch to the "Media" tab, and verify that "Allow inworld scripts to play media" is checked, and that "Media auto-play" is set to "Enabled".

Privacy concerns

Because of the way that MOAP works, the media or web-page is retrieved by the viewer, not by the SL servers.  This means that the site from which a stream is fetched may record the IP address of your computer in its logs.  If this is a concern, then you should either disable MOAP in Preferences (which will prevent audio and video streams from playing), or use the media filter on the preferences page above to control which sites can serve content that can be used for MOAP.  Note that, if you enable the filter, you will have to give explicit permission to access a site.  This permission dialog is invisible to the Mesmerizer, so it has no idea of how much extra time it has taken to approve a request, which means that the time it allocates for playback (the duration) may not be sufficient to view the entire stream.  You should therefore pick the "always allow" choice for sites that host streams that you watch repeatedly - this will avoid the permissions dialog on subsequent watch or listen invocations.

Hosting streams

Version 1.8.0 of the Mesmerizer will come with some bundled audio and video streams.  These streams should be taken as free demos, and as they're not hosted by me, I can't guarantee that they will continue to work indefinitely.  Included video streams are a series of video trances by Jeff Cloud; included audio streams are some of the initial "BimboDoll Conditioning" clips from the "Bambi Sleep" series. 

For those wishing to create their own streams, the question becomes one of where best to host and how to get the appropriate link to use.  There are private MP4 hosting services, but you will ultimately have to pay for that access.

For free hosting on a public system, BitChute.com is a good platform for content in general and erotic hypnosis content in particular. Unlike some other video-sharing platforms that might have stringent content policies, BitChute offers a more open environment and accommodates adult content, asking you to label your content with the "NSFW" label (not safe for work), if appropriate. BitChute provides a reliable and robust platform for long-term video hosting, and its user-friendly interface makes it very easy to set up your own space and begin publishing content.

To obtain the MP4 link from any video posted on BitChute, you can follow a straightforward process. Once you have uploaded a file and it is fully published and "live," simply click on the play button. Once it begins to play, right-click on the video and select "Copy video address..."  That will give you the MP4 link needed to use in a Mesmerizer stream notecard.