From: Max Value Date: Wed, 30 Apr 2025 04:43:04 +0000 (+0100) Subject: Final submission X-Git-Url: https://git.ozva.co.uk/?a=commitdiff_plain;h=1df82d822a6263d2eba98f6a0823067de13ac08b;p=shopping-docs Final submission --- diff --git a/XMDV Teleshopping - Production Folder.pdf b/XMDV Teleshopping - Production Folder.pdf new file mode 100644 index 0000000..1d4cadb Binary files /dev/null and b/XMDV Teleshopping - Production Folder.pdf differ diff --git a/chapters/external.tex b/chapters/external.tex new file mode 100644 index 0000000..e5e8874 --- /dev/null +++ b/chapters/external.tex @@ -0,0 +1,32 @@ +\chapter{External Documents} + +\textsc{In which} we review our compliance. + +\section{Music \& Licensing} + +All music (\href{https://www.audiocoffee.net/}{AudioCoffee}) is licensed under CC BY, it is credited in the description of the YouTube video as well as in the stream description. All other assets, photos, fonts, sounds, code etc are correctly licences and compiled with. It was my insistence that the set-design team only use licensed assets (out of my personal collection or via a University service such as Adobe Stock) and fonts (off GitHub or Google fonts). + +\section{Documents} + +\begin{figure} + \centering + \fbox{\includegraphics[width=0.7\textwidth]{mam}} + \caption{Submission on the MAM} +\end{figure} + +\textit{See below...} + +\includepdf[pages=-, scale=0.9, frame=true]{external/cv.pdf} +\includepdf[pages=-, scale=0.9, frame=true]{external/compliance.pdf} +\includepdf[pages=-, scale=0.9, frame=true]{external/footprint.pdf} +\includepdf[pages=-, scale=0.9, frame=true]{external/ra-10th.pdf} +\includepdf[pages=-, scale=0.9, frame=true]{external/ra-final.pdf} +\includepdf[pages=-, scale=0.9, frame=true]{external/ra-aux.pdf} +\includepdf[pages=-, scale=0.9, frame=true]{external/info.pdf} +\includepdf[pages=-, scale=0.9, frame=true]{external/call-sheet.pdf} +\includepdf[pages=-, scale=0.9, frame=true]{external/gfx-text.pdf} +\includepdf[pages=-, scale=0.9, frame=true]{external/floorplan.pdf} +\includepdf[pages=-, scale=0.9, frame=true]{external/manifest-unsafe.pdf} +\includepdf[pages=-, scale=0.9, frame=true]{external/consent.pdf} +\includepdf[pages=-, scale=0.9, frame=true]{external/feedback2.pdf} +\includepdf[pages=-, scale=0.9, frame=true]{external/feedback3.pdf} diff --git a/chapters/final.tex b/chapters/final.tex new file mode 100644 index 0000000..abe3437 --- /dev/null +++ b/chapters/final.tex @@ -0,0 +1,21 @@ +\chapter{The End} + +\textsc{In which} we give some final words. + +\section{Thoughts on the final product} + +I am not particularly happy with the final product. During the first 2 months of production it was all setup to go perfectly, and during snapshots 2 and 3 I was told that I prepared for errors to a ``beyond reasonable`` degree. Yet still, we had plenty. Visually, \textsc{The Threat} was slightly disappointing, this was due to little time to focus on the lighting. + +We also had to scrap many amazingly made and very effective products that would have made the show quicker and more interesting. Overall there where so many small things, all very easy to implement, that would have made the whole stream far more effective, which is disappointing in retrospect. Mixed feelings, but a valuable learning experience. + +\section{Things to do differently} + +\begin{itemize} + \item Set better deadlines for the art department + \item OzVa GFX server would ideally be on side and/or more powerful with a more appropriate database (MySQL, Postgres) + \item More time would be given to lighting and lighting design + \item Having a dedicated script supervisor on the day would help keep on track of the product timing. + \item Crew would be reduced and work together more closely in pre-production + \item Better thought into how changes to the extended GFX system might affect the work culture in the studio (Is it a good idea to go paperless? Should there be fewer GFX operators?) +\end{itemize} + diff --git a/chapters/format.tex b/chapters/format.tex deleted file mode 100644 index 89727a0..0000000 --- a/chapters/format.tex +++ /dev/null @@ -1,3 +0,0 @@ -\chapter{What's the Significance of Callers?} - -\textsc{In which} we discuss the format. diff --git a/chapters/introduction.tex b/chapters/introduction.tex index e06e561..525ece2 100644 --- a/chapters/introduction.tex +++ b/chapters/introduction.tex @@ -6,34 +6,42 @@ \noindent\includegraphics[width=\textwidth]{emoji} -\section{Posterity} +\section*{Posterity} -Much of the thinking on the project was done early, in 2022, at a three way intersection. At the time teleshopping was a comfortable facination, anchored in all sences. Maybe it was a live time, because the 2nd media keeping me in one place was \textit{Blaseball} [sic]. The 3rd was \textit{XMDV Radio}, the Sound of the Apcoalypse. Each deserves background, but \textit{ball} most of all. +Much of my thinking on the project was done early, in 2022, at a three way intersection. At the time teleshopping was a comfortable fascination, anchored in all senses. Maybe it was a live time, because the 2nd media keeping me in one place was \textit{Blaseball} [sic]. The 3rd was \textit{XMDV Radio}, the Sound of the Apocalypse. Each deserves background, but \textit{ball} most of all. Pages and pages of notes and drawings where done before I realised it might be difficult. XMDV Radio was performed after only 2 sessions in the studio\footnote{One of the original hosts of XMDV Radio, Jack Christian Sims, who played ``Raymond D. Ozone'', acted as my director and was a great help throughout pre-production.}, so I reasoned it would be easy as soon as I started having lessons in the TV Studios. -Pages and pages of notes and drawings where done before I realised it might be difficult. XMDV Radio was performed after only 2 sessions in the studio\footnote{One of the orrigional hosts of XMDV Radio, Jack Christian Sims, who played ``Raymond D. Ozone'', acted as my visual director and was a great help throughout pre-production.}, so I reasoned it would be easy as soon as I started having lessons in the TV Studios. +Not the case. A lot of the time I find that even though things get easier with skill and background knowledge, your ideas get more and more complex along the way. Compensating for yourself to keep everything tastily difficult, and pay far more for it. For instance: the jump from pre-recorded to as-live seems a long one, from a small team of people to a fully-crewed gallery and a couple reams of paper. So as well as developing my skills along the way, I've also got the clean and cutting knowledge of \textit{what is feasible}, letting me push things as far as I possibly can without braking them. -Not the case. A lot of the time I find that even though things get easier with skill and background knowlage, your ideas get more and more complex along the way. Compensating for yourself to keep everything tastily difficult, and pay far more for it. +The real work began in the summer of 2024. I have developed an addiction to computer science. I also happened to hear, find out or be blessed with the fact that all TV GFX are XHTML. This was an amazing revelation. With a flick-of-the-wrist, something so outside my circle of competence that I had never gave it a second though, became something I could throw together in 20 minutes and understand totally. The Olympics had just been on, and in each scoreboard I imagined how I might make it work, counted transition delays and charted the DOM. With this in mind, and my web-design greyhounds nipping at my fingers, I got to work on the GFX system. With a most-likely client count of 1, the system could be very simple, built with PHP and SQLite on the back-end. I find that when going long on large projects like this by yourself, and with little outside push to continue, I find it best not to plan too far ahead, but instead picture the finished product and let it flow out of you. When setting out, the priority is completing your goal. Clean code is an optional (and desirable) extra. -For instance: the jump from pre-recorded to as-live seems a long one, from a small team of people to a fully-crewed gallery and a couple reams of paper. So as well as developing my skills along the way, I've also got the clean and cutting knowlage of \textit{what is feasible}, letting me push things as far as I possibly can without braking them. +Another helpful strategy is to examine what you make often. Test and refresh, try different colors, different fonts. Be fascinated by the process and make something beautiful at the same time. I believe this is the key to long-haul solo projects. Features where graduated, allowing me to pull them out my hat one after the other for a couple months. Quick, 2 hour, jobs with the serotonin boost of a more beautiful system. The downside of this, though, is coming back to it. Like trying to flex a finger on a hand you cut off. Everything must be scrutinised and tested again. All spacial-awareness of the system is gone. -The real work began in the summer of 2024. I have developed an addiction to computer science. I also happened to hear, find out or be blessed with the fact that all TV GFX are XHTML. This was an amazing revelation. With a flick-of-the-wrist, something so outside my circle of competance that i had never gave it a second though, became something I could throw together in 20 minutes and understand totally. The Olympics had just been on, and in each scoreboard I imagined how I might make it work, counted transition delays and charted the DOM. +I also continued my work on the more artistic elements of the project, doing some background research on context of what I might make. In particular, books dealing with consumption in art. \textit{Shopping: a century of art and consumer culture} was exactly what I was looking for, with one particular piece being very impactful to the slogans of the entire piece. -With this in mind, and my web-design grayhounds nipping at my fingers, I got to work on the GFX system. +This research was aestetic, too, and I prepared a mood-board of images to inform the design of "the clock". -With a most-likey client count of 1, the system could be very simple, built with PHP and SQLite on the backend. +I also put together a list of potential crew, as well as 2 potential hosts. This crew list is founded on the project as extracurricular, so it has almost totally been replaced by people I know as competent and trust. -I find that when going long on large projects like this by yourself, and with little outside push to continue, I find it best not to plan too far ahead, but instead picure the finished product and let it flow out of you. When setting out, the priority is completing your goal. Clean code is an optional (and desireable) extra. +It's Christmas (2024), I meet with one of my director friends. We talk on how the products might be presented. It's vital work and something I hadn't though about yet, this is Finn and he would later go on to helping out on the production as the ``narrative director''. -Another helpful stratergy is to examine what you make often. Test and refresh, try different colors, different fonts. Be facinated by the process and make something beautiful at the same time. I belive this is the key to long-haul solo projects. +\section{Introduction} -Features where graduated, allowing me to pull them out my hat one after the other for a couple months. Quick, 2 hour, jobs with the seratonin boost of a more beautiful system. +The crew I have assembled for XMDV is eclectic, stretching across multiple departments, and they each seem to see it through their own lenses. The directors (both off the film course) continue to claim that I should have some way of telling the audience a bit more about whats happening (who is \textsc{The Threat} etc.), the set-design team keep telling me that the set was too bare in the practice and it looks ``nothing like'' teleshopping and my cameraman seems to think I'm making a comedy. -The downside of this, though, is coming back to it. Like trying to flex a finger on a hand you cut off. Everything must be scrutinised and tested again. All spacial-awareness of the programe is gone. +I have tended to sway towards them and listen to their feedback, they're all people I trust, but I have decided this is not necessary. They're all right, of course, but I am not making teleshopping, or a film, or a comedy. Give me a rule and I'll break it, and I am in no rush to explain myself. The entire reason this project falls under ``multi-platform media'' when it seems to me very clear that it is TV studio, is so that I can break the rules, and as a result I have been able to have vastly more studio time, vastly more freedom and a far more relaxed schedule. All things that will improve the final product. Why was my last snapshot a homoerotic fan-fiction? Because I break the rules. Why would I take anything but the route that gets me closer to perfectly recreating my dreams. -I also continued my work on the more artistic elements of the peice, doing some background resarch on context of what I might make. In particular, books dealing with consumption in art. \textit{Shopping: a century of art and consumer culture} was exacly what I was looking for, with one particular peice being very imactful to the slogans of the entire peice (\cite{TATE2002}). +I am not going to ruin one of the most beautifully sparse and minimal sets I've ever worked on by littering it with ``potted plants'' and, again, I am in no rush to explain myself. Not for the crew, not for the audience. The audience... I wonder what they think about all this? -This research was aestetic, too, and I prepared a mood-board of images to inform the design of "the clock". +\begin{quote} + XMDV Teleshopping plays off a fascination with the surreal and esoteric, with a focus on people aged 18-35 with a slight male lean and a slight LGBTQ+ lean. For these people, and many of any age, teleshopping represents a bizarre sub-genre of television. At best, curious; At worst, manipulative. +\end{quote} + +This is from Snapshot 1, and remains true. It seems to me that the platform, in this case precludes the audience, which later defines itself. + +If I where making, say, a magazine show about boats; I might first figure out my audience (say 35-50 year old men) before then identifying my platform (most likely the channel ``Dave'' in this case). + +With a platform like Twitch, though, which has everything from Polish \textit{Osu!}, to Americans in hot-tubs, it seems a little different\footnote{It is almost as if Twitch becomes more of a medium than a platform, with the ``categories'' and ``tags'' used by Twitch to classify content becoming the platforms. This makes selecting the right category and tags vital to our success.}. -I also put together a list of potential crew, as well as 2 potential hosts. This crew list is founded on the project as extracurricular, so it has almost totally been replace by people I know as competent and trust. +Should XMDV have more room to breathe, as well as some more multi-platform engagement and more content across the board, I have no doubt that it's audience would find it. -It's christmas (2024), I meet with one of my director friends. We talk on how the products might be presented. It's vital work and something I hadn't though about yet, this is Finn and he would later go on to helping out on the production as the ``narrative director''. +There is of course the chance that this audience doesn't exist. See Chapter \ref{sec:research} for my argument against this. diff --git a/chapters/production.tex b/chapters/production.tex new file mode 100644 index 0000000..c6665da --- /dev/null +++ b/chapters/production.tex @@ -0,0 +1,152 @@ +\chapter{Let's sell some products!} + +\textsc{In which} we make some teleshopping. The following is partially taken from my ``production'' document, which was distributed to the crew. + +\section{Responsibilities} + +\begin{description} + \item[Narrative Engineer] is to be responsible for the gallery as a whole should the producer be busy, but is primarily responsible for: + \begin{itemize} + \item The GFX controllers. + \item The current text on screen. + \item The flow of each sale, keeping on top of the anchors timings and giving him a push forward if needed. + \item Responding to any requests from the anchor. + \item The actions of the floor managers (moving products in and out, large story beats) + \end{itemize} + + \item[Director] is to be responsible for the look of the show and all cuts. This includes: + \begin{itemize} + \item The vision mixer, calling shots and fades. + \item The camera, close-ups and moves.\ + \item The lighting operator. + \item The engineer where necessary. + \end{itemize} + + \item[The Anchor] is responsible for cuing in all price drops and all timers. The may also direct or otherwise request: + \begin{itemize} + \item A price drop. + \item A timer on screen. + \item A camera move (close up, come closer \&c). + \item A cut to the safety shot. + \item A cut to a different camera. + \item Any information on the product they feel they are missing. + \end{itemize} + All of these requests should not be fought unless absolutely necessary. + +\end{description} + +\section{Product switchover} + +It should be assumed that both shots are unsafe at all times! the Anchor may suddenly throw to the Lazy-Susan or the Director may, for some reason, decide to cut up the shot + +\begin{enumerate} + \item The Anchor sells out + \item The FM gets ready to switch out the product + \item The engineer gets ready for the next safety VT if necessary + \item The Vision mixer switches to the safety shot + \item The producer calls ``shot safe'' and the FMs move in to switch the product + \item During this time the Anchor does not have to fill and the music may be brought up and the discretion of the sound operator + \item As soon as the product is switched, the FM communicates this to the gallery + \item Director brings the Anchor back on-cam and the next product begins to sell + \item The Producer calls safe-shot on the lazy Susan and this is switched by the FMs +\end{enumerate} + +\section{Replacement} + +There is also the role of the Anchors ``replacement''. This is an minor acting role with less than a minute or so of screen time. + +The product that this relates to is called ``The Replacement Mirror''. The idea is that the mirror shows you the person who will replace you, near the end of the sale the Anchor will look into the mirror, at this point ``The Replacement'' will emerge from the flats behind the Anchor, this will be cued from the gallery and FM 1 is to give the Replacement Anchor the cue. + +When the replacement leaves the set, the Anchor will be cued to smash the mirror (made from sugar glass) on the corner of the desk. + +Before the stream begins, The set design lead is to brief and prepare the replacement in room 3.08. Call time for the replacement is 1200. + +\section{The Plane} + +The plane is the flight that the Anchor will be selling as it flies. It has a specific order of operations because a screen will have the be moved in. + +\begin{enumerate} + \item Vision mixer cuts to and sticks on Lazy Susan safety shot + \item When shot is safe, FM moves in screen the the left of the Anchor (reference studio entrance) + \item Engineer prepares plane VT on SVR 2 and gets ready for cue VT. + \item 2 minutes into the VT, the Anchor sells the pilot and co-pilot + \item The Anchor is to progressively sell the crew, the passengers and the structure of the plane. + \item As parts of the plane are sold, the team should be ready for the Anchor to come over to the Lazy-susan to rip parts off the plane + \item 5:30 into the VT, the plane sells out (crashes) +\end{enumerate} + +\section{Set-up} + +\begin{description} + \item[Set design lead and Director] are in charge of all floor crew (excepting the lighting operator) in the setup phase. This is to allow a quick setup, and where necessary, adjustment of the set. + \begin{itemize} + \item The set design lead, Tegan, is to take responsibility for the layout of the set as a whole, placement of the walls, the lazy Susan, the clock \&c. + \item The Director, Jack, is to take responsibility for the positioning of the cameras, working with Set design for optimum placement. + \item All other floor crew are to help move walls or other fixtures. They will then bring in the products or stand-ins, covering them up where necessary. + \item Lighting operator is to setup lighting and make necessary adjustments. + \end{itemize} + + \item[The Narrative engineer] is in charge of all gallery crew in the setup phase. This means: + \begin{itemize} + \item Getting all sounds loaded and the desk setup for the sound operator. + \item Getting the GFX system set up to a blank state, calibrating the timer offset due to latency (as instructed in training) and checking that everything is fully functional, including the clock, reporting to the producer where it is not. + \item Calibrating all cameras (as soon as lighting is stable) for the engineer. (This role will be taken on by the producer for the test run of the 7th). + \end{itemize} + +\end{description} + +As soon as The Anchor arrives (1100) the set design lead is to be dispatched to bring them a copy of the item manifest (get from producer) and talk through with them what each item is. + +\section{The End: Practicing the finale} + +This entire section is forbidden and not to be communicated to the anchor. + +The end of the stream follows the following structure. + +\begin{enumerate} + \item The final item is brought up on the GFX, it is for an item called ``Everything''. Floor manager 1 begins to move all the locked off cameras backwards and off to the sides of the studio (Cameras 1, 3, 4 and 5). Floor manager 2 takes position behind the set for the appearance of \textsc{The Threat}. The gallery cuts all unnecessary communication with the Anchor, at the discretion of the producer. + \item The GFX overlay is faded out fully for the first time. + \item The lighting operator triggers the finale cue which dims all lights on the Anchor. + \item Camera 2 begins to move backwards very slowly as far as possible, with FM 1 cable bashing where needed. + \item Lighting advances the next 4 cues at the direction of the director and the producer, each turn off one of the 5 lights currently pointing at the set. + \item The producer cues FM 2 to reveal \textsc{The Threat}. Lighting then triggers the final cue casting the set fully into darkness. + \item The vision mixer cuts to black fully and the live-stream is ended. +\end{enumerate} + +This is to be practiced as much as possible, as soon as possible, on the 7th, with a stand-in for both the anchor and \textsc{The Threat}. + +This practice will be the responsibility of the Director and Narrative engineer in the gallery as soon as the set is complete + +\input{sections/7th} +\input{sections/10th} +\input{sections/contingency} +\input{sections/24th} + +\section{Other platforms} + +Throughout the entire stream as well as the last few weeks of the pre-production, there was an \href{https://bsky.app/profile/xmdv.bsky.social}{active Bluesky account} under the name of \threat{}. This regularly ``tweeted out'' about the Anchor, openly addressing stream issues and furthering the narrative. Members of the crew where also actively in chat, either doing crowd work or sending messages ``in character'' as the station itself. The full, and colourful chat log can still be found on the stream recording \href{https://www.twitch.tv/videos/2441310027}{on Twitch}. Note that during the intro (2 minutes of silhouetted silence) the Narrative Engineer was sending out messages via the Twitch chat, introing the show and making good use of Twitch's emojis. These where sent approximately 6 seconds apart: + +\begin{verbatim} +-1 +SingsMic tuning +SingsMic calibrating +TAKEOFF SingsNote +TombRaid THE DOOR IS OPEN! +THE LIGHTS ARE HOT <3 THE STATIC STRONG <3 +THE SALE BEGINS! PogChamp PogChamp PogChamp +EVERYTHING MUST GO! PogChamp PogChamp +BEAT +EVERYTHING! ;) +THE THREAT IS HERE GayPride GayPride GayPride +BEHIND THE WALL! ;) +CHAT +IT SMILES THROUGH BLOODY TEETH GayPride +SingsMic run up to record +ILL SEE YOU +AT +THE END NotLikeThis +IF I CAN EVEN BE CAUGHT ;) ;) +SingsMic cue anchor +\end{verbatim} + +There was an element of the ARG in this, particularly \href{https://sigid.ozva.co.uk/signal.html}{this page} which is a recreation of a page from the \href{https://sigidwiki.com/wiki/Template:DatabaseUNID}{Unidentified Signals Wiki} describing some kind of signal that came from flight KLM31N before it disappeared over Norway. It, of course, features the Alpha and the Omega. It also contains a link to a distressed and lightly annotated copy of ``the script''. diff --git a/chapters/products.tex b/chapters/products.tex index 355ce1d..85e7091 100644 --- a/chapters/products.tex +++ b/chapters/products.tex @@ -4,18 +4,20 @@ \section{The Team} -The ``Set-design'' team, or probably more appropriately, the art team, is made up of 4 2nd year BA Set-Design students. They're required by their course to take on one of the BATARP TV Studio FYPs, but I also happened to be in the meeting at the time and was given an oppertunity to pitch XMDV Teleshopping to them. They where not required to take part in the production as part of their course and I'm very very thankful for the work they put in, esspecially considering we where forced to cut some products last minute. +The ``Set-design'' team, or probably more appropriately, the art team, is made up of 4 2nd year BA Set-Design students. They're required by their course to take on one of the BATARP TV Studio FYPs, but I also happened to be in the meeting at the time and was given an opportunity to pitch XMDV Teleshopping to them. They where not required to take part in the production as part of their course and I'm very very thankful for the work they put in, especially considering we where forced to cut some products last minute. -One of the issues I faced, working with the team, was their tenancy to make things as late as they could, which definately put the pressure on the last few days, eliminating any time that I would have normally used for final checks, paperwork and sleep. I belive this to be one of the major reasons for, what I see as, the faliure of the project overall considering the myriad issues faced on the day. Should I have actually enforced tighter deadlines on them, there may have been more time to breath in the run up to the shoot and would have been an oppertunity to record the backup VTs of each product. +We organised over WhatsApp, a separate group to the main crew, and shared ideas over Pintrest: \url{https://pin.it/6JrhfPm4v}. -I did have a large amount of oversight on all products and esspcially the graphics, sometimes with their reluctance, and a majority of the work done was done with the whole team present. +One of the issues I faced, working with the team, was their tenancy to make things as late as they could, which definitely put the pressure on the last few days, eliminating any time that I would have normally used for final checks, paperwork and sleep. I believe this to be one of the major reasons for, what I see as, the failure of the project overall considering the myriad issues faced on the day. Should I have actually enforced tighter deadlines on them, there may have been more time to breath in the run up to the shoot and would have been an opportunity to record the backup VTs of each product. -The following is the products in order of planned apperance. +I did have a large amount of oversight on all products and especially the graphics, sometimes with their reluctance, and a majority of the work done was done with the whole team present. + +The following is the products in order of planned appearance. \section{Products} \subsection{Coffee. we killed the sheep!} -During the initial meeting with the narrative director, we came up with a list of concepts that could be turned into products. This one represents ``sleep'', being a jar of coffee that makes sure you never sleep again. It was designed by Leiah Blanchard. The copy was written by me. +During the initial meeting with the narrative director, we came up with a list of concepts that could be turned into products. This one represents ``sleep'', being a jar of coffee that makes sure you never sleep again. It was designed by Leigah Blanchard. The copy was written by me. \begin{figure} \centering @@ -33,7 +35,7 @@ This was under the concept of ``Planet X'', which we later changed to Planet 9 t \subsection{Black and White Blood Chocolate Sauce} -This was the concept of ``blood'' origionally. As a group, we devised the idea that this would look like a regular bottle of chocolate sauce, but would pour what looked like blood. We would tell the Anchor that this is simply chocolate sauce and then, without his prior knowlage, would bring out a bowl of ice cream for him to eat. He would pour the bottle, realise it was blood and would take a bite regardless. +This was the concept of ``blood'' originally. As a group, we devised the idea that this would look like a regular bottle of chocolate sauce, but would pour what looked like blood. We would tell the Anchor that this is simply chocolate sauce and then, without his prior knowledge, would bring out a bowl of ice cream for him to eat. He would pour the bottle, realise it was blood and would take a bite regardless. I designed the mechanism, but it was constructed by Leigha with graphics and blood also formulated by her. There was not a small about of pre-planning and logistics that went into keeping some of the props cool, that includes the ice cream for this one. @@ -57,7 +59,7 @@ This was an idea conceived by the Narrative Engineer, a product to represent ``t \subsection{Teethpaste!} -This was orrigionally the idea of ``rot'' and was pitched to me by the set design team. The idea was to have the tube of toothpaste\footnote{Empty paint tubes can be bought off the shelf and are perfect for this!} be full of little painted clay teeth and some kind of goop. The goop, teeth and GFX where designed by Tegan with help from Lydia. This was unfortunately cut, dispite being, in my opinion, one of our better products. The copy was a team effort between me and the Narrative Engineer. +This was originally the idea of ``rot'' and was pitched to me by the set design team. The idea was to have the tube of toothpaste\footnote{Empty paint tubes can be bought off the shelf and are perfect for this!} be full of little painted clay teeth and some kind of goop. The goop, teeth and GFX where designed by Tegan with help from Lydia. This was unfortunately cut, despite being, in my opinion, one of our better products. The copy was a team effort between me and the Narrative Engineer. \begin{figure} \centering @@ -67,11 +69,11 @@ This was orrigionally the idea of ``rot'' and was pitched to me by the set desig \subsection{Spare parts.} -This was the idea of ``sex'' orrigionally, but this transformed, spearheaded by the Narrative Engineer, into ``sex as it relates to canibalism''. Hence the human meat. The ``belongings'' of the meat really tie the product together, and even though the Anchor struggled a little on this one, it's a good product. It was put together, complete with the tempory tattoos and fish-nets, by Tegan and Lydia. +This was the idea of ``sex'' originally, but this transformed, spearheaded by the Narrative Engineer, into ``sex as it relates to cannibalism''. Hence the human meat. The ``belongings'' of the meat really tie the product together, and even though the Anchor struggled a little on this one, it's a good product. It was put together, complete with the temporary tattoos and fish-nets, by Tegan and Lydia. \subsection{Surprise jack-in-the-box, shock your friends!} -This is an interesting one. Orrigionally under ``dread'', it became the poster-child for XMDV containing: fake blood, tension and a simple trick. The idea was to have a jack in the box with a crank on the side that would play a tune when turned. We owuld tell the Anchor about how it was ``full of blood'' and would ``go off'' after a preset number of turns and that ``we whent going to tell you it was full of blood but we though it would be good just incase it stains''. It was not full of blood. It didnt even open. We would make the Anchor hold it up to his face, after each sale, and turn the handle. +This is an interesting one. Originally under ``dread'', it became the poster-child for XMDV containing: fake blood, tension and a simple trick. The idea was to have a jack in the box with a crank on the side that would play a tune when turned. We would tell the Anchor about how it was ``full of blood'' and would ``go off'' after a preset number of turns and that ``we weren't going to tell you it was full of blood but we though it would be good just incase it stains''. It was not full of blood. It didn't even open. We would make the Anchor hold it up to his face, after each sale, and turn the handle. It was painted beautifully and designed by Tegan with the copy written by me. @@ -88,7 +90,7 @@ It was painted beautifully and designed by Tegan with the copy written by me. \subsection{The replacement mirror} -One of the more elaborate products: the replacement mirror is inteded to show one their replacement. After a short build-up, the Anchor was to look into it, and his replacement would emerge from the flats behind him. He would then smash the mirror (made from sugar glass) on the corner of the desk. The ``replacement Anchor'' was sucessfully kept secret from the Anchor. It was our intention that he would be painted white, but this feature was cut due to less time than we needed. +One of the more elaborate products: the replacement mirror is intended to show one their replacement. After a short build-up, the Anchor was to look into it, and his replacement would emerge from the flats behind him. He would then smash the mirror (made from sugar glass) on the corner of the desk. The ``replacement Anchor'' was successfully kept secret from the Anchor. It was our intention that he would be painted white, but this feature was cut due to less time than we needed. In a nice thematic way, the actor playing the replacement was also the Anchors actual replacement should he drop out last minute. @@ -102,16 +104,16 @@ The mirror was made by Tegan with the copy written by me. \begin{figure} \centering \fbox{\includegraphics[width=0.5\textwidth]{replacement}} - \caption{The ``replacent'' Lucas Blackburn} + \caption{The ``replacement'' Lucas Blackburn} \end{figure} \subsection{My suit} -This was a penultimate moment of the show and orrigionally though up by me in the initial stage of the idea 3 years ago. The Anchor was bought a suit and provided with some sissors. This might be my second favorate product of them all, and it was incredibly effetcively acted. The copy was written by the Narrative Engineer +This was a penultimate moment of the show and originally though up by me in the initial stage of the idea 3 years ago. The Anchor was bought a suit and provided with some scissors. This might be my second favourite product of them all, and it was incredibly effectively acted. The copy was written by the Narrative Engineer \subsection{Corkbaby} -If the suit was my second favorate item, this was my favorate. From the delivery, to the copy, to the item itself and the music behind it, this one was our perfect moment. There is nothing I'd do differently. +If the suit was my second favourite item, this was my favourite. From the delivery, to the copy, to the item itself and the music behind it, this one was our perfect moment. There is nothing I'd do differently. It was carved by Tegan and the copy was written by the Narrative Engineer. @@ -133,7 +135,7 @@ I personally spearheaded this one with a custom feature in the graphics system a \subsection{Embraer E190} -This was also a poster-child of the stream and something that I personally put together. It came together as I imagined and im very happy with the result. A custom VT was created and a small 3D printed model of an Ebraer E190 was made and painted silver. One of the set design team brought in a small photo frame and a stock image of a norweigan family was printed. +This was also a poster-child of the stream and something that I personally put together. It came together as I imagined and im very happy with the result. A custom VT was created and a small 3D printed model of an Ebraer E190 was made and painted silver. One of the set design team brought in a small photo frame and a stock image of a Norwegian family was printed. The copy was written by me. @@ -151,7 +153,7 @@ The copy was written by me. \subsection{Simulacrum - Agony canned} -This was on the orrigional concept list under ``voodoo doll''. It was created by Daisy Deveo and was sculpted to look like the Anchor. Stylistically it is genius, I had no part in the excact look, but Daisy hit more than the mark and delivered ahead of schedule. +This was on the originally concept list under ``voodoo doll''. It was created by Daisy Devoe and was sculpted to look like the Anchor. Stylistically it is genius, I had no part in the exact look, but Daisy hit more than the mark and delivered ahead of schedule. The copy was written by the Narrative Engineer. diff --git a/chapters/schedule.tex b/chapters/schedule.tex index a348fd6..d0b652c 100644 --- a/chapters/schedule.tex +++ b/chapters/schedule.tex @@ -2,6 +2,8 @@ \textsc{In which} we're ahead, in which we're behind. +\section{The Schedule} + \noindent\begin{tabularx}{\textwidth}{|cc|X|} \hline \textbf{Day} & \textbf{Date} & \textbf{Notes}\\ @@ -18,7 +20,7 @@ Monday & % Tuesday & 11/02/25 & -Meeting Sioux Sharp and TVS contributor meeting\footnote{Invited along to the TV Studio final year project set design meeting where Sioux and Annette will be introducing us to some set design students. Hoping to be able to recruit some people to make products.}\\ +Meeting Sioux Sharp and TVS contributor meeting\\ % Wednesday & 12/02/25 & @@ -26,7 +28,7 @@ Finish off some GFX system tasks\\ % Thursday & 13/02/25 & -Screen test with David Smith, meet with Alex and Alfie RE TVS\\ +Screen test with \href{https://data.ozva.co.uk/screensmall.mp4}{David Smith}\\ % Friday & 14/02/25 & @@ -125,11 +127,11 @@ Wednesday & % Thursday & 06/03/25 & -\\ +Set design production day\\ % Friday & 07/03/25 & -TVS Practice session\\ +Studio practice session\\ % Saturday & 08/03/25 & @@ -146,7 +148,7 @@ Sunday & \hline Monday & 10/03/25 & -Online essay meeting this week\\ +Online essay meeting\\ % Tuesday & 11/03/25 & @@ -162,7 +164,7 @@ Thursday & % Friday & 14/03/25 & -\\ +Meeting with direcors\\ % Saturday & 15/03/25 & @@ -183,7 +185,7 @@ Snapshot 2\\ % Tuesday & 18/03/25 & -Possible studio practice next 2wk\\ +\\ % Wednesday & 19/03/25 & @@ -195,7 +197,7 @@ Alfie/Alex TV studio rehearsal\\ % Friday & 21/03/25 & -A/A TVS Intro GFX blocking till 26th\\ +Alfie/Alex TVS Intro GFX till 26th\\ % Saturday & 22/03/25 & @@ -203,7 +205,7 @@ Saturday & % Sunday & 23/03/25 & -Finish casting latest 1wk before Easter\\ +\\ \hline % %%% @@ -220,7 +222,7 @@ Tuesday & % Wednesday & 26/03/25 & -Driving test\\ +\\ % Thursday & 27/03/25 & @@ -228,7 +230,7 @@ Thursday & % Friday & 28/03/25 & -Lucy/Leah TV studio assessment\footnote{Will be additional practice date TBC before next week (c.o 17/02/25)}\\ +Lucy/Leah TV studio assessment\\ % Saturday & 29/03/25 & @@ -236,7 +238,7 @@ Saturday & % Sunday & 30/03/25 & -\\ +Practice session 1\\ \hline %%% @@ -245,15 +247,15 @@ Sunday & \hline Monday & 31/03/25 & - Foxes Among Vines Int. Shoot\\ + Foxes Among Vines Shoot\\ Tuesday & 01/04/25 & - Foxes Among Vines Int. Shoot\\ + Foxes Among Vines Shoot\\ Wednesday & 02/04/25 & - Foxes Among Vines Int. Shoot\\ + Foxes Among Vines Shoot\\ Thursday & 03/04/25 & @@ -261,15 +263,15 @@ Sunday & Friday & 04/04/25 & - \\ + Building LS and \textsc{THREAT}\\ Saturday & 05/04/25 & - \\ + Building LS and \textsc{THREAT}\\ Sunday & 06/04/25 & - \\ + Building LS and \textsc{THREAT}\\ \hline %%% @@ -278,11 +280,11 @@ Sunday & \hline Monday & 07/04/25 & - \\ + Building LS and \textsc{THREAT}\\ Tuesday & 08/04/25 & - \\ + Practice session for Radio FYP\\ Wednesday & 09/04/25 & @@ -290,7 +292,7 @@ Sunday & Thursday & 10/04/25 & - \\ + Lecture hall practice session, leave Manchester\\ Friday & 11/04/25 & @@ -311,11 +313,11 @@ Sunday & \hline Monday & 14/04/25 & - \\ + Recording for BBC R4 in London, Back in Manchester\\ Tuesday & 15/04/25 & - \\ + Helping out with radio studio FYP\\ Wednesday & 16/04/25 & @@ -323,7 +325,7 @@ Sunday & Thursday & 17/04/25 & - \\ + Backup practice day, meeting with Sioux, Directors. Helping out with radio studio FYP\\ Friday & 18/04/25 & @@ -344,44 +346,27 @@ Sunday & \hline Monday & 21/04/25 & - Snapshot 3\\ + Meeting with product design\\ Tuesday & 22/04/25 & - \\ + Millie and Evie TVS filming, \textsc{The Threat} and the lazy susan reach the studios\\ Wednesday & 23/04/25 & - \\ + Meeting with Directors, Anchor, Snapshot 3 and product design day\\ Thursday & 24/04/25 & - \\ - - Friday & - 25/04/25 & - \\ - - Saturday & - 26/04/25 & - \\ - - Sunday & - 27/04/25 & - \\ + Day of the stream\\ \hline - %%% +\end{tabularx} - \multicolumn{3}{|c|}{Week 13}\\ - \hline - Monday & - 28/04/25 & - \\ +\section{Notes on the Schedule} - Tuesday & - 29/04/25 & - Deadline\\ - \hline +It's difficult to quantify on the schedule where work was done, especially work with no real beginning or end, such as work on the GFX system. I would recommend taking a look at the git commit history on \repo{shopping-channel} for more background on when GFX work took place. -\end{tabularx} +Towards the end of the process (last 4 weeks) things began to feel like they might be starting to be rushed. Within the last 2 weeks, I had no time for anything but Teleshopping and any other prior arrangements. As mentioned, I believe that part of this last minute squeeze is due to working with others with that as their ethos, even though I am very much not a last minute person. I believe time to collect my thoughts and document myself would have resulted in a far better stream. This could have been done by setting better deadlines for the set design team. + +Another thing I was confined by was studio time, which was certainly not in my favor, with XMDV able to get only 2 sessions, a month and a half apart. diff --git a/chapters/symbolism.tex b/chapters/symbolism.tex deleted file mode 100644 index 9f09b18..0000000 --- a/chapters/symbolism.tex +++ /dev/null @@ -1,7 +0,0 @@ -\chapter{I am \textit{not} the Begining, I am the End} - -\textsc{In which} we discuss symbolism. - -\newpage - -Hello\todo{Test to-do} this is some text. diff --git a/chapters/teleshopping.tex b/chapters/teleshopping.tex index fe8781a..9505eb1 100644 --- a/chapters/teleshopping.tex +++ b/chapters/teleshopping.tex @@ -1,7 +1,7 @@ -\chapter{Teleshopping} +\chapter{Research} -\textsc{In which} we discuss teleshopping, it's quirks and it's techniques. +\textsc{In which} we discuss teleshopping, it's quirks and it's techniques. Let's do some research! + +\input{sections/sioux} % proof +\input{sections/research} % proof -\input{sections/teleshopping-notes} -\input{sections/gfx} -\input{sections/sioux} diff --git a/chapters/title.tex b/chapters/title.tex index d2c60e0..05b82e9 100644 --- a/chapters/title.tex +++ b/chapters/title.tex @@ -3,34 +3,46 @@ \vspace{4mm} {\Large{}XMDV Teleshopping}\\ \vspace{4mm} - {\large{}Compiled \today{}} + {\large{}Compiled \today{}}\\ + \vspace{4mm} + \url{https://youtu.be/qoF6r95UlIc}\\ + \url{https://www.twitch.tv/xmdvteleshopping}\\ + \url{https://bsky.app/profile/xmdv.bsky.social} \end{center} \newpage -Written designed and produced by William Greenwood as the Final Year Project for BA Telivision and Radio Production. The executive producer and supervisor was Joe Fowler. Special Thanks to Sioux Sharp. +Written designed and produced by William Greenwood as the Final Year Project for BA Television and Radio Production. The executive producer and supervisor was Joe Fowler. Special Thanks to Sioux Sharp, Michelle and Jeremy Greenwood, Stephen Forster, Hannah Blyton, Liz, Joe and Ash. \vspace{4mm} \noindent\begin{center} \begin{minipage}{0.6\textwidth} David Smith\dotfill{}The Anchor\\ + Lucas Blackburn\dotfill{}The Replacement\\ Jack Christian Sims\dotfill{}Director\\ Finn Downton\dotfill{}Narrative Engineer\\ - Rebecca Dixon\dotfill{}Sound supervisor\\ + Tegan Blake-Barnard\dotfill{}Set Design\\ + Lydia Wilkinson\dotfill{}Set Design\\ + Leigha Blanchard\dotfill{}Set Design\\ + Daisy Devoe\dotfill{}Set Design\\ + Rebecca Dixon\dotfill{}Sound operator\\ + Alex Roberts\dotfill{}Lighting operator\\ Eleanor Haughton\dotfill{}Vision Mixer\\ Heather Digwood\dotfill{}Floor manager\\ Olivia Gillett\dotfill{}Floor manager\\ Leo Garside-Holdich\dotfill{}Camera\\ - Brynn Yates\dotfill{}GFX opperator\\ - ?\dotfill{}GFX opperator\\ - ?\dotfill{}Engineer\\ - ?\dotfill{}Lighting\\ + Brynn Yates\dotfill{}GFX operator\\ + Ben Cousen\dotfill{}GFX operator\\ + Eli Clack\dotfill{}Photographer\\ + Shan Hackwood\dotfill{}Engineer\\ + Megan Troop\dotfill{}Output Monitor\\ + Amy Dignan\dotfill{}Output Monitor\\ \end{minipage} \end{center} \vspace{1mm} -\noindent\copyright{} William Greenwood 2025 +\noindent{}William Greenwood 2025 diff --git a/external/call-sheet.pdf b/external/call-sheet.pdf new file mode 100644 index 0000000..7dbd3ab Binary files /dev/null and b/external/call-sheet.pdf differ diff --git a/external/compliance.pdf b/external/compliance.pdf new file mode 100644 index 0000000..226240a Binary files /dev/null and b/external/compliance.pdf differ diff --git a/external/consent.pdf b/external/consent.pdf new file mode 100644 index 0000000..4f0e4a7 Binary files /dev/null and b/external/consent.pdf differ diff --git a/external/cv.pdf b/external/cv.pdf new file mode 100644 index 0000000..5fb6c77 Binary files /dev/null and b/external/cv.pdf differ diff --git a/external/feedback2.pdf b/external/feedback2.pdf new file mode 100644 index 0000000..ce545da Binary files /dev/null and b/external/feedback2.pdf differ diff --git a/external/feedback3.pdf b/external/feedback3.pdf new file mode 100644 index 0000000..539e277 Binary files /dev/null and b/external/feedback3.pdf differ diff --git a/external/floorplan.pdf b/external/floorplan.pdf new file mode 100644 index 0000000..0d43b10 Binary files /dev/null and b/external/floorplan.pdf differ diff --git a/external/footprint.pdf b/external/footprint.pdf new file mode 100644 index 0000000..56cdd7e Binary files /dev/null and b/external/footprint.pdf differ diff --git a/external/gfx-text.pdf b/external/gfx-text.pdf new file mode 100644 index 0000000..39f26f0 Binary files /dev/null and b/external/gfx-text.pdf differ diff --git a/external/info.pdf b/external/info.pdf new file mode 100644 index 0000000..fbb4413 Binary files /dev/null and b/external/info.pdf differ diff --git a/external/manifest-unsafe.pdf b/external/manifest-unsafe.pdf new file mode 100644 index 0000000..0c36cc4 Binary files /dev/null and b/external/manifest-unsafe.pdf differ diff --git a/external/ra-10th.pdf b/external/ra-10th.pdf new file mode 100644 index 0000000..a8ce17d Binary files /dev/null and b/external/ra-10th.pdf differ diff --git a/external/ra-aux.pdf b/external/ra-aux.pdf new file mode 100644 index 0000000..a4fe1a8 Binary files /dev/null and b/external/ra-aux.pdf differ diff --git a/external/ra-final.pdf b/external/ra-final.pdf new file mode 100644 index 0000000..e42b636 Binary files /dev/null and b/external/ra-final.pdf differ diff --git a/main.pdf b/main.pdf deleted file mode 100644 index 44a23ba..0000000 Binary files a/main.pdf and /dev/null differ diff --git a/main.sty b/main.sty index 2a87b58..0d6dc3b 100644 --- a/main.sty +++ b/main.sty @@ -13,6 +13,7 @@ \usepackage{todo} \usepackage{glossaries} \usepackage{cleveref} +\usepackage{pdfpages} \usepackage{graphicx} \graphicspath{{./media/}} diff --git a/main.tex b/main.tex index 9ead15b..dfd38d4 100644 --- a/main.tex +++ b/main.tex @@ -2,19 +2,6 @@ \usepackage{main} \usepackage{screenplay} -% ==================== -% TO-DO list - -\todo*{Write up platform} -\todo*{Write full pitch from slides/info sheet} -\todo*{Write up symbolism notes} -\todo*{Write up info from diaries} -\todo*{Write up crew picks and reasoning} -\todo*{Move TikZ figures to seperate files} -\todo*{Transfer clock write up to main document} - -% ==================== - \begin{document} \frontmatter @@ -24,17 +11,16 @@ \listoffigures \mainmatter -\include{chapters/introduction} -\include{chapters/symbolism} -\include{chapters/intbar} -\include{chapters/tech} -\include{chapters/teleshopping} -\include{chapters/products} -\include{chapters/format} -\include{chapters/schedule} +\include{chapters/intbar} % done +\include{chapters/introduction} % proof +\include{chapters/schedule} % proof +\include{chapters/tech} % proof +\include{chapters/teleshopping} % proof +\include{chapters/products} % proof +\include{chapters/production} % proof +\include{chapters/final} % proof +\include{chapters/external} % done \backmatter -\printbibliography -\todos \end{document} diff --git a/media/autocue.png b/media/autocue.png new file mode 100644 index 0000000..088b900 Binary files /dev/null and b/media/autocue.png differ diff --git a/media/display.png b/media/display.png new file mode 100644 index 0000000..91f3444 Binary files /dev/null and b/media/display.png differ diff --git a/media/doomsday.png b/media/doomsday.png new file mode 100644 index 0000000..c162cbe Binary files /dev/null and b/media/doomsday.png differ diff --git a/media/extensions.png b/media/extensions.png new file mode 100644 index 0000000..67d0ae8 Binary files /dev/null and b/media/extensions.png differ diff --git a/media/lecture1.jpeg b/media/lecture1.jpeg new file mode 100644 index 0000000..c969f60 Binary files /dev/null and b/media/lecture1.jpeg differ diff --git a/media/lecture2.jpeg b/media/lecture2.jpeg new file mode 100644 index 0000000..09efcb7 Binary files /dev/null and b/media/lecture2.jpeg differ diff --git a/media/lecture3.jpeg b/media/lecture3.jpeg new file mode 100644 index 0000000..163ea8a Binary files /dev/null and b/media/lecture3.jpeg differ diff --git a/media/mam.png b/media/mam.png new file mode 100644 index 0000000..7c9c9d5 Binary files /dev/null and b/media/mam.png differ diff --git a/media/oldgfx.png b/media/oldgfx.png new file mode 100644 index 0000000..a1f5fa2 Binary files /dev/null and b/media/oldgfx.png differ diff --git a/media/practice4.jpeg b/media/practice4.jpeg index a09cf62..637b7d8 100644 Binary files a/media/practice4.jpeg and b/media/practice4.jpeg differ diff --git a/media/pricing.png b/media/pricing.png new file mode 100644 index 0000000..2470a92 Binary files /dev/null and b/media/pricing.png differ diff --git a/media/text.png b/media/text.png new file mode 100644 index 0000000..22620f0 Binary files /dev/null and b/media/text.png differ diff --git a/media/timer.png b/media/timer.png new file mode 100644 index 0000000..fde4044 Binary files /dev/null and b/media/timer.png differ diff --git a/sections/10th.tex b/sections/10th.tex new file mode 100644 index 0000000..79ec1c6 --- /dev/null +++ b/sections/10th.tex @@ -0,0 +1,23 @@ +\section{Practice session 10th April} + +On the 10th April, we had one of our 3 scheduled out-of-studio practice sessions. There where 3 of these planned: under the impression we needed 2 practices and that something would go wrong for one of them. Something went wrong for 2 of them, so we slightly exceeded our contingency. Both of these things where availability problems with the Anchor, non-negotiable and presumably work-related. + +The out-of-studio sessions was an idea that I had to recreate a working mini-TV studio in one of the larger conference rooms upstairs. It featured 3 cameras, an ATEM mini vision mixer, RODECASTER sound desk and the full GFX setup. I believe it did help with the final show and we where able to test some of the newer features not present on the 7th March practice. + +\begin{figure} + \begin{minipage}{0.5\textwidth} + \centering + \fbox{\includegraphics[width=0.9\textwidth]{lecture1}} + \end{minipage} + \begin{minipage}{0.5\textwidth} + \centering + \fbox{\includegraphics[width=0.9\textwidth]{lecture2}} + \end{minipage} + \caption{The lecture-hall studio setup} +\end{figure} + +\begin{figure} + \centering + \fbox{\includegraphics[width=0.7\textwidth]{lecture3}} + \caption{Vision mixer in the lecture studio} +\end{figure} diff --git a/sections/24th.tex b/sections/24th.tex new file mode 100644 index 0000000..0a7f32d --- /dev/null +++ b/sections/24th.tex @@ -0,0 +1,21 @@ +\section{The day of the stream} + +On the day of the stream there where a number of problems with the system not encountered in practice. The first of these was the problem with the clock, fully described in the section dedicated to the clocks systems. Needless to say it ate a large chunk of my time and left the gallery headless and the production veering to one side. We handled this as written on the contingency sheet by having the FM move the hand of the clock manually and having the Narrative Engineer prepare a reduced products list. The second issue was with the GFX system, which suddenly stopped responding to discount changes. I believe this has a simple reason, possibly something I overlooked on the day, but i have not yet had a chance to set up as we where and put it to the test. I was able to push a quick patch and rebuild the system in time to start the stream before the window of a 1h show ran out. + +I was low on confidence at the start and going into the human meat the Anchor did seem to struggle slightly, we sped the pace up to get through it. By the time we got to the suit, we where flying and came back out of the ``breakdown'' (fake safe-word) with such a force that everything in the star filled night's sky came together to make corkbaby everything that I'd dreamed of. Everything we'd \textit{all} dreamed of. A slight hiccup followed corkbaby as we realised the plane VT was coming out the wrong server, but this was solved quickly and painlessly and handled perfectly by the Anchor. We followed the show through to the end and other than a slightly clunky ending, finished the stream on a high. + +Everything else was as written and there where few other issues. + + +\begin{figure} + \centering + \fbox{\includegraphics[width=0.7\textwidth]{gallery}} + \caption{The gallery 10 minutes from live} +\end{figure} + + +\begin{figure} + \centering + \fbox{\includegraphics[width=0.7\textwidth]{soundroom}} + \caption{The sound room on the day of the stream} +\end{figure} diff --git a/sections/7th.tex b/sections/7th.tex new file mode 100644 index 0000000..6c54542 --- /dev/null +++ b/sections/7th.tex @@ -0,0 +1,29 @@ +\section{Practice session 7th March} + +On the 7th of March we had our one and only opportunity to get into the gallery and test out the systems in situ. It was amazing, or I remember it being exciting at least. So exciting that the gallery forgot to record. We where, after all, only practicing. None of the real products where used, except from the painting of the moon. + +All the roles crucial to the production, including directors, vision mixer, sound and the floor managers where present. Sioux was present and was able to give us plenty of useful feedback on the current state-of-play. David told me later he might have struggled without this session, saying it helped him practice not reacting to me in his ear on the IEM while he was talking. On the other side of the gallery/floor wall, it convinced me fully of his skilfull approach to each product with limited familiarity and his savant like talent at thinking on his feet. + +\begin{figure} + \begin{minipage}{0.5\textwidth} + \centering + \fbox{\includegraphics[width=0.9\textwidth]{practice1}} + \end{minipage} + \begin{minipage}{0.5\textwidth} + \centering + \fbox{\includegraphics[width=0.9\textwidth]{practice4}} + \end{minipage} + \caption{The set and the Anchor (7th March)} +\end{figure} + +\begin{figure} + \begin{minipage}{0.5\textwidth} + \centering + \fbox{\includegraphics[width=0.9\textwidth]{practice2}} + \end{minipage} + \begin{minipage}{0.5\textwidth} + \centering + \fbox{\includegraphics[width=0.9\textwidth]{practice3}} + \end{minipage} + \caption{Final tweaks before run-through (7th March)} +\end{figure} diff --git a/sections/clock.tex b/sections/clock.tex index ec1e123..ad43818 100644 --- a/sections/clock.tex +++ b/sections/clock.tex @@ -54,6 +54,6 @@ However, on the day, the clock failed totally. \caption{Debuging the clock} \end{figure} -It distresses me that I still, even after significant thought and upon reviewing my own code, have no idea why this was the case. Muliple restarts of the clock left the system stuck in a boot loop stopping and starting \texttt{NetworkManager}. Eventually I was able to get it booted and get into the system properly, upon restarting \texttt{NetworkManager} I was able to access the OzVa server and the gallery clarified that the clock was now responding to clock ticks. By the time we went live, and ticked the clock for the first time, around 15 minutes later, the clock had stopped working again and stayed that way. This is behavior that i had never seen in testing. During the shutdown after the ``suit'' product, I confimed that the clock was still connected to the WAN even though it seemed to be unable to get the required data to function. It is possible that the previously mentioned \texttt{doomsday.service} simply needed to be restarted, but this was not done. +It distresses me that I still, even after significant thought and upon reviewing my own code, have no idea why this was the case. Multiple restarts of the clock left the system stuck in a boot loop stopping and starting \texttt{NetworkManager}. Eventually I was able to get it booted and get into the system properly, upon restarting \texttt{NetworkManager} I was able to access the OzVa server and the gallery clarified that the clock was now responding to clock ticks. By the time we went live, and ticked the clock for the first time, around 15 minutes later, the clock had stopped working again and stayed that way. This is behavior that i had never seen in testing. During the planned safeword shutdown after the ``suit'' product, I confirmed that the clock was still connected to the WAN even though it seemed to be unable to get the required data to function. It is possible that the previously mentioned \texttt{doomsday.service} simply needed to be restarted, but this was not done. -There was a contingency for this already planned, and we simply comunicated with the FMs to move the hand of the clock when it was off screen. +There was a contingency for this already planned, and we simply communicated with the FMs to move the hand of the clock when it was off screen. diff --git a/sections/contingency b/sections/contingency new file mode 100644 index 0000000..e69de29 diff --git a/sections/contingency.tex b/sections/contingency.tex new file mode 100644 index 0000000..c55e31f --- /dev/null +++ b/sections/contingency.tex @@ -0,0 +1,55 @@ +\section{Contingency} + +\subsection{System integrity} + +Part of the reason that I built the OzVa server in the first place was to have extreme and granular control over my files, as well as the stability and feature-richness of open-source, command line tools. I had, so far, had zero unplanned down-time until the 15th March 2025, when the server was unavailable for the whole working day. It is possible that this was a DNS problem, but it is also possible it was a problem with the hardware itself. Suspiciously, without any intervention, OzVa was back online the next morning. + +For this reason, I have decided to put a backup of the entire GFX system on a server belonging to a friend, with an OzVa subdomain pointed towards it, able to be switched over should OzVa go down for any reason. This server is not as optimised as my own for real-time GFX with low latency, so performance may be subotimal, but this should not affect the viewing experience in some extreme way and would be the difference between bringing the stream back up in a matter of minutes, or failing to complete the project all-together (should we lose OzVa). + +I am currently collecting some data on the expected latency difference between the two servers. + +It goes without saying that the studio practice session (on the 7th March) went without a hitch graphically (at least with no undocumented errors\footnote{There was one small ``500 response'' meaning server error, but I suspect this was to do with one of the GFX operators putting a single-quote character in the auto-cue note field, an error that is documented and fixed in a commit to the repository that I did not push before the practice for stability reasons.}) + +\subsection{GFX System failure} + +Note that in all cases the Anchor is to recognise any technical difficulties but is not to elaborate on any issues. + +\begin{enumerate} + \item Failure is flagged with the producer + \item Vision mixer fades to black + \item A runner is given the producers ID card to release all prints on the account and distribute these as necessary + \item The producer heads to the floor to configure the Doomsday clock + \item Engineer gets the ``We'll be right back'' VT ready and tells the Vision Mixer when it is + \item Sound raises the music to full volume + \item All GFX operators switch from \url{https://shopping.ozva.co.uk} to the mirror at \url{https://caroline.ozva.co.uk} + \item Tthe operators set up the product as it was before the issue (with ``All showing`` turned off) + \item All GFX are configured and the stream resumes + \item GFX are faded back in by the GFX operators +\end{enumerate} + +\subsection{Doomsday failure} + +Anchor to call safeword at the instruction of the gallery. See below. + +\subsection{Lazy Susan failure} + +Lazy Susan should be unplugged immediately as soon as the shot is safe (as instructed by gallery). Should be inspected for anything that might have jammed the top plate. Depending on the issues, the Anchor may be instructed to call the safe word while the lazy-Susan is fixed. See below. + +\subsection{Safeword} + +Because of the nature of the show, the Anchor has been briefed with a safeword with which they can call to halt the show. + +\begin{enumerate} + \item The Anchor calls the safeword + \item The producer or some other member of gallery staff makes everyone aware of this + \item Vision Mixer fades to black as soon as possible + \item Engineer gets the ``We'll be right back'' VT ready and tells the Vision Mixer when it is + \item Sound raises the music to full volume + \item Floor managers talk to the Anchor about the issue. +\end{enumerate} + +If necessary, the Anchor may go to the green room for a breather, they are not to go to 3.08, as there may be forbidden information. + +\textbf{The safeword is a particular callers name: ``Will is holding'', ``We've got Will on the line'' or some similar phrase} + +We will also have a fake ``safeword'' incident as a narrative device. This safeword will be different for obvious reasons. In this case the safeword will be \textbf{``STOP''}. We will still follow the same actions in the gallery. diff --git a/sections/docs.tex b/sections/docs.tex index b751858..cf8efa2 100644 --- a/sections/docs.tex +++ b/sections/docs.tex @@ -1,20 +1,20 @@ \section{Documentation} -During first trimester of L6, While looking through one of the storage cupboards in the TV studio 007 office, I spotted a colletion of what looked to me at the time like a set of Kindles. On asking Joe, one of the tecnicians, I was told it was an attempt to go paperless, but that the lecturers where slow to pick it up. +During first trimester of L6, While looking through one of the storage cupboards in the TV studio 007 office, I spotted a collection of what looked to me at the time like a set of Kindles. On asking Joe, one of the technicians, I was told it was an attempt to go paperless, but that the lecturers where slow to pick it up. I decided we where going to go paperless for Teleshopping. \subsection{Results} -Its difficult to tell exactly how sucessful this was during the production, partly because the structure of the show meant that there was little paperwork for most anyway. On the surface, the only frustrating part of the whole thing is that there was nowhere to write when notes where taken. For instance, on discovering that the clock was no longer functional, I asked the Narrative engineer to produce a reduced list of products should we have to go for a shortened run through, who then made this list on their phone and shared it with one of the GFX operators (as there was no paper to hand). In the middle of plate spinning our various issues as well as feeding the Anchor names, prices and pointers, I had no time to aquire this list which slowed our communication with the FMs on the upcoming product. +Its difficult to tell exactly how successful this was during the production, partly because the structure of the show meant that there was little paperwork for most anyway. On the surface, the only frustrating part of the whole thing is that there was nowhere to write when notes where taken. For instance, on discovering that the clock was no longer functional, I asked the Narrative engineer to produce a reduced list of products should we have to go for a shortened run through, who then made this list on their phone and shared it with one of the GFX operators (as there was no paper to hand). In the middle of plate spinning our various issues as well as feeding the Anchor names, prices and pointers, I had no time to acquire this list which slowed our communication with the FMs on the upcoming product. -But I think most of all, the ``paperless'' idea and execution speaks to a production culture of centalized information at the top in some kind of monolythic system that I alone understand and I alone can debug. There where backups of the paperwork, backup item manifests and schedules, as well as the production document, and these where all queued up and ready to be released on my print card. Unfortunately, no one had the authority or agency to see the problem and take action to rectify, this is no the fault of my crew, most of whom may not even know where these backup documents where. There where only 6 tablets, one was not charged, and these 6 constantly rotated owner and location, moving between the floor and the gallery. Of course, my reasoning on the day and after the fact could be that I was ``too distracted'' by other issues to address this or the many other simple fixes that could have been done on the day to make a notably better product, this is true the solutions to the problem is futher down the line and one that must be solved when structuring a team. +But I think most of all, the ``paperless'' idea and execution speaks to a production culture of centralised information at the top in some kind of monolithic system that I alone understand and I alone can debug. There where backups of the paperwork, backup item manifests and schedules, as well as the production document, and these where all queued up and ready to be released on my print card. Unfortunately, no one had the authority or agency to see the problem and take action to rectify, this is no the fault of my crew, most of whom may not even know where these backup documents where. There where only 6 tablets, one was not charged, and these 6 constantly rotated owner and location, moving between the floor and the gallery. Of course, my reasoning on the day and after the fact could be that I was ``too distracted'' by other issues to address this or the many other simple fixes that could have been done on the day to make a notably better product, this is true the solutions to the problem is further down the line and one that must be solved when structuring a team. \subsection{Implementation} The actual technology behind the documentation is sound, stable and well made. -The information about the products is in a static file called \texttt{static.json}. The information about the crew and the schedule is in a file called \texttt{info.json}. When the server gets a request for the docs page, a jinja2 template is rendered with all the appropriate information in an extensible and staisfying way. This file, \texttt{docs.html}, was first properly implemented in \commit{shopping-channel}{8f1a901e337945b3ad3e14ee5d3230cb28c36d25}. +The information about the products is in a static file called \texttt{static.json}. The information about the crew and the schedule is in a file called \texttt{info.json}. When the server gets a request for the docs page, a jinja2 template is rendered with all the appropriate information in an extensible and satisfying way. This file, \texttt{docs.html}, was first properly implemented in \commit{shopping-channel}{8f1a901e337945b3ad3e14ee5d3230cb28c36d25}. \begin{verbatim}

