Project: Sigilaunch

What It Does

Sigilaunch simulates launching a sigil into space after manifesting it unto visible appearance via incantation. It is similar to SigilChant but features a different graphical interface with several new animations, as well as a smoothing algorithm for the audio input. A numeric counter displays the sigil’s percentage of visible manifestation. When the sigil is completely manifested, it shoots off into the distant sky. There is a new, custom-made slider for selecting the audio input threshold, and a pointer that moves automatically to show how the actual (smoothed) input level compares to the threshold.

Although you can interact with Sigilaunch while sitting in front of your computer screen and keyboard, if you are able to, try playing it in full-screen mode on a big-screen television or projected onto a vertical surface, and standing before the image, speak into a headset microphone.

How It Works

Sigilaunch has a Controller sprite that receives audio data from the microphone and smooths it (v.i.). Like SigilChant2, Sigilaunch has a slider that sets an audio threshold variable (threshVal), but instead of using Scratch’s built-in slider interface, I made my own slider integrated into the screen (assembled from three separate sprites: SliderTicks, SliderThumb, and SliderPointer). The threshVal is set by mapping the x position of the SliderThumb sprite to a value between 0 and 100; you can click on SliderThumb and drag it left or right to decease or increase the threshold. One of the Controller‘s variables, loud, is set to 1 if the smoothed average is greater than threshVal, or 0 otherwise. The SliderPointer sprite automatically glides left and right according to the smoothed sound input value. If loud = 1 then the pointer is green; otherwise it is red.

When loud = 1, the Sigil sprite’s ghost effect decreases, causing the sprite to appear (just like in SigilChant). If loud = 0, the ghost effect changes in the opposite direction, causing the sigil to disappear.

The sprites NumDisp001, NumDisp010, and NumDisp100 display the current value of the Controller‘s manifestPercent variable, which is calculated from the Sigil‘s ghostVal variable—the ghostVal ranges from 100 (complete transparency) to 0 (complete opacity), so the percentage of opacity is 100 − ghostVal.

When the percentage reaches 100, the Controller broadcasts the message launchSigil, which tells the Sigil sprite to run the script that animates the launch. The Sigil sprite’s size decreases as its vertical position moves up the screen, giving the appearance that it is flying away, and finally it changes from the sigil costume to the starburst costume and fades away using the ghost effect.

The Message sprite displays text messages on screen that instruct the operator or inform her about the state of the project while it is running.

The Controller‘s smoothing algorithm is inspired by ones I have used for the Arduino microncontroller. Essentially, the last ten values read by the loudness sensing block are saved to a list (smoothReadings) and then a moving average is computed (smoothAvg). The smoothNumReadings variable determines how many loudness values are read in order to be averaged. The more readings, the less reactionary the output but the longer the output takes to respond to the input. You can see what I mean by changing the value of smoothNumReadings and observing how the SliderPointer sprite responds.

Make It Better

  • As with previous projects, it is trivial to change the sigil costume to one of your own design. You can either redraw the costume using Scratch’s built-in editor or import an image from elsewhere.
  • The speed of the sigil manifestation is pretty fast. You can slow it down by changing the ghostVal variable by a value smaller than -1, e.g., try -0.1 or -0.01. You could also change the value by which ghostVal increases when loud = 0, or you can leave that as is so the sigil is slow to appear but rapidly disappears again in the absence of sufficiently loud input.
  • There are no sounds played in this project but you could add some, e.g., a whooshing sound as the sigil flies off into cyberspace, or thunder after the sigil changes to a starburst. You could replace the text messages with a voice that says, “launch imminent,” &c.
  • Implement a launch countdown that plays between the time when the sigil is 100% visibly manifested and when it launches into cyberspace.