Weaving TidalCycles patterns at a TC-1 loom

During our recent project residency at Textiles Zentrum Haslach, we had the opportunity to work at the TC-1 looms there. As an experiment I used my TidalCycles software, which is normally used to create music, to create a pattern of ups and downs for controlling the loom. TidalCycles takes a pattern-based approach to music making, and so this was quite straightforward; I simply made binary patterns, of black and white, and made sure the results fit to a grid.

stack [superimpose id tabby,
       superimpose id $ superimpose id $ superimpose (rev . ( (3/12) <~) ) $ every 2 (rev . ( (2/12) <~)) $ superimpose (rev . (0.25 <~)) $ superimpose ( (1/4) <~) $ "[<black white> <white black>]*3",
       tabby,
       superimpose id $ superimpose (rev . (0.25 <~)) $ every 2 (rev) $ superimpose (rev . (0.25 <~)) $ superimpose (iter 4) $ superimpose ( (1/4) <~) $ "[<black white> <white black>]*3",
       tabby,
       iter 6 $ superimpose rev $ superimpose ( (1/6) <~) $ superimpose ( (1/12) <~) $ "[black black white white black white]*2",
       tabby,
       superimpose id $ superimpose (rev . (0.25 <~)) $ every 2 (rev) $ superimpose (rev . (0.25 <~)) $ superimpose (iter 4) $ superimpose ( (1/4) <~) $ "[<black white> <white black>]*3",
       tabby,
       superimpose id $ superimpose id $ superimpose (rev . ( (3/12) <~)) $ every 2 (rev . ( (2/12) <~)) $ superimpose (rev . (0.25 <~)) $ superimpose ((1/4) <~) $ "[<black white> <white black>]*3",
       superimpose id tabby
]

After some experimentation, searching around for interesting binary patterns, the above code is what I ended up with, which created the image below.

I did some ‘cut and pasting’ to create the above, the code shown describes only the top and bottom thirds of the image. I unfortunately didn’t save the pattern for the middle third. The above image was fed directly into the loom, creating the fabric that you see to the right.

The TC-1 is still a handloom, in that the shuttle is passed by hand, but a foot pedal tells the controller to move to the next line of the image to create the next ‘shed’ – pattern of ups and downs. As the warp threads were black, and the weft I chose was a light colour with an additional metallic-effect thread, you see this up and down structure clearly in the result. This is a very ‘direct’ way of making patterns; in the future we want to work with warp and weft threads of differing colours, to create more surprising results. Unfortunately changing the warp is very time consuming.

I did make one more image to be woven, which you can see below. The top third(ish) shows a sequence of six patterns, going downwards, separated by a few wefts of plain weave. I wanted to show a series of small edits to the same piece of code, showing a more ‘live’ process where I made an edit, looked at the results, and then decided upon my next edit. The middle section shows the same but without the tabby separating the six patterns. The bottom half of the image is a mirror image of the top half.

I didn’t have time to actually weave this, but hope to do this soon (let me know if you have a TC-1 or TC-2 loom near Sheffield that I can use!). Here is the code for it, including the plain weave separators:

stack [
 superimpose id $ fast 32 $ superimpose (invert <$>) $ superimpose (3 <~) $ superimpose (2 <~) $ chunk 4 (invert <$>) $ iter 4 "[black white white white black white]"
 , superimpose id $ fast 16 "[white black,black white]*12" -- 4
 , superimpose id $ fast 32 $ superimpose (invert <$>) $ superimpose (3 <~) $ superimpose (2 <~) $ chunk 4 (invert <$>) $ iter 4 "[white black white white black white]"
 , superimpose id $ fast 16 "[white black,black white]*12" -- 4
 , superimpose id $ fast 32 $ superimpose (invert <$>) $ superimpose (3 <~) $ superimpose (1 <~) $ chunk 4 (invert <$>) $ iter 4 "[white black white white black white]"
 , superimpose id $ fast 16 "[white black,black white]*12" -- 4
 , superimpose id $ fast 32 $ superimpose (invert <$>) $ superimpose (3 <~) $ superimpose (1 <~) $ chunk 4 (invert <$>) $ iter 3 "[white black white white black white]"
 , superimpose id $ fast 16 "[white black,black white]*12" -- 4
 , superimpose id $ fast 32 $ superimpose (invert <$>) $ superimpose ("<3 4>" <~) $ superimpose (1 <~) $ chunk 4 (invert <$>) $ iter 3 "[white black white white black white]"
 , superimpose id $ fast 16 "[white black,black white]*12" -- 4
 , superimpose id $ fast 32 $ superimpose (invert <$>) $ superimpose ("<3 4 2>" <~) $ superimpose (1 <~) $ chunk 2 (invert <$>) $ iter 3 "[white black white white black white]" -- 16
 ]

In summary, I was surprised at how much fun this was, especially the weaving part, where I got in a bit of a single-minded trance. Others commented on how they disliked the TC-1, because it was inaccurate, slow and ‘distanced’ yourself from the weave because you didn’t create the shed directly. But this really felt like making techno music – you don’t use acoustic instruments directly in the same way, but for me this puts more emphasis on feeling the sound — or in this case the fabric – itself as it emerges from the machine. I just love the process of putting numbers in and getting something very physical out, as part of a creative feedback loop.


You may also like...

1 Response

  1. 08/03/2018

    […] McLean, A., 2018. “Weaving TidalCycles patterns at a TC-1 loom”. Penelope. Accessed online 5 March 2018: https://penelope.hypotheses.org/630 […]

Leave a Reply

Your email address will not be published. Required fields are marked *