The collaboration is getting to the point that we have some tangible results. My teammate, Jenn, and I are going to make a video that utilizes our pointillism perspective for instruction. Jenn sent me an outline of how our video should flow. It is amazing that she and I are so like-minded in our perspectives. We come from different disciplines. However, our take on art principles and science overlap and are in lock and step. That has contributed to making this SciArt experience a joy.
Today I had another experience of affirmation. I was lecturing about fluids and pressure to the students. I paused and asked a question that required that they understood something I talked about in a previous lecture some time ago. One of my students to my surprise answered the question before I even finished stating it. She then expelled, “I get it!” I am finally connecting the dots!” She was referencing my analogy about Physics and Pointillism. I was so excited because this makes the second time one of my students referenced my analogy of understanding concepts presented in class and making connections to them across several chapters from a pointillism perspective.
That being said, our outline for our video is taking shape. It will be good to have a product that I can see, even in its raw form. I imagine it becomes real at that point. I wanted to get something positive out of this experience. As mentioned before, I think my partner and I are on to something special and unique. More to come soon. Hopefully, we will change some perspectives on instruction. As always, I ask, what do you see?
This week I was inspired by a Twitter thread and a bus interaction to visualize the powerful algorithms that lie at the root of most fiberwork through sound. While commuting home, I noticed the knitter next to me forming a beautiful purple-blue tube out of alternating stockinette and garter spirals. She gave me the pattern: cast on 63 stitches, then knit 8, purl 8, knit 8, purl 8, bind off eventually, and you are left with a beautiful cowl. It’s not very complicated. But vertically, it looks intimidating to the casual knitter - with each row, the 63-stitch pattern shifts over by one, giving a spiraling effect. In combinatorial mathematics, this is known as a circular shift.
I used Python, a code language in which I still identify as a beginner, to create my matrix and apply a circular shift to each row (I started out with 20 rows - I wasn’t sure how long I wanted my mathematical cowl to be). Knowing that I would eventually turn the pattern into sound, I used frequency values as the numbers in the array (“stitches”), with A440 representing knit stitches and B representing purl stitches, and alternated stitches with zero values to allow the sound representation to achieve a texture of repeating notes (otherwise, it would have sounded as a single tone).
The basic circular shift matrix looked like this - it’s turned on its side, here, for reasons explained below:
Once I created the basic algorithm for shifting each row of the pattern, I needed to turn it on its side. There are many ways to turn numbers into a sound pattern, but my favorite for tabular data has recently been Melosynth, a python module available through Github. Melosynth performs one basic function: given a two-column .csv with time stamps (in seconds) and corresponding frequency values (in Hz), it outputs a simple sine wave. So, I needed to turn rows in my array into individual columns, convert them into audio, and layer them together in post-processing.
First, though, I had to perform a crucial transformation to the data to meet an artistic goal. One way of coding a knitting pattern from its source algorithm would be to construct the basic function and allow the computer to generate the final product. But this method removes the human creator, and eventual listeners, from the act of creating. The craft of hand-knitting represents so much more than the item generated. It evokes time, labor, and love (and for some of us, blood, sweat, tears, and tiny cat hairs). I wanted to bring listeners into this experience. So, I took a generative approach to the data - “knitting” the first row, stitch by stitch, alone, then adding the second row on top, and moving row by row to immerse listeners in the act of knitting a circular shift pattern, like so (visualize this as circular, and iterative, with the first row not repeating but acting as a base for the next):
To do this, I added null values to the beginning of each matrix row (n+1)*63 (the number of stitches in each row). Then I rotated the matrix, took each column and gave it time increments, and exported them to wav using Melosynth, after which I compiled the rows using Audacity. Have a listen!