Thanks for listening

2023-ongoing

Thanks for Listening is a live coding performance, a process created by a body, cables, a midi device, a microphone, a sound card, Sonic Pi, speakers, memories,desires, discomforts and vulnerability.

The urgency that nourished this project were questions such as: How do we embody gender by the ways we use our voices? How gender binary categorises bodies depending on their vocal frequency behaviour? How sound production and instruments when located in cis-heteronormative spaces potentially amplify biases? Or how can they strengthen reparative processes for those bodies marked by gender?

In this performance, I position my body as an extension of sound and sound technology. I create voice through my phonatory system, which gets modulated in controllable and uncontrollable ways. A midi controller which receives data from a live coding software is pitching, stretching and looping the voice through knobs, faders and buttons.

Performace at Iterations 2023
do i reach you?
image source: Iterations 2023 live stream
#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 inseid 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 to not 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 ot 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 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
    
Sonic pi code documentation