User:Mitsa/Final presentation

From XPUB & Lens-Based wiki

First Year

Si16

Personal reflection

Photo 2022-03-26 16-15-02.jpg

In the SI16 I co-produced the project "...And I wish that your question has been answered". I also participated in the writing of the Manifesto of and the Terms of service of the publication. In the project I worked on the functions Respell, Stitch and Reveal, which are based on the Replace Python function. I was occupied by the urge to understand how the choice of specific words inside a text can shape our ideologies. In that sense I proposed to use the three functions on the political speeches of Mark Rutte and Kiriakos Mitsotakis, prime ministers of Netherlands and Greece, about the pushbacks on the EU borders. As a result, we came out with an interface where a user can interchange specific words of these 2 speeches with others words, characters or blankets in order to disrupt and question the meaning of the original texts.

...and I wish that your question has been answered

About

This text is a transcribed excerpt from the Press Conference that followed the meeting between the Greek Prime Minister Kyriakos Mitsotakis and the Dutch Prime Minister Mark Rutte on November the 9th, 2021 in Athens. During the Q&A, the Dutch reporter Ingeborg Beugel asked Mitsotakis for clarity and honesty referring to pushbacks which Greek border guards keep committing towards refugees, while the Greek Government systematically conceals such violence. She continued by asking Mark Rutte what the political stance of the Netherlands towards refugees' relocation and Mitsotakis's policy would be.

The choice of this text as our source material has different reasons. First of all, we were interested in how language can produce categories and shape identities: how does wording create precise borders between the "us" and the "them"? Our second step would be reflecting on text processing strategies through which a speech or a narration can be recontextualised and reclaimed. By replacing or taking out words of a discourse, and thus making some parts of it interchangeable, we tried to highlight how its phrasing is never neutral, but always a choice led by a particular purpose.

We decided to work on this text as the Press Conference took place at the moment we were developing our research, and as we were really interested on the distinctive rhetoric strategies that Beugel, Mitsotakis and Rutte choose for voicing their goals. It is clear that the reporter uses an emotional and provocative tone to address Mitsotakis' politics, which challenges his composure to a point where he can not keep it anymore, while when talking to Rutte, her speech is more calm and detached. In response to her question, both Prime Ministers refuse responsibility of their actions: they use a rather managerial and pre-designed language to neutralize the reporter's provocation while at the same time praising the generosity and the efforts of their countries. In particular, Mitsotakis denies any of Beugel's accusations and declares them as unsupported assumptions which is a mere demonstration of power. Alongside, Rutte uses a colder and more restrained language to rationalize the EU and the Greek Government's choices: While shifting the responsibilities for refugee protection, he actually justifies the crimes that are committed within the EU borders as an inevitable "tough, but fair, policy".

Concerning our project, it is an act of persistent resistance. We created three functions to facilitate an iterative process of refusal towards the two Prime Ministers' answers and any of their possible versions. We invite you to play as much as you want with these functions and create your own answers as counter-reaction to Mark Rutte's final sentence: "So this is my answer and I wish that your question has been answered". Every new answer, every new iteration, can be submitted to our Archive of Repetitive Answers. Although they will never be good enough, nor shall they be accepted as exhaustive, we consider the modified answers as a trigger for a never-ending dialogue.

Research

Articles about pushbacks in the EU borders, that influenced the editing of the functions.

The pad that we analysed the corpora, and therefore formed our strategies

https://pad.xpub.nl/p/mitsotakis_mitsa?fbclid=IwAR3WcyBVOBwpeMPYVLpxyKnwO67M3C5PgzFoKBFlD3B3EF8rD2DdaxQGYH0

Functions

Respell

   Respell receives as input a text as a string type, and substitute all the occurrences of a targeted word with a replacement as a string type chosen by the user.
   from nltk.tokenize import word_tokenize
   # text, target, and replacement are string types
   def respell(text, target, replacement):
       target = target.lower()
       txt = word_tokenize(text)
       new = []
       for w in txt:
           if w == target:
               w = replacement
               new = new + [w]
           elif w == target[0:1].upper() + target[1:]:
               w = replacement[0:1].upper() + replacement[1:] 
              new = new + [w]
           elif w == target.upper():
               w = replacement.upper()
               new = new + [w]
           else:
               new = new + [w]
       text = ' '.join(new)
       final= text.replace(' .','.').replace(' ,',',').replace(' :',':').replace(' ;',';').replace('< ','<').replace(' >','>').replace(' / ','/').replace('& ','&')
       return final
   This function in itself could be understood as a filter to process and alter texts. By targeting specific words and replacing them, either for another word, for specific characters or for blank spaces, the user of the tool can intervene inside a text. One could break down the meaning of a text or create new narrative meanings by exposing its structure, taking out or highlighting specific and meaningful words and detaching such text from its original context. This tool offers a broad spectrum of possibilities in which it can be used, from a very political and subversive use, to a more playful and poetic one.