Schedule

@@ -58,6 +58,6 @@ The above generates a html table of the schedule, with the action time and actio This rendered html file is also saved to a file in the untracked working directory \texttt{docs/}. -When a request is made for the documentation to be updated (done from the authenticated endpoint \url{https://shopping.ozva.co.uk/api/generate}), custom jinja2 enviroment templates are rendered to LaTeX source files, the typesetting system used for this document and all other documents relating to XMDV Teleshopping. These LaTeX files are then compiled to PDFs conventionally. The html form of the documentation saved to a static file is then also converted to EPUB and MOBI format with the \href{https://calibre-ebook.com/}{Calibre} implementation of \texttt{\href{https://manual.calibre-ebook.com/generated/en/ebook-convert.html}{convert-ebook}}. This is a leftover feature from when I was under the impression the devices used by the studio where epaper readers such as kindles. It is also an entertaining feature. +When a request is made for the documentation to be updated (done from the authenticated endpoint \url{https://shopping.ozva.co.uk/api/generate}), custom jinja2 environment templates are rendered to LaTeX source files, the typesetting system used for this document and all other documents relating to XMDV Teleshopping. These LaTeX files are then compiled to PDFs conventionally. The html form of the documentation saved to a static file is then also converted to EPUB and MOBI format with the \href{https://calibre-ebook.com/}{Calibre} implementation of \texttt{\href{https://manual.calibre-ebook.com/generated/en/ebook-convert.html}{convert-ebook}}. This is a leftover feature from when I was under the impression the devices used by the studio where epaper readers such as kindles. It is also an entertaining feature. -The docs html page also serves to point crew towards other documents that might be useful, the floorplan and the production document (as well as the automatically generated PDF versions of the html docs) are linked at the bottom. +The docs html page also serves to point crew towards other documents that might be useful, the floor-plan and the production document (as well as the automatically generated PDF versions of the html docs) are linked at the bottom. diff --git a/sections/floorplan.tex b/sections/floorplan.tex index d9f3dc7..3bd23c7 100644 --- a/sections/floorplan.tex +++ b/sections/floorplan.tex @@ -1,13 +1,13 @@ \section{Floorplan} -Wanting to have a sophisticated floorplan, properly dimentioned and easy to follow, I decided to use Sketchup and Layout to propery document how we'd set up the show in the practice studio session. +Wanting to have a sophisticated floor-plan, properly dimensioned and easy to follow, I decided to use Sketchup and Layout to properly document how we'd set up the show in the practice studio session. -Using the floorplan provided by the studios, which was not to scale but did contain some distance markings, I was able to make a 3D version of the studios, the flats, the clock, the stage peices, the lazy susan as well as the tables that would be used to stage the items for the screen. An animation of this render is available here: \url{https://youtu.be/vO9ORonWyX0}. A PDF version of the floorplan and camera layout, as well as some example views of the render, can be found here: \url{https://shopping.ozva.co.uk/static/floorplan.pdf}. +Using the floor-plan provided by the studios, which was not to scale but did contain some distance markings, I was able to make a 3D version of the studios, the flats, the clock, the stage pieces, the lazy Susan as well as the tables that would be used to stage the items for the screen. An animation of this render is available here: \url{https://youtu.be/vO9ORonWyX0}. A PDF version of the floor-plan and camera layout, as well as some example views of the render, can be found here: \url{https://shopping.ozva.co.uk/static/floorplan.pdf}. \begin{figure} \centering \includegraphics[width=0.8\textwidth]{floorplan} - \caption{The floorplan designed in Sketchup and generated in Layout} + \caption{The floor-plan designed in Sketchup and generated in Layout} \end{figure} \begin{figure} diff --git a/sections/gfx.tex b/sections/gfx.tex deleted file mode 100644 index ab65296..0000000 --- a/sections/gfx.tex +++ /dev/null @@ -1,24 +0,0 @@ -\section{GFX Research} -\begin{table} - \centering\small\begin{tabularx}{\textwidth}{r|XX|XX|XX|XX} - Metric & - \multicolumn{2}{c|}{AWI} & - \multicolumn{2}{c|}{WPI} & - \multicolumn{2}{c|}{BATR} & - \multicolumn{2}{c}{BAR}\\ - &r&p&r&p&r&p&r&p\\ - \hline - \hline - Time spent on logo & 0.404 & 0.010 & 0.420 & 0.026 & -0.342 & 0.064 & -0.309 & 0.096\\ - \hline - Time spent on discount & 0.039 & 0.839 & 0.605 & <0.001 & -0.035 & 0.847 & -0.093 & 0.607\\ - \hline - Time spent on price & -0.352 & 0.078 & 0.409 & 0.028 & 0.112 & 0.562 & 0.055 & 0.776\\ - \hline - \end{tabularx} - \caption{Pearson correlations matrix between eye-tracker data and EEG metrics.} - \label{table:tracker} -\end{table} - -During the GFX system design process I acted on instic like a wild animal \ref{table:tracker}. - diff --git a/sections/git.tex b/sections/git.tex index f5977d4..fddea44 100644 --- a/sections/git.tex +++ b/sections/git.tex @@ -1,8 +1,8 @@ \section{``Git'' and version control} -``Git'' is a version control system designed for the development of the linux kernel in 2005. It is \textit{extreamly} widly used. So much so that knowlage of it is considered pre-requisite in the computer science sector. It is not to be confused with GitHub\footnote{GitHub is a web front end but it is so commonly used that some forget that ``Git'' is actually just a command line utility.}. Naturally, I have been tracking everything with it for the last year, inluding running my own Git server. +``\href{https://git-scm.com/}{Git}'' is a version control system designed for the development of the Linux kernel in 2005. It is \textit{extremely} widely used. So much so that knowledge of it is considered pre-requisite in the computer science sector. It is not to be confused with \href{https://github.com/}{GitHub}\footnote{GitHub is a web front end but it is so commonly used that some forget that ``Git'' is actually just a command line utility.}. Naturally, I have been tracking everything with it for the last year, including running \href{https://git.ozva.co.uk/}{my own Git server}. -Tracked folders are called ``repositaries'' or ``repos'' and contain not just the current state of the program, but the entire history back to when tracking began. When you make a change you ``commit'' it, along with a message describing what you did. This is then ``pushed'' to some central repo if this exists. Occasionally throughout this document I'll be mentioning certain commits or repos, these are all to do with the version control. You can take a look at the \textit{entire} history of this document right back to the first word (\repo{shopping-docs}), the code that makes the clock tick (\repo{doomsday-clock}) and the hundreds of commits that make up the GFX overlay (\repo{shopping-channel}). Everything can be accessed on \url{https://git.ozva.co.uk}. For example, this document was pushed to (\repo{shopping-docs}\footnote{This was corrected to say ``shopping-docs'' instead of ``shopping-channel'' in \commit{shopping-docs}{85fada93a3975c02d08ff6307dbccebab7c921a9}}) in \commit{shopping-docs}{fe359e2214286945e4a0cc2ff2bd8d17fcd483ca}, take a look at the message attached. +Tracked folders are called ``repositories'' or ``repos'' and contain not just the current state of the program, but the entire history back to when tracking began. When you make a change you ``commit'' it, along with a message describing what you did. This is then ``pushed'' to some central repo if this exists. Occasionally throughout this document I'll be mentioning certain commits or repos, these are all to do with the version control. You can take a look at the \textit{entire} history of this document right back to the first word (\repo{shopping-docs}), the code that makes the clock tick (\repo{doomsday-clock}) and the hundreds of commits that make up the GFX overlay (\repo{shopping-channel}). Everything can be accessed on \url{https://git.ozva.co.uk}. For example, this document was pushed to (\repo{shopping-docs}\footnote{This was corrected to say ``shopping-docs'' instead of ``shopping-channel'' in \commit{shopping-docs}{85fada93a3975c02d08ff6307dbccebab7c921a9}}) in \commit{shopping-docs}{fe359e2214286945e4a0cc2ff2bd8d17fcd483ca}, take a look at the message attached. Admittedly, the tracking on the docs is poor, they tell their own story. But the tracking on the GFX overlay is robust and has proven useful for development. diff --git a/sections/lazy-susan.tex b/sections/lazy-susan.tex index de2d338..547b7e5 100644 --- a/sections/lazy-susan.tex +++ b/sections/lazy-susan.tex @@ -6,19 +6,19 @@ \caption{The lazy-susan with a bannana for scale} \end{figure} -The lazy-susan was a big part of the idea from the beginning and is very present in conventional teleshopping, usually in the cutaway VTs. Playing on the screen behind the host, usually on one of the jewlery shows, some intenselly shiny product is faded in and out on various different angles as it spins. +The lazy-Susan was a big part of the idea from the beginning and is very present in conventional teleshopping, usually in the cutaway VTs. Playing on the screen behind the host, usually on one of the jewellery shows, some intensely shiny product is faded in and out on various different angles as it spins. -Of course i wanted it to be motorized, an important part of getting a smooth and professional looking movement without having to depend on of the floor managers to spin some kind of mechanism. A quick search revealed that, off-the-shelf, a small motorised one, suited mostly for something such as jewlery, would cost around £30. This was ``too much'' for me, so I instead set out to make my own from scratch, including a 4ft tall podium, which would set me back almost £70. +Of course i wanted it to be motorized, an important part of getting a smooth and professional looking movement without having to depend on of the floor managers to spin some kind of mechanism. A quick search revealed that, off-the-shelf, a small motorised one, suited mostly for something such as jewellery, would cost around £30. This was ``too much'' for me, so I instead set out to make my own from scratch, including a 4ft tall podium, which would set me back almost £70. I chose a 4x8' sheet of 12mm plywood with it being lighter than MDF, easier to paint and still thick enough (just about) to build without complicated supports. By piloting, countersinking and then screwing with small 3x24mm cutting screws I managed to get nice clean edges that where reasonable easy to sand down flat. One issue I did face was the screw tending to go between the layers of the ply which, since the number of layers was odd, gave a slight overhang on one side of the joint. I realised that by aiming the screw towards the outer layer of ply, I could pick the side the screw would tend towards, making my life far easier. -Instead of picking dimentions arbitrarily, I decided to scale the pedastal around the sheet of material itself. Making more effective use of what was an increecingly expensive material, even with trade discount. It ended up being just under 4' tall (half the long edge of the 8' sheet) and 620mm wide. It was all made with tressels outside my home with a jigsaw, a roofing square and a drill. +Instead of picking dimensions arbitrarily, I decided to scale the pedestal around the sheet of material itself. Making more effective use of what was an increasingly expensive material, even with trade discount. It ended up being just under 4' tall (half the long edge of the 8' sheet) and 620mm wide. It was all made with tressels outside my home with a jigsaw, a roofing square and a drill. -How the mechanism would work was actually a suprisingly difficult problem to solve optimally. There are many different choices for types of motor and many different choices for linkages. With little time to get a flanged shaft-coupler shipped to my house, I used a plumbing fitting I had around, attaching it to the ``plate'' of the lazy-susan. I drilled a hole in the motor shaft and used the drill bit as a bar, peening over the edges of the aluminium shaft to keep it in place, before angle-griding the drill-bit to size. This then fitted into a slit in the fitting on the plate, this gave an easily removeable plate that slotted simply into place. The plate was held up not by upwards-force from the motor, which could result in stress or breakage, but by a set of 4 small wheels inset into the top surface of the lazy-susan. With each rated for 10kg of force liniearly, in theory the lazy susan would be able to hold and turn an object up to 40kg in weight, provided it was in the middle of the plate. +How the mechanism would work was actually a surprisingly difficult problem to solve optimally. There are many different choices for types of motor and many different choices for linkages. With little time to get a flanged shaft-coupler shipped to my house, I used a plumbing fitting I had around, attaching it to the ``plate'' of the lazy-Susan. I drilled a hole in the motor shaft and used the drill bit as a bar, peening over the edges of the aluminium shaft to keep it in place, before angle-grinding the drill-bit to size. This then fitted into a slit in the fitting on the plate, this gave an easily removable plate that slotted simply into place. The plate was held up not by upwards-force from the motor, which could result in stress or breakage, but by a set of 4 small wheels inset into the top surface of the lazy-Susan. With each rated for 10kg of force linearly, in theory the lazy Susan would be able to hold and turn an object up to 40kg in weight, provided it was in the middle of the plate. -My pick for motor was an orbital-geared motor, which is an integrated motor and gear box usually available off-the-shelf at speeds from 1 rpm to 10 rpm or higher. After timing some lazy susans on real teleshopping, I settled on a speed of 2.5 rpm. The orrigional motor was 4W, which i assumed to be enough. I was under the impression that as soon as the object was up to speed, the motor would have to put in very little work to keep the object moving, the amount of which would be dependant wholly on the friction of the wheels (very little) and the air resistance of the object (negligable) rather than the weight of the object. I did not account for poor construction of the motor which produced an uneven wobble as the plate travelled round. This was not acceptable. I decided to replace the motor with a 28W one, this produced no wobble and was very smooth. A fused plug and junction box was fitted so that the device would be PAT testable. +My pick for motor was an orbital-geared motor, which is an integrated motor and gear box usually available off-the-shelf at speeds from 1 rpm to 10 rpm or higher. After timing some lazy Susans on real teleshopping, I settled on a speed of 2.5 rpm. The original motor was 4W, which i assumed to be enough. I was under the impression that as soon as the object was up to speed, the motor would have to put in very little work to keep the object moving, the amount of which would be dependant wholly on the friction of the wheels (very little) and the air resistance of the object (negligible) rather than the weight of the object. I did not account for poor construction of the motor which produced an uneven wobble as the plate travelled round. This was not acceptable. I decided to replace the motor with a 28W one, this produced no wobble and was very smooth. A fused plug and junction box was fitted so that the device would be PAT testable. -The first motor was fitted to the top of the box with a hastily cut peice of ply, but when fitting the second motor, I designed and lazer-cut some standoffs out of 6mm MDF in the University workshop which allowed a far more solid and proffesional looking construction. +The first motor was fitted to the top of the box with a hastily cut piece of ply, but when fitting the second motor, I designed and lazer-cut some standoffs out of 6mm MDF in the University workshop which allowed a far more solid and professional looking construction. The whole construction was painted with a under-coat and then a further 3 coats of widely-available matte white emulsion. diff --git a/sections/overlay.tex b/sections/overlay.tex index 15b8d4a..c5ed4be 100644 --- a/sections/overlay.tex +++ b/sections/overlay.tex @@ -1,42 +1,59 @@ \section{The GFX System} -The GFX System (\repo{shopping-channel}) is not one of my most complicated projects, but is certainly the most monolythic in scale and scope. It it made from around 3963 lines of HTML, CSS, JS, LaTeX and Python with some additional shell scripting. It was all written by hand, by me. All assets, SVGs, images, fonts etc where either designed by me or are used with the appropriate licence. +The GFX System (\repo{shopping-channel}) is not one of my most complicated projects, but is certainly the most monolithic in scale and scope. It it made from around 3963 lines of HTML, CSS, JS, LaTeX and Python with some additional shell scripting. It was all written by hand, by me. All assets, SVGs, images, fonts etc where either designed by me or are used with the appropriate licence. + +\subsection{Links} + +Since the elements of the GFX system are mostly html files hosted on OzVa, one can access them directly. + +\begin{itemize} + \item \href{https://shopping.ozva.co.uk}{The main overlay} + \item \href{https://shopping.ozva.co.uk/autocue}{The autocue} + \item \href{https://shopping.ozva.co.uk/display}{The price display} + \item \href{https://shopping.ozva.co.uk/api}{The API} +\end{itemize} \subsection{Version 1} -The first version of the GFX system was built on a strage foundation of what I knew at the time. With what I thought would be simply one client (the GFX frontend) and one admin (the GFX controller) I chose to use json files to store the data powering the system. I did look into propper database solutions, but this seemed like overkill. +\begin{figure} + \centering + \fbox{\includegraphics[width=0.7\textwidth]{oldgfx}} + \caption{The old GFX control panel (combined)} +\end{figure} -The choice for the method of altering these files was PHP, I had recently written a handful of small tools in it and it seemed simple and intunitive. +The \href{https://data.ozva.co.uk/shopping/}{first version} of the GFX system was built on a strange foundation of what I knew at the time. With what I thought would be simply one client (the GFX front-end) and one admin (the GFX controller) I chose to use json files to store the data powering the system. I did look into proper database solutions, but this seemed like overkill. -There were 4 json files and a plaintext file: +The choice for the method of altering these files was PHP, I had recently written a handful of small tools in it and it seemed simple and intuitive. + +There were 4 json files and a plain-text file: \begin{description} \item[data.json] contained the majority of the data, including the current text for all elements, the product id, the pricing alterations \item[clock.json] contained the clock's movement speed, movement function and current position (as well as the left overs of the now-scrapped lighting control system) \item[sigil.json] contained static information to do with the phrases encoded within the sigils and the magic square used to generate them \item[items.json] contained static information about the different items being sold. This would also later be used to generate the item manifests. - \item[note] (plaintext) was the producers note, passed onto the anchor via the autocue system. + \item[note] (plain-text) was the producers note, passed onto the anchor via the autocue system. \end{description} -With one client writing to the files and one reading from the files all at the same time, this was not safe at all. This was ``fine'' and i did not come across any issues in testing. However, on paper it is not only very much not ``best practice'' but also blantly unsafe. +With one client writing to the files and one reading from the files all at the same time, this was not safe at all. This was ``fine'' and i did not come across any issues in testing. However, on paper it is not only very much not ``best practice'' but also blatantly unsafe. This was rectified using lock files, where before either reading or writing the client would check for a lock file then pause until it was removed. This, I imagined, might cause even more issues if one client was unable to finish the write and disconnected before removing the lock file. But this was all accepted with the intention of a rewrite. -The PHP happened to, very predictably, get out of control fast. Each of the features that I added felt more and more like I was patching in lazy code, fixing all the obvious mistakes and then doing it all again. It was pointed out to me that the control pannel would have to be cut up between multiple opperators for ease of use. At this point, coming back to the system after around 5 months, i knew i'd need a better solution. +The PHP happened to, very predictably, get out of control fast. Each of the features that I added felt more and more like I was patching in lazy code, fixing all the obvious mistakes and then doing it all again. It was pointed out to me that the control panel would have to be cut up between multiple operators for ease of use. At this point, coming back to the system after around 5 months, i knew I'd need a better solution. \subsection{Version 2} -I had recently learned to use the Flask package with python to build both a blog and radio station for an indie lable. I had also, for the same radio station, been forced to tackle sqlite due to the strangeness of WSGI web apps. This is exactly the tooling I needed. +I had recently learned to use the \href{https://flask.palletsprojects.com/en/stable/}{Flask} package with python to build both a blog and radio station for an indie label. I had also, for the same radio station, been forced to tackle \href{https://sqlite.org/}{Sqlite} due to the strangeness of WSGI web apps. This is exactly the tooling I needed. -The current setup is far safer. The calls to static files have been consolidated to two API calls, one static and one dynamic, where the static one is cached. This streamlined the PHP, from handling each datapoint as an edge case, to simply passing on data from the sqlite database and doing some post processing for some server-side neccecities. Not only is this more efficient and readable, but also allows me to add features with flexibility. +The current setup is far safer. The calls to static files have been consolidated to two API calls, one static and one dynamic, where the static one is cached. This streamlined the PHP, from handling each data-point as an edge case, to simply passing on data from the sqlite database and doing some post processing for some server-side necessities. Not only is this more efficient and readable, but also allows me to add features with flexibility. -For example, if the client-side sends a key thats not recognised, it is simply filtered out without raising an exeption, and on request, the server simply processes and serves each key in the database. This database is sanity checked on server start, and regenerated from the schema should any error be detected. Each post processing opperation, if needed, is cued by the key of the datapoint. For example with the \verb|end_timer_...| keys, if the client sends a key that starts with \verb|end_...|, then the value sent is added to the current unix time before being commited to the database. In this way, a control-panel element can be added with some arbitrary ``value'' attribute which is the amount of time in seconds till that timer should stop. +For example, if the client-side sends a key that's not recognised, it is simply filtered out without raising an exception, and on request, the server simply processes and serves each key in the database. This database is sanity checked on server start, and regenerated from the schema should any error be detected. Each post processing operation, if needed, is cued by the key of the data-point. For example with the \verb|end_timer_...| keys, if the client sends a key that starts with \verb|end_...|, then the value sent is added to the current UNIX time before being committed to the database. In this way, a control-panel element can be added with some arbitrary ``value'' attribute which is the amount of time in seconds till that timer should stop. The HTML pages have been reorganised and the JS refactored and streamlined for speed. Across the board, the footprint of the code has been massively reduced. \subsection{The Main Display} -This is the jewel in the crown and almost 1,000 lines of code alone. It continuously updates based of the \href{https://shopping.ozva.co.uk/api}{API} as well as the static cached product information. Far too much problem solving has gone into this file to appropriately do it justice. If you have knowlage of web design, I would recommend taking a look: \blob{shopping-channel}{templates/gfx.html}. +This is the jewel in the crown and almost 1,000 lines of code alone. It continuously updates based of the \href{https://shopping.ozva.co.uk/api}{API} as well as the static cached product information. Far too much problem solving has gone into this file to appropriately do it justice. If you have knowledge of web design, I would recommend taking a look: \blob{shopping-channel}{templates/gfx.html}. \subsubsection{Sigils} @@ -46,9 +63,9 @@ The \href{https://git.ozva.co.uk/?p=shopping-channel;a=blob;f=static/assets/sigi \subsubsection{Discounts} -In the database, there are 5 keys regarding the current discount. One is a single number that describes the current discount, such as ``50\% off''. This is the number used in the pricing system to generate the current price. The other 4 are generated by the control panel upon submiting a change to the discount. These are used by the graphics overlay to produce the 4, purely aestetic, discount ``badges''. +In the database, there are 5 keys regarding the current discount. One is a single number that describes the current discount, such as ``50\% off''. This is the number used in the pricing system to generate the current price. The other 4 are generated by the control panel upon submitting a change to the discount. These are used by the graphics overlay to produce the 4, purely aesthetic, discount ``badges''. -Previously, there where 4 different discount inputs which would be applied squentially, this proved confusing for the Anchor and the GFX operators. Therefore, I decided to ``simplify'' it down to the current system. +Previously, there where 4 different discount inputs which would be applied sequentially, this proved confusing for the Anchor and the GFX operators. Therefore, I decided to ``simplify'' it down to the current system. \begin{verbatim} const u = 1 - Math.random(); @@ -60,7 +77,7 @@ discount.value = Math.round((1 - discountLeft) * 100); discountRemaining /= discountLeft; \end{verbatim} -The above code sample, introduced in \commit{shopping-channel}{}, itterates through the total discount, itteratively splitting it up into 4 chunks. This happens randomly in a normal distribution with the deviation tuned appropriately ($\sigma = 0.05$). For example, here is the result of requesting an 80\% discount: +The above code sample, introduced in \commit{shopping-channel}{}, iterates through the total discount, iteratively splitting it up into 4 chunks. This happens randomly in a normal distribution with the deviation tuned appropriately ($\sigma = 0.05$). For example, here is the result of requesting an 80\% discount: \begin{gather*} D_T = 80\% (0.2)\\ @@ -70,7 +87,7 @@ The above code sample, introduced in \commit{shopping-channel}{}, itterates thro As you can see, the system supplies 4 discounts which, when applied, reduce the cost to approximately the target price as specified with the discount key. -Note that, as an example of the attention to detail of the system, when you interupt the form submission to do the above action with JS, it detaches the form from the enter button. This is counter-intuitive to the way the rest of the GFX button works (enter submits the form when a form feild is focused) and I was worried that crucial moments might be missed due to this sudden lack of expected behavior. There is therefore a section at the end of the \texttt{price.html} file that re-links this action to the enter key. +Note that, as an example of the attention to detail of the system, when you interrupt the form submission to do the above action with JS, it detaches the form from the enter button. This is counter-intuitive to the way the rest of the GFX button works (enter submits the form when a form field is focused) and I was worried that crucial moments might be missed due to this sudden lack of expected behavior. There is therefore a section at the end of the \texttt{price.html} file that re-links this action to the enter key. \subsubsection{Number 7} @@ -87,11 +104,24 @@ Line 80 of \texttt{gfx.html}, where \texttt{rep} is the string to replace (eithe The autocue previously contained 6 timers, a display of the doomsday clock, pricing information, stocking information, the producer note and item copy. This was far too much information for one screen but at the same time more was required for the ease of the Anchor. This was cut down to just the item notes and the producer note, as was displayed through the conventional autocue system. It updates using the same method as the main GFX page and shows the current product. + +\begin{figure} + \centering + \fbox{\includegraphics[width=0.7\textwidth]{autocue}} + \caption{The autocue display} +\end{figure} + \subsection{Display} The extra information taken from the autocue was placed here, along with some more relevant information for the anchor. It was displayed on a monitor connected to a crew-members laptop on the floor to allow him to view the current item stats while behind the desk. It updated in a similar way to the main GFX system. -There was unfortunately an issue with the maths here, and for some reason I have not yet looked into, the ``current price'' was listed wrong. This was easy to fix as the Anchor would clearly signpost that he was about to say the price giving me the opertunity to relay him the current price as displayed on the main GFX system. +There was unfortunately an issue with the maths here, and for some reason I have not yet looked into, the ``current price'' was listed wrong. This was easy to fix as the Anchor would clearly signpost that he was about to say the price giving me the opportunity to relay him the current price as displayed on the main GFX system. + +\begin{figure} + \centering + \fbox{\includegraphics[width=0.7\textwidth]{display}} + \caption{The Anchor's pricing display} +\end{figure} \subsection{Sounds} @@ -99,31 +129,56 @@ The sound system was created in response to a more and more complex GFX system w It watches the main API endpoint looking for certain changes and triggers sounds based on this (See Figure \ref{fig:sounds}). It uses the HTML5 WebAudio API to add effects upon certain actions. For example, when the doomsday clock ticks: reverb\footnote{This is a convolution reverb with the following impulse: \url{http://shopping.ozva.co.uk/static/sounds/impulse.wav}} and filtering (1000Hz, low pass). This signal chain, as well as the clock, is then fed into a \texttt{DynamicsComressorNode} (ratio of 4) which levels the signal. It plays a sound for each of the \href{https://shopping.ozva.co.uk/static/sounds/timer1.wav}{timers}, \href{https://shopping.ozva.co.uk/static/sounds/shout.wav}{shouts}, or \href{https://shopping.ozva.co.uk/static/sounds/clock.wav}{Doomsday clock ticks}. -The TV Studio audio desk has 2 faders for cartwall sounds, which is not enough to dynamically control the volume of up to 9 sounds \& music at once. One of the advantages of the sound system is that it reduces the volume of the timer sounds the more that are playing, leveling the mix for you. +The TV Studio audio desk has 2 faders for cart-wall sounds, which is not enough to dynamically control the volume of up to 9 sounds \& music at once. One of the advantages of the sound system is that it reduces the volume of the timer sounds the more that are playing, leveling the mix for you. -This system as a solution is very ``teleshopping'' and it does not take into account the care I would have for an ``audio peice''. It suffers from many small issues that leave it feeling a little unstable. Note, though, that this is a decision that i made balencing time, quality and the many ways to the same outcome rather than a direct critisim of the system. There are some situations when building the GFX system that I have deliberately taken a suboptimal path or introduced a bug for effect. For example, the prices in the GFX system can sometimes round to 1 decimal point, this was introduced as purposefull jank. +This system as a solution is very ``teleshopping'' and it does not take into account the care I would have for an ``audio piece''. It suffers from many small issues that leave it feeling a little unstable. Note, though, that this is a decision that i made balancing time, quality and the many ways to the same outcome rather than a direct criticism of the system. There are some situations when building the GFX system that I have deliberately taken a sub-optimal path or introduced a bug for effect. For example, the prices in the GFX system can sometimes round to 1 decimal point, this was introduced as purposeful jank. \input{figures/sounds.tex} \subsection{Control panel} -The distribution of the controls across the control pannel was of some note. Initially, I split up the controls based on purpose into the following categories for the practice session, It was my intention that things would need to be changed but it immediately became clear that only one of the opperators had almost all of the responsibility. This was ``pricing'', which lncluded current item, all 4 discounts, the amount of product sold, the currency and all the notes to the anchor. +The distribution of the controls across the control panel was of some note. Initially, I split up the controls based on purpose into the following categories for the practice session, It was my intention that things would need to be changed but it immediately became clear that only one of the operators had almost all of the responsibility. This was ``pricing'', which included current item, all 4 discounts, the amount of product sold, the currency and all the notes to the anchor. -This is what practice sessions are for though and it was good for the opperators to get a chance to sudgest alterations to the system. Something that the narrative engiree sudgested based off the practice sessions was an additional arbitrary text display, which could be typed in at the whim of the narrative team. +This is what practice sessions are for though and it was good for the operators to get a chance to suggest alterations to the system. Something that the Narrative Engineer suggested based off the practice sessions was an additional arbitrary text display, which could be typed in at the whim of the narrative team. ``Something loud, like it flashes on screen''. This was implemented easily and quickly, similar to the autocue note, thanks to the new back-end design. The Anchor also had some pointers about what features would be good in the autocue system. The current price (with discount applied), the current discount and potentially an indicator of the next product. \subsubsection{Timer} -The ``Timer'' pannel controls the 3 timers, in increments of 1 minute up to 10 minutes as well as 30 seconds, and the ``shout''. It updates from the API to constantly display the current time left for each timer, along with color flashing when the timer is within a minute of its end. +The ``Timer'' panel controls the 3 timers, in increments of 1 minute up to 10 minutes as well as 30 seconds, and the ``shout''. It updates from the API to constantly display the current time left for each timer, along with color flashing when the timer is within a minute of its end. + +\begin{figure} + \centering + \fbox{\includegraphics[width=0.7\textwidth]{timer}} + \caption{The timer admin panel} +\end{figure} \subsubsection{Doomsday} The ``Doomsday'' panel controls the doomsday clock, along with a guide on when each clock tick should ideally happen. There is a time-left on each tick which shows how ahead or behind schedule we are. + +\begin{figure} + \centering + \fbox{\includegraphics[width=0.7\textwidth]{doomsday}} + \caption{The doomsday admin panel} +\end{figure} + \subsubsection{Pricing} -The ``Pricing'' panel controls the item, the discount, the stock left and what is showing on screen. It previously controled the item currency but this is now baked into the item itself via the \texttt{static.json} file. +The ``Pricing'' panel controls the item, the discount, the stock left and what is showing on screen. It previously controlled the item currency but this is now baked into the item itself via the \texttt{static.json} file. + +\begin{figure} + \centering + \fbox{\includegraphics[width=0.7\textwidth]{pricing}} + \caption{The pricing admin panel} +\end{figure} \subsubsection{Text} The ``Text'' panel controls the banner text, the crawler (top and bottom) text, the producer note to the Anchor, the sigils and the redaction of the number 7. + +\begin{figure} + \centering + \fbox{\includegraphics[width=0.7\textwidth]{text}} + \caption{The text admin panel} +\end{figure} diff --git a/sections/research.tex b/sections/research.tex new file mode 100644 index 0000000..a56c42e --- /dev/null +++ b/sections/research.tex @@ -0,0 +1,205 @@ +\section{Research} + +After the initial idea was pitched in the first few final year project sessions, I decided to look into if I could find any academic research on regarding teleshopping. As an industry, it’s not in a rush to document itself. Sioux told me she doesn't put it on her CV and no one else does, “Its embarrassing” she tells me, and I can find no company documents or industry best practices. + +Thankfully she was able to pass on the horror stories through word of mouth and a few key pieces of paperwork, examined like a dig site. + +\begin{figure} + \centering + \fbox{\includegraphics[width=0.7\textwidth]{onboarding2}} + \caption{What goes into a product line.} +\end{figure} + +\begin{figure} + \centering + \fbox{\includegraphics[width=0.7\textwidth]{onboarding3}} + \caption{The life-cycle of a line.} +\end{figure} + + \subsection{Primary research} + +I have been generously given some industry documents: on-boarding material, spreadsheets etc. All has informed my own paperwork, especially the item manifests, in the way that the producer and presenter are explicitly aware of the purchase price, as well as the gallery price\footnote{This is the price set by finance as the minimum ideal price to end on.}. + +I made the decision to work in percentage over raw cost for the GFX control system, allowing easier dropping of the price without the GFX operators all using calculators. + +It was also interesting to see that in many cases, the company make a loss on certain products where necessary. This is because they pay the suppliers 3 or so months after the products arrive. Selling within this window allows them more stability with cash on-hand and failing to sell an amount of product means that that value is stored in a warehouse somewhere. + +I do want to mirror Teleshopping, it both look and in production, so getting my head around how it all worked behind the scenes helped massively. + +The item manifests automatically generated by the GFX system illustrate this well, they include a totally arbitrary gallery and cost price (with a real number price, even though its specified in the GFX data as a percentage, or rather, a multiplier) + + \subsection{Secondary research} + +Some notes on my inspirations, influences and academic research. + + \subsubsection{Notes on similar projects} + \label{sec:research} + +\paragraph{[sic] Blaseball} + +Blaseball was an experience. It is something that I'm not sure has ever happened before and may never happen again. It was perfect storm of engagement so live that it can never be relived. It fundamentally changed the way I think about art. + +It was a \href{https://www.blaseball.com}{website} where there where constant simulated Baseball games in simple text with no images or audio. Upon joining the site you could support a team\footnote{Go Fridays! Rest in violence!}, voting to inform their decisions, but overall you where simply an observer. + +For some reason, most likely influenced by the pandemic, it collected a relatively small (still quite large) audience of incredibly obsessive and creative people. So to describe it as a website is totally accurate, but it was also 2 bands, a musical, a radio station, a research organisation who published regular papers on the game and a collection of Twitter accounts. + +The Commissioner of Blaseball (Fictional Parker MacMillan IIIII) regularly tweeted out when the site broke or otherwise to foreshadow the terrible events of the season. All in such a tastily laconic way it was difficult to stop watching. There was also a huge momentum in the Discord, with thousands of people all watching and coordinating at once. + +I remember sitting with 2 laptops and my phone in front of me. The discord on one, the website on the other and the Commissioners Twitter up on my phone, watching simple text flick by with barely containable excitement. + +The publishers also regularly released the ``Blaseball Round-up'', a mock sports show, on YouTube. This is the biggest influence of XMDV Teleshopping\footnote{\url{https://youtu.be/9NgdpzVbvrM}}. + +It is also my proof that there is an audience for this strange place between satire, esotericism and horror. It is hopefully some strand of this audience I hope to capture. + +In 2023, Blaseball ended for good, the company stopping its production due to the difficulty of developing their engine in real-time. Because it was so closely managed, you cant go back. The fans have moved on (or tried to) and there is a gap in the market again. + +TLDR: You had to be there, but it was great. + +\paragraph{The Jerma985 Dollshouse} + +An example of the effective use of the interactivity that platforms, like Twitch, allow is \href{https://youtube.com/playlist?list=PL9wV0Fmo7N_gOBO-6ftRF1WulM9QPdoq_}{The Jerma985 Dollshouse}. The set of three consecutive streams mirrored simulation game The Sims, with the viewers taking the place of the player, able to control Jerma’s actions. + +The viewers had access to a set of status bars on the overlay of the main stream, with the voting taking place in a stream extension, Twitch’s tool for interactivity. + +The production was far higher profile that many other streams on the platform, with a crew of 35, production company and full cutaway house set with multiple rooms. It reportedly cost more than \$40,000, pulled in, at peak, 600,000 viewers and won the Best Streamed Event category in the 2022 Streamer Awards. + +This is a great example because it's one of the only examples of a stream which combines the professional production and roles of a TV studio and my platform of choice (alongside its quirks and freedoms). + +\paragraph{XMDV Radio} + +In 2023, After my second session in the radio studio, me and Jack Christian-Sims (my current director) made a radio show called XMDV Radio. It was a esoteric mash up of everything we where working on. It's the namesake of Teleshopping and inspired, at the time I came up with the idea, my thinking. This is why the very first person I screen-tested was Jack. + +Its difficult to put into words the feel of the whole thing, and I don't think listening to the finished product really gets it across\footnote{\url{https://www.youtube.com/watch?v=ZTTpdLE2PNo}}. It was a really unique feeling to produce and record with Jack, and its something I've been pursuing since. + + \subsubsection{Notes on teleshopping} + +These feature notes where originally made on \href{https://www.youtube.com/watch?v=Zswxn5QW_54}{TJC} in 2022, since then I've added to them from \href{https://www.youtube.com/watch?v=UqFzfqlb60g}{QVC} and \href{https://www.youtube.com/watch?v=pNVWQQjMNqQ}{Ideal World}. + +\paragraph{Camera Notes} + +There is usually one moving camera. The host may sometimes walk around the set for large items and a camera is needed to follow them as they move around, as well as for close-ups at the request of the host. For small products, a separate static close-up of the host's hands can be cut to. Usually used for jewellery. There is also always some cutaway, a gentle montage of the product, or VT. + +Depending on the station, the crew is sparse, especially on camera. In the setup above, only one camera-person is required. + +\paragraph{Device Notes} + +\begin{description} + \item[Unplanned price drops] ``This wasn't meant to be on our show'', Talking to the producer over comms or off-screen to ``check'' if a price drop is \textit{too far}, ``That was a bit naughty, I hope we don't get in trouble'' + + \item[Citing improvable statistics] ``Never seen something like this ...'', ``Don't tend to'' + + \item[Linking the purchase to something good] ``[sic] Every time you make a purchase, I get a meal'' + + \item[Scarcity] ``Which one is most popular?'', ``Not many left [because the mines are being shut]'', ``We've got callers holding already'', ``I'm going to give you a chance now to buy before we price drop to get ahead of the crowds'' + + \item[Far too high to far too low] Shock value + \item[] +\end{description} + +\paragraph{GFX Notes} + +\begin{description} + + \item[Product information] Top left of screen. Contains item number (for use when selecting the product over the phone. Also for internal use\footnote{Used to keep track of products on paperwork. Number is sometimes taken from the product itself (item code, batch number, etc).}), item rating, short item description and item variants (and those variants item code extensions). + + \item[Pricing, stock and remaining] Bottom left of screen, sometimes connected to the bottom of ``Product information''. Contains quantity remaining, amount already sold, the current sale price, the current multi-pay options\footnote{Sometimes called ``Budget-pay'' or ``EZ Pay'' (abbreviated to EZ on paperwork).} and the cost of P\&P. + + \item[Contact information] Bottom, sometimes on a ``crawler''. Contains ``congratulation'' messages to recent buyers, names of people currently on hold, messages sent into the studio by viewers, recent announcements, upcoming announcements, information on how to order, phone number, website and the timer. + + \item[Upcoming programmes] Bottom right of screen. Contains upcoming deals or shows, sometimes also contains the phone number\footnote{Note that in my case, there is no phone number. The audience interacts via the Twitch integration.}. + +\end{description} + + +There is also a particular rhythm to how the GFX are unveiled. For the most part this is consistent across products, shows and stations. + +When the product is first presented, there is almost no information about it on screen (this is the ``Product information'' box above, but there is also no phone number and the lines are not yet ``open''). The host then introduces it and tells the viewers just how \textit{good} it is. This goes on for a while before the price is finally revealed. This initial price is massively inflated from the real price of the product. The host continues to sell, mentioning how they've got us (the viewer) an amazing deal. + +This is when the first price drop happens. + +\textit{Then} the phone lines finally open and the product begins to sell. + +At this point the host can continue dropping the price as far they feel is necessary to sell as much of the product as is practical\footnote{The host is aware of how much of the product is in stock, a preferred sell price, a lowest viable sell price and whether the product will make a later appearance. If the product is making a later appearance, the host may choose not to sell out.}. + +As soon as the phone lines are opened, the number is to be kept on screen at all times, over cutaways or promo montages. + + \subsubsection{Academic research} + +I was able to find one interesting paper regarding teleshopping, called “Neuroselling”. It’s fascinating research that uses EEG data alongside eye-tracking to work out the affect on certain “indexes” each graphical element has. + +\begin{table}[H] + \centering\small\begin{tabularx}{\textwidth}{r|XX|XX|XX|XX} + Metric & + \multicolumn{2}{c|}{AWI} & + \multicolumn{2}{c|}{WPI} & + \multicolumn{2}{c|}{BATR} & + \multicolumn{2}{c}{BAR}\\ + &r&p&r&p&r&p&r&p\\ + \hline + \hline + Time spent on logo & 0.404 & 0.010 & 0.420 & 0.026 & -0.342 & 0.064 & -0.309 & 0.096\\ + \hline + Time spent on discount & 0.039 & 0.839 & 0.605 & $<$0.001 & -0.035 & 0.847 & -0.093 & 0.607\\ + \hline + Time spent on price & -0.352 & 0.078 & 0.409 & 0.028 & 0.112 & 0.562 & 0.055 & 0.776\\ + \hline + \end{tabularx} + \caption{Pearson correlations matrix between eye-tracker data and EEG metrics.} +\end{table} + +\begin{description} + \item[AWI] Approach Withdrawal Index is the difference of $\alpha$ powers between the right and left prefrontal channels. Positive AWI is correlated to ``cognitive approach'' to the stimuli over ``cognitive withdrawal''. + \item[WPI] Willingness to Pay Index is the $\gamma$ difference between the left and right pre-frontal channels. Its correlated (as the name says) with the participants ``Willingness to pay''. + \item[BATR] Has been proposed as a measure of cognitive engagement\footnote{The way this is more complicated and has been removed for ``brevity''.}. + \item[BAR] Has been proposed as a measure of cognitive ``arousal''. +\end{description} + +As you can see, the only measurements that are significant (p $<$ 0.05) are under the WPI metric, as well as the AWI correlating with time spent on the logo. All these measurement seem intuitive, with more time spent on any of the measured elements increasing the Willingness to pay. + +Something of note is the time spent on the logos affect on BATR cognitive engagement. Despite being insignificant by a small margin, looking at the logo for long periods of time actually \textit{decreased} engagement. + +The implications of the paper are small in my case, but the study is interesting. Based of the paper I did add a further 3 discount badges, but whether that actually increases the WPI is outside the scope of this Snapshot. + + \subsection{Contributor research} + +At the time of the first snapshot, the Anchor was not yet confirmed, although I had done one screen-test. This was with Jack Christian-Sims, who I decided was not good enough. He would be far more useful as my visual director in the gallery. He turned out to perfectly fit this role despite no studio experience. + +I later picked David Smith for a prospective screen test\footnote{The screen-test is available here: \url{https://data.ozva.co.uk/screensmall.mp4}} and he turned out to be the perfect pick. This was only cemented in the practice session where he continuously performed far better than I could every have imagined. + + \subsection{Location research} + +As mentioned regarding the practice sessions (ref), I have been thinking about where to set teleshopping for a long time, although the University’s TV studios have always been the most desirable. There is little to write about this location ``research'' because most of it has happened during both TV Studio modules, being able to try out roles and get comfortable. + +The TV Studio itself (studio A) is already almost fully outfitted for teleshopping and very little has been required from me to get it set-up correctly. There are a couple places where I’ve had some special requirements though. + +My own GFX system is far removed from the user-friendly and production focused one already in the gallery, although both are HTML based. Getting this setup and working was one of the key goals of the practice session on the 7th, and I had arranged for the broadcast engineer (Ash) to help out with getting it wired into the desk. After some troubleshooting (while I was on the floor) this was all setup and functional, there where no further issues and configuration was saved or otherwise documented to make it easier for next time. + +The layout of personnel in the gallery was also of note. I imagined it would be easiest to arrange people during the practice session while the floor where setting up. The problem is that there are 3 more roles in the gallery, each without a station. I considered that we might be able to put a table in the sound room, but it would have impeded communication. This was eventually forgotten and negligible and there was plenty of room in the gallery for all, although there was a table in the gallery corridor for the output monitor / any guests to the stream. + + \subsection{Audio specific research} + +I underwent a surprisingly large amount of audio research, which then turned to dust in my hands. + + \subsubsection{Generative} + +Initially, I sat down with Joe Fowler, audio artist, to talk through the ideas that I was having and figure out what might work. + +We where both on the same page about the most corporate music that I could get my hands on. I had recently been playing around with training my own AI models\footnote{There are some ethical considerations here, but this is research and development and my models are not public so I'll forgo this.} because of the distortions that you can get from it. The effect is unlike any other because it is not subtractive, its not additive, it fundamentally affects the input sound and, more importantly, it gets the maths wrong sometimes. + +I managed to get hold of around 52 hours of Seeburg 1000 background music\footnote{A company that supplied background music for industry and offices, similar to Muzak.} and began to train a WaveGlow model\footnote{This is a network that reinterprets Mel spectrograms as audio, used conventionally for text-to-speech systems. The plan was to feed it images it could miss-interpret and hallucinate Muzak. \url{https://github.com/NVIDIA/waveglow}}. This took a week of on-off training on a RTX 3090. I did manage to get some great audio out of this system, particularly in moments where it hallucinated loud tones out of thin-air, this would be used to support the ``clock-tick'' sound effects. + +On the whole the experiment was unsuccessful and unnecessary and instead of training some magical model that could hallucinate me endless Muzak, I ended up training an unreliable WaveGlow model on strange training data. I believe that this could have been fixed by reducing the resolution of the spectrograms, thereby making the model have to make up more information to generate the audio, but as with all things ``generative'', It's never as good as you think it'll be. + +I also realise that it was the complete wrong tone of music, and we should ideally be going for more modern stock corporate music. + +I went back to Joe to talk about my findings, we talked about how it could be done reactively, how we could distort it in real-time. We talked about tape loop destruction\footnote{\url{https://www.youtube.com/watch?v=mjnAE5go9dI}}, + +and then I said + + \subsubsection{Hey what about CDs} + +Me and Rebecca sat cross-legged next to the DVD player in the lecture-hall I'd taken over for the teleshopping pre-shoot briefing, with a piece of 60 grit sandpaper between us. We where trying to get something interesting out of a CD I'd burned with 15 pieces of the most corporate music I could get my hands on. I had two copies, one clean and one that said ``XMDV Fucked up'' in marker on the front. + +Joe and me both agreed that it would be an interesting experiment. He told me that because of the way the format worked, with error correction, If we messed it up too bad it would play fine and then not play at all. We did manage to get an intermittent skipping\footnote{This was regular, about half a second of silence and then a second of music. It amuses me that a higher grit sandpaper was probably needed, perhaps 120 or 240.} and a strange-but-subtle digital crackle. + +It was an interesting idea, and deserves more though, but was used alongside other effects. We continued to use CD's up to the final stream. The sound effects and incidental sounds used throughout all took from this library of experiments to make a collection of very ``XMDV'' SFX. diff --git a/sections/sioux.tex b/sections/sioux.tex index 7bb4d94..7211e89 100644 --- a/sections/sioux.tex +++ b/sections/sioux.tex @@ -1,4 +1,4 @@ -\section{Feild Knowlage} +\section{Field Knowledge} Sioux Sharp (lecturer in TV Studio) is a confirmed real-world teleshopping victim. She says it was hell. The worst 3 months of her life. "It wasn't even production, it was just sell, sell, sell. Constantly. A lot of mental maths". I go @@ -10,9 +10,6 @@ She is an external help, with the chevrons to back it up. She gave me some great \begin{quote} What I have done in the past for screen tests is give the would be presenters a bit of script or two and then a test. [...] The test I have done in the past is give someone an everyday object and get them to talk about it, in your case get them to 'sell' it until you say 'stop'. So, they don't know how long they are going to have to sell and 'fill' for. I'd tell them they need to pretend that they are on a shopping channel so they cannot stop for any reason until you stop them. In terms of items it could be anything - as I said, \textit{I just used a bottle of water.} -\begin{flushright} -(\cite{SSHARP2025}) -\end{flushright} \end{quote} -The host has been picked by me based on Sioux's advice. She recommended that I identify someone as quickly as possible and begin to work with them. Although, initially, I had a casting deadline of the week c/o 24th March 2025, this was completed on the 13th Febuary. +The host has been picked by me based on Sioux's advice. She recommended that I identify someone as quickly as possible and begin to work with them. Although, initially, I had a casting deadline of the week c/o 24th March 2025, this was completed on the 13th February. diff --git a/sections/streaming.tex b/sections/streaming.tex index f8f4521..12b92ff 100644 --- a/sections/streaming.tex +++ b/sections/streaming.tex @@ -1,9 +1,9 @@ \section{The Stream} -Using a KVM, the stream setup was contained to just one ``station'' in the gallery. The source for the GFX was catured by OBS and sent to the desk with an output device using an alpha key, this allowed the GFX to show up over the camera feeds without using a chroma key. The GFX system could be turned off on the GFX side so it was not neccicary for the vision mixer or studio director to concern themselves with the management of this. +Using a KVM, the stream setup was contained to just one ``station'' in the gallery. The source for the GFX was captured by OBS and sent to the desk with an output device using an alpha key, this allowed the GFX to show up over the camera feeds without using a chroma key. The GFX system could be turned off on the GFX side so it was not necessary for the vision mixer or studio director to concern themselves with the management of this. -The PGM output of the whole studio, inlcuding audio and the vision mixed stream was then sent to the second OBS instance in the station. This contained the stream key and streamed to the \textit{XMDVTeleshopping} Twitch account. +The PGM output of the whole studio, including audio and the vision mixed stream was then sent to the second OBS instance in the station. This contained the stream key and streamed to the \href{https://www.twitch.tv/xmdvteleshopping}{\textit{XMDVTeleshopping}} Twitch account. -On the orrigional stream, there is a very noticeable dynamic desync as the video seems to slow down and speed up. This was flagged by the output monitor after we began streaming and I quickly brought the issue up with the building broadcast enginner, who was on standby. We where told by him that it was a Twitch issue, however, on reevaluation, myself and my supervisor belive that it was an issue with the bitrate. The stream was being sent to twitch at 1080p50, which is already very high, and the delay may have been Twitch reencoding the stream on-the-fly. +On the original stream, there is a very noticeable dynamic desync as the video seems to slow down and speed up. This was flagged by the output monitor after we began streaming and I quickly brought the issue up with the building broadcast engineer, who was on standby. We where told by him that it was a Twitch issue, however, on reevaluation, myself and my supervisor believe that it was an issue with the bit-rate. The stream was being sent to twitch at 1080p50, which is already very high, and the delay may have been Twitch re-encoding the stream on-the-fly. This is frustrating as it could have been a fairly simple thing to fix, but I was at this point spread fairly thin, and took the engineers word for it that there was nothing we could do. We still had the full recording after all. diff --git a/sections/teleshopping-notes.tex b/sections/teleshopping-notes.tex deleted file mode 100644 index d459344..0000000 --- a/sections/teleshopping-notes.tex +++ /dev/null @@ -1,51 +0,0 @@ -\section{Feature Notes} - -These feature notes where origionally made on TJC in 2022, since then I've made additional notes on QVC and Ideal World. - -\subsection{Camera Notes} - -There is usually one moving camera. The host may sometimes walk around the set for large items and a camera is needed to follow them as they move around, as well as for close-ups at the request of the host. For small products, a seperate static close-up of the host's hands can be cut to. Usually used for jewlery. There is also always some cutaway, a gentile montage of the product, or VT. - -Depending on the station, the crew is sparce, esspecially on camera. In the setup above, only one camera-person is required. - -\subsection{Device Notes} - -\begin{description} - \item[Unplanned price drops] ``This wasn't ment to be on our show'', Talking to the producer over comms or off-screen to ``check'' if a price drop is \textit{too far}, ``That was a bit naughty, I hope we dont get in trouble'' - - \item[Citing unprovable statistics] ``Never seen something like this ...'', ``Don't tend to'' - - \item[Linking the purchase to something good] ``[sic] Every time you make a purchase, I get a meal'' - - \item[Scarcity] ``Which one is most popular?'', ``Not many left [becasue the mines are being shut]'', ``We've got callers holding already'', ``I'm going to give you a chance now to buy before we price drop to get ahead of the crowds'' - - \item[Far too high to far too low] Shock value - \item[] -\end{description} - -\subsection{GFX Notes} - -\begin{description} - - \item[Product information] Top left of screen. Contains item number (for use when selecting the product over the phone. Also for internal use\footnote{Used to keep track of products on paperwork. Number is sometimes taken from the product itself (item code, batch nuber, etc).}), item rating, short item description and item variants (and those variants item code extentions). - - \item[Pricing, stock and remaining] Bottom left of sceen, sometimes connected to the bottom of ``Product information''. Contains quantity remaining, amount already sold, the current sale price, the current multi-pay options\footnote{Sometimes called ``Budget-pay'' or ``EZ Pay'' (abbriviated to EZ on paperwork).} and the cost of P\&P. - - \item[Contact information] Bottom, sometimes on a ``crawler''. Contains ``congratulation'' messages to recent buyers, names of people currently on hold, messages sent into the studio by viewers, recent announcements, upcoming announcements, information on how to order, phone number, website and the timer. - - \item[Upcoming programes] Bottom right of screen. Contains upcoming deals or shows, sometimes also contains the phone number. - -\end{description} - -There is also a particular rythm to how the GFX are unveiled. For the most part this is consistent across products, shows and stations. - -When the product is first presented, there is almost no information about it on screen (this is the ``Product information'' box above, but there is also no phone number and the lines are not yet ``open''). The host then introduces it and tells the viewers just how \textit{good} it is. This goes on for a while before the price is finally revealed. This initial price is massively inflated from the real price of the product. The host continues to sell, mentioning how they've got us (the viewer) an amazing deal. - -This is when the first price drop happens. - -\textit{Then} the phone lines finally open and the product begins to sell. - -At this point the host can continue dropping the price as far they feel is neccicary to sell as much of the product as is practical\footnote{The host is aware of how much of the product is in stock, a prefered sell price, a lowest viable sell price and whether the product will make a later apperance. If the product is making a later apperance, the host may choose not to sell out.}. - -As soon as the phone lines are opened, the number is to be kept on screen at all times, over cutaways or promo montages. - diff --git a/sections/threat.tex b/sections/threat.tex index 3a962de..0c1a936 100644 --- a/sections/threat.tex +++ b/sections/threat.tex @@ -2,14 +2,14 @@ \threat{} is a hugely pivotal part of the project and is incredibly large, thematically and physically. -I was orrigionally under the impression it would be a very simple pure-black shape that would show up more as a shadow than anything else. As is a ruuning theme throught the production, I then decided to make everything far more complicated. +I was originally under the impression it would be a very simple pure-black shape that would show up more as a shadow than anything else. As is a running theme thought the production, I then decided to make everything far more complicated. -Instead of a simple shape being tilted out into view, I devised a way that a further joint could be added to the ``creature'', allowing it to articlate out from behind the set wall. This was acheved with a large cirular wheel on a loose top joint coupled to the base with a peice of metal wire. This ment that when the ``body'' was tilted forward, the length from the top wheel to the base would become longer, turning the wheel and extending the ``arm'' outwards. +Instead of a simple shape being tilted out into view, I devised a way that a further joint could be added to the ``creature'', allowing it to articulate out from behind the set wall. This was achieved with a large circular wheel on a loose top joint coupled to the base with a piece of metal wire. This meant that when the ``body'' was tilted forward, the length from the top wheel to the base would become longer, turning the wheel and extending the ``arm'' outwards. -Working out the diameter of this wheel and the position on the base where the metal wire would be attached turned out to be a farely difficult but satisfying maths problem to solve, reminicant of mechanics problems which seemed to so often be called ``useless'' in the ``ouside world''. +Working out the diameter of this wheel and the position on the base where the metal wire would be attached turned out to be a fairly difficult but satisfying maths problem to solve, reminiscent of mechanics problems which seemed to so often be called ``useless'' in the ``outside world''. -The front facing peices where made from 6mm thick MDF from a 8x4' sheet. The mechanical parts where all wooden and made from materials I was able to scavenge, or already had on-hand. Lengths of 2x1" and peices of 12mm thick plywood where used as the structure of the form and the wheel at the top axel. The hinges where large screws each with a wooden block on the end acting as a nut. All moving parts where greesed up to ensure nothing would seesze up. +The front facing pieces where made from 6mm thick MDF from a 8x4' sheet. The mechanical parts where all wooden and made from materials I was able to scavenge, or already had on-hand. Lengths of 2x1" and pieces of 12mm thick plywood where used as the structure of the form and the wheel at the top axle. The hinges where large screws each with a wooden block on the end acting as a nut. All moving parts where greased up to ensure nothing would seize up. -All front facing peices and edges where painted with around 10 coats of a mix of chalkboard paint and course sawdust, as reccomended by many hobby-astronomers for painting the insides of telescopes to prevent light spillage (\ref{CLOUDYNIGHTS}). This was, in my opinion, not successfull at all. And I would be better off having just used conventional black paint along with spending more time on producing the desired effect with lighting. This can be fixed in the edit, but it would have been far more satisfying to have no, in heinsight, obvious mistakes made. +All front facing pieces and edges where painted with around 10 coats of a mix of chalkboard paint and course sawdust, as recommended by many \href{https://www.cloudynights.com/topic/573011-cant-afford-vantablack}{hobby-astronomers} for painting the insides of telescopes to prevent light spillage. This was, in my opinion, not successfully at all. And I would be better off having just used conventional black paint along with spending more time on producing the desired effect with lighting. This can be fixed in the edit, but it would have been far more satisfying to have no, in hindsight, obvious mistakes made. Other than this the mechanism worked perfect in testing and in practice. You can see an isolated video of its action here: \url{https://youtu.be/_7AUzQt0ewQ}. diff --git a/sections/twitch.tex b/sections/twitch.tex index 535f717..eb8ee10 100644 --- a/sections/twitch.tex +++ b/sections/twitch.tex @@ -2,10 +2,16 @@ In the process of building the extended GFX and Documentation systems, I have been free to use my own standards and open, free\footnote{Not \textit{free} as in gratis, even though much of it is, but \textit{free} as in \textit{freedom}.}, technology. Until now. -Using Twitch's platform and tools was slow, repetative, tedious and overencumbered with slow loading times and confusing documentation that changed at least twice during the development of the extensions. The actual function and look of the extensions was simple and quick, fun, even. Getting the extensions functional with Twitch's system was not. The reason for this is the totally practical sandboxing and review process that one has to go through that enusures that the platform can stay safe. This means that inline JS will not function (to prevent XSS), all external domains must be approved and no iframes can be used. All of this is included in the docs, but most is unclear or without practical advice. On top of this, the extension review team seemed to be under the impression that the ``products'' I was selling where real, purchasable, products and not enigmattic one-offs. There was a multi-week back-and-forth ending in an email (the third in a row) that told me I could not sell real products. That was on the morning of the production. Furthermore, the orrigional plan was to have mobile extensions for each of these (exactly the same as the generic extensions but available on mobile). Unfortunately this would have had to comply with Apples app store policies as well as Twitch's, meaning I would have had to add a privacy policy. At this point I was looking to simplify the review process so completely removed the mobile extension. +Using Twitch's platform and tools was slow, repetitive, tedious and over-encumbered with slow loading times and confusing documentation that changed at least twice during the development of the extensions. The actual function and look of the extensions was simple and quick, fun, even. Getting the extensions functional with Twitch's system was not. The reason for this is the totally practical sand-boxing and review process that one has to go through that ensures that the platform can stay safe. This means that inline JS will not function (to prevent XSS), all external domains must be approved and no iframes can be used. All of this is included in the docs, but most is unclear or without practical advice. On top of this, the extension review team seemed to be under the impression that the ``products'' I was selling where real, purchasable, products and not enigmatic one-offs. There was a multi-week back-and-forth ending in an email (the third in a row) that told me I could not sell real products. That was on the morning of the production. Furthermore, the original plan was to have mobile extensions for each of these (exactly the same as the generic extensions but available on mobile). Unfortunately this would have had to comply with Apples app store policies as well as Twitch's, meaning I would have had to add a privacy policy. At this point I was looking to simplify the review process so completely removed the mobile extension. The actual construction of the extensions was simple. Because of limitations in the size and shape of the extensions, I decided to create 2 different ones, one to display a photo of the products as well as its name, and one to display the price of the product along with a ``buy'' button (a constant source of worry for the extension review team who did not seem to even notice that it is almost completely non-functional). -The ``buy'' button would send a GET request to one of the GFX system API endpoints (\url{https://shopping.ozva.co.uk/api/buy}) which would register only the timestamp of the purchase and display it on a graph for the gallery team (\textit{Purchases over last 10 minutes} \url{https://shopping.ozva.co.uk/chart}). There was also an addition endpoint for getting all the purchase data from the entire uptime of the server, allowing better data-processing after-the-fact. This request is little more than a poke and does not take the user anywhere or do anything on the front-end of the extension. +The ``buy'' button would send a GET request to one of the GFX system API endpoints (\url{https://shopping.ozva.co.uk/api/buy}) which would register only the timestamp of the purchase and display it on a graph for the gallery team (\textit{Purchases over last 10 minutes} \url{https://shopping.ozva.co.uk/chart}). There was also an addition endpoint for getting all the purchase data from the entire up-time of the server, allowing better data-processing after-the-fact. This request is little more than a poke and does not take the user anywhere or do anything on the front-end of the extension. -Ideally this purchase system would be built better, with more data passed over, the names of the buyers potentially fed back into the system to be displayed on screen. This is possible, but requires far more hoops to jump through on the Twich review side of things. I may save it for future development. +\begin{figure} + \centering + \fbox{\includegraphics[width=0.7\textwidth]{extensions}} + \caption{The Twitch extensions} +\end{figure} + +Ideally this purchase system would be built better, with more data passed over, the names of the buyers potentially fed back into the system to be displayed on screen. This is possible, but requires far more hoops to jump through on the Twitch review side of things. I may save it for future development.