Stitch

   Stitch receives as input a text as a string type, and replaces all the occurrences of a target word, with a character or a word that is repeated as many times as the length of the target.
   from nltk.tokenize import word_tokenize
   # text, target, and replacement are string types
   def stich(text, target, replacement):
       target = target.lower()
       txt = word_tokenize(text)
       new = []
       for w in txt:
           if w == target:
               w = len(w)*replacement
               new = new + [w]
           elif w == target[0].upper() + target[1:]:
               w = len(w)*replacement
               new = new + [w]
           elif w== target.upper():
               w = len(w)*replacement 
               new = new + [w]
           else:
               new = new + [w]
       text = ' '.join(new)
       final= text.replace(' .','.').replace(' ,',',').replace(' :',':').replace(' ;',';').replace('< ','<').replace(' >','>').replace(' / ','/').replace('& ','&')
       return final
   This function in itself could be understood as a filter to process and alter texts. By targeting specific words and stitching them, with a character or a word that is repeated as many times as the length of the target , the user of the tool can intervene inside a text. One could break down the meaning of a text or create new narrative meanings by exposing its structure, taking out or highlighting specific and meaningful words and detaching such text from its original context. This tool offers a broad spectrum of possibilities in which it can be used, from a very political and subversive use, to a more playful and poetic one.

Reveal

    Reveal takes a text as string input and deletes all its characters except the input list of words.
   def reveal(text,group):
       txt = word_tokenize(text)
       txt_linebr = []
       for token in txt:
           if token == '<':
               continue
           elif token == 'br/':
               token=
               txt_linebr.append(token)
           elif token == '>':
               continue
           else:
               txt_linebr.append(token)   
       new = []
       for w in txt_linebr:
           if w==:
               new = new + [w]
           elif w not in group:
               w = len(w) * ' '
               new = new + [w]
           elif w in group :
               new = new + [w]
       text = ' '.join(new)
       final= text.replace(' .','.').replace(' ,',',').replace(' :',':').replace(' ;',';').replace('< ','<').replace(' >','>').replace(' / ','/').replace('& ','&')
       return final
   This function in itself could be understood as a filter to process and alter texts. By chosing to keeping specific words of a text and deleting all the others, the user of the tool can intervene inside a text. One could break down the meaning of a text or create new narrative meanings by exposing its structure, taking out or highlighting specific and meaningful words and detaching such text from its original context. This tool offers a broad spectrum of possibilities in which it can be used, from a very political and subversive use, to a more playful and poetic one.

Online publication of the interface

Interface form.jpg

...And I wish that your question has been answered interface

Zines for the launch event with an answer made by us

277212447 677150646857991 854869514669607839 n.jpg

We created several zines for the launch event. Each zine had consisted of the original question and the original answer + an answer that we each one of us created through our functions

Si17

Personal reflection

On the Special 17 I put my attention on how can we work as group with more care. How can we have our individual needs met, while still we meet the production deadlines. I have a lot to learn on how to express my needs and how I can contribute in a non-violent group communication. In terms of the publication, I co-developed and co-created the production of the contents. Mostly, I edited the collective inputs, while I participated in the overall process of designing and outsourcing our material.

Si18

Personal Reflection

In this Special Issue I participated as a listener, a contributor and a caretaker. It was a rich experience to unplug from the screen and listen every week to each new release. The discussion after each launch was rich. We tryed to unpack what we collectively listened to and raise questions. As a contributor I tried to discuss about the dynamics of a public space, while being on a public space, to jam outside with bottles, to create pop national anthems, to experiment with spoken word and the detuning of my voice and my guitar, to field record and edit, to try a diffractive reading of a text and a video, to jam at Paris, to reflect on the releases. I did all these alone or by being part of a duo or a trio. As a caretaker, I put together the first release with Chae and curated the 4th release with Miriam and Erica. Finally I curated and performed the diffractive dj set with Alex and Supi.

Second Year

Thesis

talking about gender through my story as a guitarist: guitar as prosthetic, guitar as regulatory device

-guitar as regulation through cis heteronomrative spaces
-the fretless as prosthesis

voice coming from the inside voice negotiating with the outside

-timbre as a genuine, personal intimate sound quality
-to voice as fingerprints that urge tor reach
-what about those voices that have learnt to be out of reach?

trying to create our own rules that could possibly fit us

-process than outcome

Project

jams as safer space on action / parallel project, that influenced the graduation project

playing at re#sister radio

preparation: I refer analytically to that in the thesis File:Worm snippet.mp4


playing at VARIA

3 parts, impro.
finding the anchor point

Research Log

https://pzwiki.wdka.nl/mediadesign/Research_Log

voice feminisation and timbre

Resonance and anatomical space.png
Screen Shot 2023-02-22 at 14.40.35.png

Process for making a live coding process around vocal timbre, embodiment, gender inscriptions

first prototypes with sonic pi that influenced the final

Here are tryouts with small vocal excerpts I recorded. I tried to loop steadily and not, to pitch, to stretch. The excerpts were part of the thesis

#first time that i enter my own breath on the code
#it is moving, deep, is like listening to my old self, or to the air, there is a level of intimacy
#that i cannot put into words
define :mybreath do
  with_fx :reverb do
    use_bpm rrand(5,100)
    live_loop :breath do
      sample "C:/Users/luzza/Desktop/samples/my breath2.wav", amp: rrand(1,3), rate: rrand(0, 2), pan: rrand(-0.8,0.8)
      sleep 1
    end
  end
end
define :myshortbreath do
  use_bpm rrand(100,1000)
  with_fx :gverb do
    live_loop :breath do
      sample "C:/Users/luzza/Desktop/samples/my breath.wav", amp: rrand(0.5,1), rate: rrand(-2, 2), krush: rrand(10,40)
      sleep 1
    end
  end
end
#layering and repeating the voice changing the point of repetion in time
define :staticloop do
  #with_fx :reverb do
  live_loop :sentence do
    use_bpm 350
    sample "C:/Users/luzza/Desktop/samples/sentence.wav"
    sleep 5
  end
  #end
end
#a mechanic, static repetition that interfers with the clarity of the message
#it's interesting how agressive it becomes quickly
#but then it is static, like a machine that is working
define :fluctuatingloop do
  #with_fx :reverb do
  live_loop :sentence do
    use_bpm rrand(5,1000)
    sample "C:/Users/luzza/Desktop/samples/sentence.wav", amp: 2
    sleep 5
  end
  #end
end
#a fluctuating, repetition
#it opens up interpretation, the changing rythme says something about a structure?
#i hear how it is to be like a wall, when the one voice bumps into each other
#and i feel the gap when there is a big stop between the one voice to the other
#not really agressive
#stretching my vocal excerpt taking about a moment of misgendering
define :exposure do
  #with_fx :reverb do
  live_loop :sentence do
    #use_bpm rrand(10,1000)
    with_fx :pitch_shift, pitch_dis: 0.001, pitch: 2  do
      sample "C:/Users/luzza/Desktop/samples/misgender.wav", amp: 2
      sleep 10
    end
  end
end
#i feel exposed.
#i am not sure how it works.
#like if it works with the stretching or if it is like too obvious
#it feels better that the voices don't overlap with each other because then it becomes too dramatic
#the weird element of fast and super slow. can feel sometime really econographic with a speach
#because this has been probably overused in satire, it creates an akward childish result
#when my real voice appears, it's like i am exposed... like we understand for whom we talk about
#like the masks are falling
define :masc do
  #with_fx :reverb do
  live_loop :sentence do
    #use_bpm rrand(10,1000)
    with_fx :pitch_shift, pitch_dis: 0.001, pitch: rrand(-15,5)  do
      sample "C:/Users/luzza/Desktop/samples/misgender.wav", amp: 2, krush: 10
      sleep 10
    end
  end
end

Creating an instrument through a midi device, cables, sonic pi, a sound card, speakers, my laptop, my voice, my body

messy pad with notes from where I chose the text for the performance

This pad got created through a series of improvisation I had with the instrument.
I would listen to the soundscape created by the my voice and the different types of stretches and pitching and respond.
I tried also to implement thoughts that evolved throughout my thesis, but in a more oral, here and now way.

https://pad.xpub.nl/p/processing_the_perfomance_i_am_a_hipster

representative recording

This recording is one of the many impros I had during the process of creating the performance.
The "final" thing will probably sound like that.
I have some anchor points as a score that I try to reach throughout the playing.
https://hub.xpub.nl/soupboat/~mitsa/XPUB2/final%20assesment/modulate%20me_mp3.mp3

348892059 762039705608890 2674713938661389281 n.jpg
Systima.jpg
348388734 781959893602281 3564596384308805498 n.jpg
Lampoun ta chains.jpg

Finalised Script for the live coding performance in sonic pi

#heyy can you hear me?
#do I reach you?
#do I wanna reach you?
#do you want to be reached by me?
#I am so happy that you are here tonight
#I am so happy that you came here to listen to me
#Thank you, thank you so much
#I would like to be bigger
#i don't know what to do with all this energy
#i was taught to be scared of it
#I am a small creature
#Trapped inside a eh eh ehe eh eh eh... body
#What do you think?
#What do you think of me?
#They wanted to put my head into the ground
#They didn't want us! They don't want us!
#I can stay in the corner and observe
#I can stay I can open my ears and listen
#We have learnt to hide
#It's hard not to be recognised
#It's like you don't exist, but you exist hahaha
#You have a body
#I like to adapt A LOT that's what i do in life
#I just adapt my voice
#What ? What ? Whaat? What the fuck is this?
#STOP STOP STOOOOP
#What do you do usually? Do you adapt? Do you resist? Do you fight?
#DO you fly? Do you stay??
#i want to be regulated
#I want to be filtered
#How do you filter what you hear?
#FILTER MEEEEE
#but did this even happen this way?
#Did she say this did she love me or i don't know
#I wanna go in the corner and suck my thumb
#do i need to be stronger?
#do i need to be oversized?
#do i need to shrink?
#do i need to be something more?
#do i need to be something less?
#do i need to stand out? maybe
#is that ok?
#i am sorry, don't leave me
#thank you i love you
#thank you that you came here to listen to me
#adding amplitude level
with_fx :level do |le|
#adding low pass filter
with_fx :lpf, mix: 0 do |l|
 #adding pitch shifter
 with_fx :pitch_shift, pitch_dis: 0.001 do |p|
 	#adding echo
   with_fx :echo, pre_mix: 0, decay: 2 do |e|
     #adding reverb
     with_fx :reverb, pre_mix: 1, room: 1 do |r|
     	#for latency prevention
       use_real_time
       #inserting the microphone to the system
       live_audio :mic
       
       #a live_loop for mapping the midi faders, buttons and knobs with the above effects
       live_loop :process do
         #for latency prevention
         use_real_time
         #the variables cc and val are syncronised with the midi machine i use
         cc, val = sync "/midi:5-_zero_mkii_0:1/control_change"
         # the numbers that cc corresponds with are the different faders, knobs buttons
         if cc == 23
           control le, amp: val / 127.0
         end
         if cc == 24
           if cc > 63.5
             control p, pitch: (val - 63.5) / 1.7
           else
             control p, pitch: (-val + 63.5) / 6
           end
         end
         if cc == 25
           control e, pre_mix: val / 127
         end
         if cc == 26
           control e, phase: val * 0.1 + 0.000001
         end
         if cc == 73
           control e, decay: val / 5 + 0.000001
         end
         if cc == 75
           control r, pre_mix: val / 127
         end
         if cc == 70
           control r, room: val / 127
         end
         if cc == 20
           control l, cutoff: val
         end
         if cc == 14
           control l, mix: val /127.0
         end
         #create a buffer of 10 seconds
         if cc == 77
           with_fx :record, buffer: [:voice,10] do
             print "record recording"
             use_real_time
             live_audio :mic1
           end
         end
         #play the buffer
         if cc == 95
           print "play recording"
           sample buffer[:voice,10]
         end
         #small stretch of the buffer
         if cc == 7
           control sample buffer[:voice,10], rate: val * 0.1 + 0.000001
         end
         #bigger stretch of the buffer
         if cc == 10
           control sample buffer[:voice,10], rate: val + 0.000001
         end
         #reverse stretch of the buffer
         if cc == 22
           control sample buffer[:voice,10], rate: -val * 0.1 + 0.000001
         end
         #create a buffer of 100 seconds
         if cc == 82
           with_fx :record, buffer: [:voice2,100] do
             print "record recording"
             use_real_time
             live_audio :mic1
           end
         end
         #play the buffer
         if cc == 83
           print "play recording"
           sample buffer[:voice2,100]
         end
         #small stretch of the buffer
         if cc == 74
           control sample buffer[:voice2,100], rate: val * 0.1 + 0.000001
         end
         #bigger stretch of the buffer
         if cc == 71
           control sample buffer[:voice2,100], rate: val + 0.000001
         end
         #reverse stretch of the buffer
         if cc == 85
           control sample buffer[:voice2,100], rate: -val * 0.1 + 0.000001
         end
       end
     end
   end
 end

end
end

#creating a second channel for my voice. this one is for the moments that i want the signal created by my vocal chords to be as not altered as possible
with_fx :level do |le3|
with_fx :pitch_shift, pitch_dis: 0.001 do |p1|
 live_loop :process2 do
   use_real_time
   cc, val = sync "/midi:5-_zero_mkii_0:1/control_change"
   if cc == 72
     control le3, amp: val / 127.0
   end
   if cc == 92 and val == 0
     use_real_time
     live_audio :mic3
   end
   if cc == 92 and val == 127
     kill live_audio :mic3
   end
   if cc == 19
     if cc > 63.5
       control p1, pitch: (val - 63.5) / 1.7
     else
       control p1, pitch: (-val + 63.5) / 6
     end
   end
 end
end 
end
349532238 235712785882753 2078455287603136880 n.jpg