From 082b92887877ee5d2082efeb03d1022c960b79b1 Mon Sep 17 00:00:00 2001 From: Angeliki Date: Thu, 30 Apr 2020 02:40:24 -0500 Subject: [PATCH] fixed issue for php call and run command for audio editing --- .gitignore | 6 +- radioactive (copy).php | 278 +++++++++ radioactive.php | 69 ++- scripts/cgi-bin/echo.cgi | 22 + scripts/cgi-bin/echo.py | 19 + scripts/cgi-bin/pysndfx/__init__.py | 4 + .../__pycache__/__init__.cpython-36.pyc | Bin 0 -> 223 bytes .../pysndfx/__pycache__/dsp.cpython-36.pyc | Bin 0 -> 16403 bytes .../__pycache__/sndfiles.cpython-36.pyc | Bin 0 -> 4091 bytes scripts/cgi-bin/pysndfx/dsp.py | 543 ++++++++++++++++++ scripts/cgi-bin/pysndfx/sndfiles.py | 99 ++++ scripts/echo.py | 27 - scripts/{pydub.py => mediainfo.py} | 0 scripts/test.py | 4 + scripts/uploadMp3_5.php | 19 +- styles/radioactive.css | 297 +++++++--- test.html | 12 + texts-radioactive/about-popup.txt | 4 + texts-radioactive/about.txt | 22 +- texts-radioactive/instructions.txt | 14 +- texts-radioactive/voice_echo.txt | 30 +- texts-radioactive/voice_lowpass.txt | 4 +- 22 files changed, 1316 insertions(+), 157 deletions(-) create mode 100755 radioactive (copy).php create mode 100755 scripts/cgi-bin/echo.cgi create mode 100755 scripts/cgi-bin/echo.py create mode 100644 scripts/cgi-bin/pysndfx/__init__.py create mode 100644 scripts/cgi-bin/pysndfx/__pycache__/__init__.cpython-36.pyc create mode 100644 scripts/cgi-bin/pysndfx/__pycache__/dsp.cpython-36.pyc create mode 100644 scripts/cgi-bin/pysndfx/__pycache__/sndfiles.cpython-36.pyc create mode 100644 scripts/cgi-bin/pysndfx/dsp.py create mode 100644 scripts/cgi-bin/pysndfx/sndfiles.py delete mode 100644 scripts/echo.py rename scripts/{pydub.py => mediainfo.py} (100%) create mode 100644 scripts/test.py create mode 100644 test.html create mode 100755 texts-radioactive/about-popup.txt diff --git a/.gitignore b/.gitignore index 3dbbc60..4ffe520 100755 --- a/.gitignore +++ b/.gitignore @@ -4,5 +4,7 @@ texts/thesis/drafts/ uploads/ audio/ images/ - - +scripts/*.wav +scripts/*.mp3 +scripts/python-audio-effects/*.wav +scripts/python-audio-effects/*.mp3 diff --git a/radioactive (copy).php b/radioactive (copy).php new file mode 100755 index 0000000..86af70d --- /dev/null +++ b/radioactive (copy).php @@ -0,0 +1,278 @@ + + + + + + + + +Radioactive Monstrosities + + + + + + +

Radio-active
Monstrosities
+ +

+ + + + + + + + + + '; + foreach($items as $item) { + $url=substr($item['file'],3); + if (strpos($item['type'], 'collective') !== false){ + echo '
'; + echo ' '; + echo $item['name']; + echo '

'; + } + } + echo ''; + echo ''; + echo ''; + echo ''; + ?> + + + + + + + + + + + + '; + include 'texts-radioactive/voice_collective.txt'; + echo ''; + echo ''; + echo ''; + echo ''; + ?> + +
./collective_voice
The speaker's voice is channeled through multiple voices and in this case through distorted mediated voices of the same person
./echo_voice
A voice that is more distant from the speaker, sounding like being +in an outer space inside the medium. This voice resembles sounds from an online call
./lowpith_voice
A voice that sounds more male because of lowering its pitch
./lowpass_voice
A voice that sounds like "shrill" if it is in high frequencies. +This script doesn't allow high frequencies to pass through
'; + foreach($items as $item) { + $url=substr($item['file'],3); + exec("~/virtualenvs/radioactive/bin/python3 scripts/echo.py").$url; + if (strpos($item['type'], 'echo') !== false){ + echo '
'; + echo ' '; + echo $item['name']; + echo '

'; + } + } + echo '
'; + foreach($items as $item) { + $url=substr($item['file'],3); + if (strpos($item['type'], 'lowpitch') !== false){ + echo '
'; + echo ' '; + echo $item['name']; + echo '

'; + } + } + echo '
'; + foreach($items as $item) { + $url=substr($item['file'],3); + if (strpos($item['type'], 'lowpass') !== false){ + echo '
'; + echo ' '; + echo $item['name']; + echo '

'; + } + } + echo '
+
+
+ + +

+        
+ +
+
+
+
+
+ + + + +
+
+[Angeliki Diakrousi, Radioactive Monstrosities, 2020. Rotterdam]. +Copyleft: This is a free work, you can copy, distribute, and modify it under the terms of the Free Art License +http://artlibre.org/licence/lal/en/ +You can choose the type of lisence you want +If you want your full name to appear in the contributors send me your name here: angeliki@genderchangers.org +The copyrights of the voices belong to you. I ask you to use them in the performance radio-active monstrosities where I will narrate ...Only for this recording. You can choose to include your name or not.Your voice recordings will be used and credited accordingly +
+ + + + +
+
+ +

+
+ +

+ +git +
'; + include 'texts-radioactive/voice_echo.txt'; + echo ''; + include 'texts-radioactive/voice_lowpitch.txt'; + echo ''; + include 'texts-radioactive/voice_lowpass.txt'; + echo '
+ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/radioactive.php b/radioactive.php index db5f59c..5ad5420 100755 --- a/radioactive.php +++ b/radioactive.php @@ -1,3 +1,4 @@ + @@ -21,14 +22,26 @@ include 'texts-radioactive/female_monstrosity.txt'; ?> + + + + + + + + - +
- - @@ -90,6 +103,8 @@ This script doesn't allow high frequencies to pass through ?> + +
./collective_voice
The speaker's voice is channeled through multiple voices and in this case through distorted mediated voices of the same person
./echo_voice
A voice that is more distant from the speaker, sounding like being +
./echo_voice
A voice that is more distant from the speaker, sounding like being in an outer space inside the medium. This voice resembles sounds from an online call
./lowpith_voice
A voice that sounds more male because of lowering its pitch
./lowpass_voice
A voice that sounds like "shrill" if it is in high frequencies. +
./lowpass_voice
A voice that sounds like "shrill" if it is in high frequencies. This script doesn't allow high frequencies to pass through
@@ -112,12 +127,15 @@ This script doesn't allow high frequencies to pass through
[Angeliki Diakrousi, Radioactive Monstrosities, 2020. Rotterdam]. -Copyleft: This is a free work, you can copy, distribute, and modify it under the terms of the Free Art License -http://artlibre.org/licence/lal/en/ -You can choose the type of lisence you want -If you want your full name to appear in the contributors send me your name here: angeliki@genderchangers.org -The copyrights of the voices belong to you. I ask you to use them in the performance radio-active monstrosities where I will narrate ...Only for this recording. You can choose to include your name or not.Your voice recordings will be used and credited accordingly +Copyleft: This is a free work, you can copy, distribute, and modify it under the terms of the Free Art License
+If you want your full name to appear in the contributors list send me your name here: angeliki@genderchangers.org. The voices files will be part of this platform and future performances. + +
+ + + +
- - - - - - - @@ -254,7 +263,6 @@ exec("~/virtualenvs/radioactive/bin/python3 scripts/echo.py").$name; function upload(){ var name = prompt('Enter a title or/and your name','Unnamed clip'); var type = prompt('Enter type of distortion. Choose between collective,echo,lowpitch,lowpass','No Type'); - var license = prompt('Enter a license. Choose between collective,echo,lowpitch,lowpass','No Type'); var dataURL = document.getElementById("dataUrlcontainer").innerHTML; $.ajax({ @@ -264,10 +272,27 @@ exec("~/virtualenvs/radioactive/bin/python3 scripts/echo.py").$name; base64: dataURL, name: name, type: type - } + }, + success: function(data) + { + // ? :) + alert (data); + + + }, + error : function(data) + { + alert("ajax error, json: " + data); + + //for (var i = 0, l = json.length; i < l; ++i) + //{ + // alert (json[i]); + //} + } + }).done(function(o) { console.log('saved'); - document.getElementById("saved_msg").innerHTML = "Uploaded!! Refresh and see your voice message in the list below :<"; + document.getElementById("saved_msg").innerHTML = "Uploaded!! Your voice will be distorted and re-uploaded in a few hours :<"; }); @@ -275,6 +300,10 @@ exec("~/virtualenvs/radioactive/bin/python3 scripts/echo.py").$name; + diff --git a/scripts/cgi-bin/echo.cgi b/scripts/cgi-bin/echo.cgi new file mode 100755 index 0000000..5a507b4 --- /dev/null +++ b/scripts/cgi-bin/echo.cgi @@ -0,0 +1,22 @@ +#!/home/lain/virtualenvs/radioactive/bin/python3 +import cgi,cgitb +cgitb.enable() +import pydub +from pydub import AudioSegment +from pysndfx import AudioEffectsChain +import sys + +# print (sys.argv[1]) +mp3_audio = AudioSegment.from_file("../../uploads/5/nainai_echo.mp3", format="mp3") +# mp3_audio = AudioSegment.from_file('page_echo.mp3', format="mp3") +mp3_audio.export("../../uploads/5/nainai_echo.wav", format="wav") + +infile = '../../uploads/5/nainai_echo.wav' +outfile = '../../uploads/5/nainai_echo_output.wav' + + +AudioEffectsChain().reverb()(infile, outfile) + +form = cgi.FieldStorage() + + diff --git a/scripts/cgi-bin/echo.py b/scripts/cgi-bin/echo.py new file mode 100755 index 0000000..039d50a --- /dev/null +++ b/scripts/cgi-bin/echo.py @@ -0,0 +1,19 @@ +#! /home/lain/virtualenvs/radioactive/bin/python3 +# Import the package and create an audio effects chain function. +import pydub +from pydub import AudioSegment +from pysndfx import AudioEffectsChain +import sys + +# print (sys.argv[1]) +mp3_audio = AudioSegment.from_file(sys.argv[1], format="mp3") +# mp3_audio = AudioSegment.from_file('page_echo.mp3', format="mp3") +mp3_audio.export("temp.wav", format="wav") + +infile = 'temp.wav' + +# infile = sys.argv[1] +outfile = sys.argv[1]+'.wav' + + +AudioEffectsChain().reverb()(infile, outfile) diff --git a/scripts/cgi-bin/pysndfx/__init__.py b/scripts/cgi-bin/pysndfx/__init__.py new file mode 100644 index 0000000..6c96a25 --- /dev/null +++ b/scripts/cgi-bin/pysndfx/__init__.py @@ -0,0 +1,4 @@ +# coding=utf-8 +from .dsp import AudioEffectsChain + +__all__ = ['AudioEffectsChain'] diff --git a/scripts/cgi-bin/pysndfx/__pycache__/__init__.cpython-36.pyc b/scripts/cgi-bin/pysndfx/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7984ee0012a5b18ae14bf65134a14bb7ef70f647 GIT binary patch literal 223 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 literal 0 HcmV?d00001 diff --git a/scripts/cgi-bin/pysndfx/__pycache__/sndfiles.cpython-36.pyc b/scripts/cgi-bin/pysndfx/__pycache__/sndfiles.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6b2b6814f33c576849da7891b2326ff143342e41 GIT binary patch literal 4091 zcmbuCOOG4J5yz+J#o_R=+?BK|B~C&oaSR@)bu2+Z9LJF&OU@b&y|4}m7$bvO_HcIy za%R%g^zIVWi2{7mr^qQ^Cg-59Ir%FH2#|mEaQF}i`4JLb>|!^2x~qO&RlL_|`2YRa zKmPW#W*Gl5HeN3J57F{}LvVw$vC%I+S)Xa$?3?&B$JWH|+Y_hnuwvZpSE9Y_@>vtL-=K~REGC$6)A%o5K%Prq6M|*UTAV|VV6a>l-f=SA!W9rv~ z;P2CLyd1H!IEzFBtLU9>h&p}eLEJ#gZ3vIqrv7HjtQJP-mA?g1n)PdA$T;KX3$Jf| zZP+j_tYoRiQyk+olo#5*1HF6v%2_sAD*p?FG$flF3v*;HV0X^u?8ta-N^4|ub8a3Q z3&srTNOx43!*|?%X-ZFe+<9q@ste;w^SSlhmj2vYV3nXYCt25ya(lB{o?f-P-MHNy zv}bp|m?lY_oVVj-n6?M$WD+L4{XzSk{3(3sWN8j(n##>3Pp49UMnZHN%E_m&n>fH` zwe^%cPS4LHp&TBaP0s}#1(Pnu(G@9S12MXxV+AySFAmAyRwbgGqbv)4KZkU4g_6G z@iqxTGuVHRpT_KBA3P)`6sao`!}D^Gmc68q$9_G`;C0yM81@cwIn4kkD%j zn$PgXHZ*fKvH*h3*~sChbfE*6I|eYYB#_ZS*ytG}fB+!;B@i_YgwqpbEjV0~*Gt#e z3)kPr(9-n@k0*lMERG@6{*&J0&p$rteex{$)1%Wj9O4@3TPH0k`z{HuS;pPvu_=wxi#{pq(ONm#a+^?)iK;}}OBOBkkjsvYIXf?M znxjdyS0t7Yx&?&4#fln2ODF3DsvQPj-TwO{m%F$E*jBXhQbjeec6a@=+^^}ggGZH+Z zHQOX~Bp^{5KqoHp#R=N75Uw`_eX|?b?@$Q0){*&5pi&Yt~*fL)^t9<1wk#m>G zRo;}XyaKVOc)&)W(3tFmLwQj$NI6R7ZzJSOvJ%;h2(dL6M8@j}UXk(rLkDg8uk@5< z=pemwTUDq6rw!hLuCEM2-1ICH=^)B;U4Adi@`UP!^>t8{;W!N?{y!F-2ls_G1m!zb zMHTj$F73q;>27*9!k;t!Kd31Gb+Jb=T&D^h$TS>68+V0M0hWf<`>^;o_7TIc@}EO^ fDAhgIGCj*>F7qwh^sQE<<+qxxddq3Kt%Lsomku 1: + outsound = outsound.reshape((channels_out, int(len(outsound) / channels_out)), order='F') + if isinstance(outfile, FileBufferOutput): + outfile.write(outsound) + return outsound diff --git a/scripts/cgi-bin/pysndfx/sndfiles.py b/scripts/cgi-bin/pysndfx/sndfiles.py new file mode 100644 index 0000000..b0b25f1 --- /dev/null +++ b/scripts/cgi-bin/pysndfx/sndfiles.py @@ -0,0 +1,99 @@ +import logging +import shlex +import wave +from subprocess import PIPE, Popen + +import numpy as np + +ENCODINGS_MAPPING = { + np.int16: 's16', + np.float32: 'f32', + np.float64: 'f64', +} + +PIPE_CHAR = '-' + +logger = logging.getLogger('pysndfx') + + +class SoxInput(object): + pipe = '-' + + def __init__(self): + self.cmd_prefix = None + + +class FilePathInput(SoxInput): + def __init__(self, filepath): + super(FilePathInput, self).__init__() + info_cmd = 'sox --i -c ' + filepath + logger.debug("Running info command : %s" % info_cmd) + stdout, stderr = Popen(shlex.split(info_cmd, posix=False), stdout=PIPE, stderr=PIPE).communicate() + self.channels = int(stdout) + self.cmd_prefix = filepath + + +class FileBufferInput(SoxInput): + def __init__(self, fp): + super(FileBufferInput, self).__init__() + wave_file = wave.open(fp, mode='rb') # wave.open() seems to support only 16bit encodings + self.channels = wave_file.getnchannels() + self.data = np.frombuffer(wave_file.readframes(wave_file.getnframes()), dtype=np.int16) + self.cmd_prefix = ' '.join([ + '-t s16', # int16 encoding by default + '-r ' + str(wave_file.getframerate()), + '-c ' + str(self.channels), + PIPE_CHAR, + ]) + + +class NumpyArrayInput(SoxInput): + def __init__(self, snd_array, rate): + super(NumpyArrayInput, self).__init__() + self.channels = snd_array.ndim + self.cmd_prefix = ' '.join([ + '-t ' + ENCODINGS_MAPPING[snd_array.dtype.type], + '-r ' + str(rate), + '-c ' + str(self.channels), + PIPE_CHAR, + ]) + + +class SoxOutput(object): + def __init__(self): + self.cmd_suffix = None + + +class FilePathOutput(SoxOutput): + def __init__(self, filepath, samplerate, channels): + super(FilePathOutput, self).__init__() + self.cmd_suffix = ' '.join(['-r ' + str(samplerate), '-c ' + str(channels), filepath]) + + +class FileBufferOutput(SoxOutput): + def __init__(self, fp, samplerate, channels): + super(FileBufferOutput, self).__init__() + self.writer = wave.open(fp, mode='wb') + self.writer.setnchannels(channels) + self.writer.setframerate(samplerate) + self.writer.setsampwidth(2) + self.cmd_suffix = ' '.join([ + '-t ' + ENCODINGS_MAPPING[np.int16], + '-r ' + str(samplerate), + '-c ' + str(channels), + PIPE_CHAR, + ]) + + def write(self, data): + self.writer.writeframesraw(data) + + +class NumpyArrayOutput(SoxOutput): + def __init__(self, encoding, samplerate, channels): + super(NumpyArrayOutput, self).__init__() + self.cmd_suffix = ' '.join([ + '-t ' + ENCODINGS_MAPPING[encoding], + '-r ' + str(samplerate), + '-c ' + str(channels), + PIPE_CHAR, + ]) diff --git a/scripts/echo.py b/scripts/echo.py deleted file mode 100644 index f3d71b9..0000000 --- a/scripts/echo.py +++ /dev/null @@ -1,27 +0,0 @@ -# Import the package and create an audio effects chain function. -from pydub import AudioSegment -from pysndfx import AudioEffectsChain -import sys - - -mp3_audio = AudioSegment.from_file(sys.argv[1], format="mp3") -mp3_audio.export("../uploads/5/page_echo.wav", format="wav") - - -infile = '../uploads/5/page_echo.wav' -outfile = '../uploads/5/out.wav' - -# Apply phaser and reverb directly to an audio file. -#fx(infile, outfile) -AudioEffectsChain().reverb()(infile, outfile) - -# Or, apply the effects directly to a ndarray. -#from librosa import load -#y, sr = load(infile, sr=None) -#y = fx(y) - -# Apply the effects and return the results as a ndarray. -#y = fx(infile) - -# Apply the effects to a ndarray but store the resulting audio to disk. -#fx(x, outfile) diff --git a/scripts/pydub.py b/scripts/mediainfo.py similarity index 100% rename from scripts/pydub.py rename to scripts/mediainfo.py diff --git a/scripts/test.py b/scripts/test.py new file mode 100644 index 0000000..3b26529 --- /dev/null +++ b/scripts/test.py @@ -0,0 +1,4 @@ +import sys + +sys.argv[1]='well' +print (a) diff --git a/scripts/uploadMp3_5.php b/scripts/uploadMp3_5.php index d9ee824..e93db8b 100755 --- a/scripts/uploadMp3_5.php +++ b/scripts/uploadMp3_5.php @@ -1,5 +1,9 @@ $_POST['name'],'type'=>$_POST['type'],'date'=>date("d/m/Y"), 'file'=>$file); @@ -17,4 +34,4 @@ $handle=fopen('../uploads/5/index.jsons','a'); fwrite($handle,json_encode($item)."\n"); fclose($handle); print $success ? $file : 'Unable to save the file.'; -?> +?> diff --git a/styles/radioactive.css b/styles/radioactive.css index eba08e3..e53ebef 100755 --- a/styles/radioactive.css +++ b/styles/radioactive.css @@ -1,14 +1,3 @@ -/*@media only screen and (min-width: 900px) {*/ -body { - background: #F6F5F5; - /*background: #fcf4f6;*/ - font-family: "Old Standard TT"; - font-size: 95%; - line-height: 1.3; - letter-spacing: 1px; - padding: 20px; - /*transform: scale(1.0);*/ -} section { display: block; @@ -66,22 +55,6 @@ a img { font-weight: bold; } -h1 { - font-size: 150%; - font-style: italic; - text-align: center; - letter-spacing: 5px; - color:black; - animation: color-change 1s infinite; - animation-name: example; - animation-duration: 4s; - animation-play-state: running; -} - -@keyframes example { - from {color: #FF00FF;} - to {color:purple;} -} h2 { @@ -154,12 +127,6 @@ h3 { text-align: center; } -table, th, td { - vertical-align: top; - text-align: left; - border-collapse: separate; - padding:20px; -} button { width: 100px; @@ -201,7 +168,7 @@ button { }*/ .audio-mini { - width: 50px; + width: 100%; } .dropbtn { @@ -367,31 +334,10 @@ margin-bottom:4rem; min-width:5500% !important; } -.tooltip-wrap .tooltip-content-right { - display: none; - position: absolute; - z-index: 1; - top: 100%; - /*bottom: 100%;*/ - left: 1.5rem; - /*right: 100%;*/ - padding: 0.6em; - background-color: white; - border: none; - text-align: left; - min-width: 20em; - border: 1px solid black; - font-size: 13pt !important; - font-weight: normal !important; - font-style: normal !important; - text-align: left !important; - letter-spacing: 0px !important; - word-wrap: break-word; - box-shadow: 5px 5px rgba(255,0,255,0.5); -} + .fa-file { -width:100rem !important; +width:80rem !important; } .tooltip-wrap .tooltip-content-up { @@ -535,7 +481,7 @@ width:100rem !important; .topleft { float: right; cursor: pointer; - font-size: 100%; + font-size: 2rem; } .container .rowcircle { @@ -552,20 +498,6 @@ width:100rem !important; width: 100% !important; } -.draggable { - box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.2); - background-color: white; - cursor: all-scroll; - position: absolute !important; - width: 15%; - display: inline; -/* transform: scale(20);*/ - /*min-height: 100px;*/ - background-image: url("../images/resize-icon.png"); - background-position: 100% 100%; - background-size: 30px 30px; - background-repeat: no-repeat; -} .draggable-circle { box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.2); @@ -740,7 +672,6 @@ li, #angela, #judith, #laurie, #dana, #katalin { width: 20%; /*height: 100px;*/ - } .ciclegraph .circle:hover { @@ -750,21 +681,224 @@ li, #angela, #judith, #laurie, #dana, #katalin { /*}*/ + + +@media screen and (min-width: 300px){ + body { + background: #F6F5F5; + /*background: #fcf4f6;*/ + font-family: "Old Standard TT"; + font-size: 1em; + line-height: 1.3; + letter-spacing: 1px; + padding: 1em; +} + +h1 { + font-size: 2em; + font-style: italic; + text-align: center; + letter-spacing: 5px; + color:black; + animation: color-change 1s infinite; + animation-name: example; + animation-duration: 4s; + animation-play-state: running; +} + +@keyframes example { +/* from {color: #FF00FF;} + to {color:purple;}*/ + + 0% {color: #FF00FF;} + 25% {color: #ff00bf;} + 50% {color: #ffd6e0;} + 75% {color: #fedf2e;} + 100% {color:#e600e6;} +} + + .draggable { + box-shadow: 5px 5px rgba(255,0,255,0.5); + background-color: white; + cursor: all-scroll; + position: absolute !important; + display: inline; +/* transform: scale(20);*/ + /*min-height: 100px;*/ + border: none; + text-align: left; + max-width: 60%; + border: 1px solid black; + padding: 0.8em; + z-index: 1; + font-size: 1.2em; +} + +.tooltip-wrap .tooltip-content-right { + display: none; + position: absolute; + z-index: 1; + /*top: 100%;*/ + /*bottom: 100%;*/ + left: 1.5rem; + /*right: 100%;*/ + top: 20%; + padding: 0.6em; + background-color: white; + border: none; + text-align: left; + min-width: 20em; + border: 1px solid black; + font-weight: normal !important; + font-style: normal !important; + text-align: left !important; + letter-spacing: 0px !important; + word-wrap: break-word; + box-shadow: 5px 5px rgba(255,0,255,0.5); +} + +/*radioactive */ +.radioactive td { + overflow: auto; + max-width: 2%; + border: 1px solid black; + padding: 2%; + vertical-align: top; +} + +table, th { + vertical-align: top; + text-align: left; + border-collapse: separate; + padding:20px; +} + + +/*.radioactive { + width: 100% !important; +}*/ + +.radioactive audio{ + width: 40%; +} + +.radioactive button, .recorder input { + background-color: #F6F5F5; + border: 1px solid black; + padding: 20px 20px; + text-align: center; + text-decoration: none; + display: inline-block; + margin: 2px 2px; + cursor: pointer; + width:300px; + font-size: 1em; + border-radius: 25px; +} + +.popup { + background-color: #fedf2e; +} + +} + +@media screen and (min-width: 1000px){ + body { + background: #F6F5F5; + /*background: #fcf4f6;*/ + font-family: "Old Standard TT"; + font-size: 1.4em; + line-height: 1.3; + letter-spacing: 1px; + padding: 20px; +} + +h1 { + font-size: 2em; + font-style: italic; + text-align: center; + letter-spacing: 5px; + color:black; + animation: color-change 1s infinite; + animation-name: example; + animation-duration: 4s; + animation-play-state: running; +} + +@keyframes example { +/* from {color: #FF00FF;} + to {color:purple;}*/ + + 0% {color: #FF00FF;} + 25% {color: #ff00bf;} + 50% {color: #ffd6e0;} + 75% {color: #fedf2e;} + 100% {color:#e600e6;} +} + + .draggable { + box-shadow: 5px 5px rgba(255,0,255,0.5); + background-color: white; + cursor: all-scroll; + position: absolute !important; + display: inline; +/* transform: scale(20);*/ + /*min-height: 100px;*/ + border: none; + text-align: left; + max-width: 50%; + border: 1px solid black; + padding: 0.8em; + z-index: 1; + font-size: 1.2em; +} + +.tooltip-wrap .tooltip-content-right { + display: none; + position: absolute; + z-index: 1; + /*top: 100%;*/ + /*bottom: 100%;*/ + left: 1.5rem; + /*right: 100%;*/ + top: 20%; + padding: 0.6em; + background-color: white; + border: none; + text-align: left; + min-width: 20em; + border: 1px solid black; + font-weight: normal !important; + font-style: normal !important; + text-align: left !important; + letter-spacing: 0px !important; + word-wrap: break-word; + box-shadow: 5px 5px rgba(255,0,255,0.5); +} + /*radioactive */ .radioactive td { overflow: auto; - width: 20%; + max-width: 20%; height: 200px; border: 1px solid black; padding: 2%; + vertical-align: top; } -.radioactive { - width: 100% !important; +table, th { + vertical-align: top; + text-align: left; + border-collapse: separate; + padding:20px; } +/*.radioactive { + width: 100% !important; +}*/ + .radioactive audio{ - width: 70px; + width: 40%; } .radioactive button, .recorder input { @@ -777,6 +911,13 @@ li, #angela, #judith, #laurie, #dana, #katalin { margin: 2px 2px; cursor: pointer; width:300px; + font-size: 1em; border-radius: 25px; - font-size: 100%; } + +.popup { + background-color: #fedf2e; +} + + +} \ No newline at end of file diff --git a/test.html b/test.html new file mode 100644 index 0000000..67eac28 --- /dev/null +++ b/test.html @@ -0,0 +1,12 @@ + + + +demo web file python3.2 + + +
+ + +
+ + diff --git a/texts-radioactive/about-popup.txt b/texts-radioactive/about-popup.txt new file mode 100755 index 0000000..f5201d6 --- /dev/null +++ b/texts-radioactive/about-popup.txt @@ -0,0 +1,4 @@ +This web-audio interface was made by Angeliki Diakrousi. It challenges the ways we are listening to certain female sounding voices that are perceived as inappropriate - because of the quality of their sound, their gender, the medium's distortions but also stereotypes and collective memories that they often awake. These are verbal expressions that have been associated with forms of monstrosity since ancient times. Contributors are invited to record themselves with their own microphones, expressing their thoughts and choose a type of distortion. They are invited to participate in forming new imaginaries around a technologically mediated collective voice that through its 'monstrosity' can reveal other forms of speech that embrace their damage. They can choose what type of mediated voice they want to do that. A series of writings reveals stories and theories on the topic. The interface allows any voice to be recorded and saved in the artist's server where the website is hosted. There they get distorted through several scripts. Then the new sounds are categorized, depending on the chosen distortion, and published back in the platform. They can be played at the same time or in any desired order. The interface was first made for the performance "Radioactive Monstrosities" as part of the event NL_CL #2 : FLESH hosted by iii and Netherlands Coding Live and its conceptualization is an ongoing process related to my graduation research Let's Amplify Unspeakable Things and previous performances

+Credits: the platform is inspired by Vocable Code http://siusoon.net/vocable-code/. Regarding the references I would like to thank Alice, Gert, Joana for sharing material with me, as well Amy for her publication made for the workshop Eclectic Speech. Thanks to the people that contributed and donated their voices.

+ diff --git a/texts-radioactive/about.txt b/texts-radioactive/about.txt index c8a44c5..a97105c 100755 --- a/texts-radioactive/about.txt +++ b/texts-radioactive/about.txt @@ -1,19 +1,5 @@ -This web-audio interface challenges the ways we are listening to certain female sounding voices that are perceived as inappropriate - because of the quality of their sound, their gender, the medium's distortions but also stereotypes and collective memories that they often awake. These are verbal expressions that have been associated with forms of monstrosity since ancient times. Contributors are invited to record themselves with their own microphones, expressing their thoughts and choose a type of distortion. They are invited to participate in forming new imaginaries around a technologically mediated collective voice that through its 'monstrosity' can reveal other forms of speech that embrace their damage. They can choose what type of mediated voice they want to do that. A series of writings reveals stories and theories on the topic. The interface allows any voice to be recorded and saved in the artist's server where the website is hosted. There they get distorted through several scripts. Then the new sounds are categorized, depending on the chosen distortion, and published back in the platform. They can be played at the same time or in any desired order.

+This web-audio interface was made by Angeliki Diakrousi. It challenges the ways we are listening to certain female sounding voices that are perceived as inappropriate - because of the quality of their sound, their gender, the medium's distortions but also stereotypes and collective memories that they often awake. These are verbal expressions that have been associated with forms of monstrosity since ancient times. Contributors are invited to record themselves with their own microphones, expressing their thoughts and choose a type of distortion. They are invited to participate in forming new imaginaries around a technologically mediated collective voice that through its 'monstrosity' can reveal other forms of speech that embrace their damage. They can choose what type of mediated voice they want to do that. A series of writings reveals stories and theories on the topic. The interface allows any voice to be recorded and saved in the artist's server where the website is hosted. There they get distorted through several scripts. Then the new sounds are categorized, depending on the chosen distortion, and published back in the platform. They can be played at the same time or in any desired order. The interface was first made for the performance "Radioactive Monstrosities" as part of the event NL_CL #2 : FLESH hosted by iii and Netherlands Coding Live and its conceptualization is an ongoing process related to my graduation research Let's Amplify Unspeakable Things and previous performances

+Credits: the platform is inspired by Vocable Code http://siusoon.net/vocable-code/. Regarding the references I would like to thank Alice, Gert, Joana for sharing material with me, as well Amy for her publication made for the workshop Eclectic Speech. Thanks to the people that contributed and donated their voices.

+

Some more thoughts: Women's voices are often going through censorship and critique when they appear in public. They have to be adjusted and filtered in order to be heard and avoid silencing. This is extended to the technological apparatus that channel their voices, like radio. The listeners then, are hearing a distorted voice that expresses needs and opinions of its physical proprietor and it goes beyond its control. In this work I focus on the sound of that voice that is asking to become part of public dialogues. In the platform I refer to several examples that such voices have been through some kind of distortion. But it is not only women's voices that are going through these filters. It is also the queer, any feminine sounding voice, the collective, the resistant, the black and so many more. The examples I refer to have attracted my attention and are triggering aspects of my personal identity. This platform intends to welcome any case of medium's transformations that certain voices are going through as an extension of the society's censorship. I want to open the dialogue to more communities and people that have noticed an exclusion through mediated speech platforms. I invite you to reclaim these distortions that characterize excluded voices. Their distortion becomes their quality that is also their damage, through which needs, opinions, desires are expressed. I made a set of tools that distort the voice in ways that are borrowed from the examples I have encountered in my research. I invite you to choose the voice that you think reflects your personal needs, damages or you want to talk through it and become part of this dialogue and share your own experience or your imaginations about this voice. Sometimes this mediated voice is safer as it camouflages the actual vocal identity, and become anonymous.

-n: Women apologize or prove that what they say make sense [ref to text of zapatista]. - -Women's voices are often going through censorship and critique when they appear in public. They have to be adjusted and filtered in order to be heard and avoid silencing. This is extended to the technological apparatus/the medium used to channel their voices, like the radio. The listeners then, are hearing a distorted voice that expresses needs and opinions of its physical proprietor and it goes beyond its control. In this work I focus on the sound of that voice that is asking to become part of public dialogues. In the platform I refer to several examples that such voices have been through some distortion. But it is not only women's voices that are going through these filters. It is also the queer, any feminine sounding voice, the collective, the resistant, the black. The examples I refer to have attracted my attention and are situated in my personal identity. This platform intends to welcome any case of medium's transformations that certain voices are going through as an extension of the society's censorship. I want to open the dialogue to more communities and people that have noticed an exclusion through mediated speech platforms. - -I invite you to reclaim these distortions that characterize excluded voices. Their distortion becomes their quality that is also their damage, through which needs and rights are expressed [text of queer damaging]. I made a set of tools that distort the voice in ways borrowed from the examples I have encountered in my research. I invite you to choose the voice that you think reflects your personal needs, damages or you want to talk through it and become part of this dialogue and share your own experience or your imaginations about this voice. Sometimes this mediated voice is safer as it camouflages the actual identity of our voice, and become anonymous, like the example of witness voices. Categorize the distortions -The interface was first made for the performance "Radioactive Monstrosities" as part of the event NL_CL #2 : FLESH hosted by iii and Netherlands Coding Live and its conceptualization is an ongoing process related to my graduation research Let's Amplify Unspeakable Things and previous performances - -Credits: the platform is inspired by Vocable Code http://siusoon.net/vocable-code/. Regarding the references thanks Alice, Gert, Joana for sharing with me, as well Amy for her publication made for the workshop Eclectic Speech. - - -My fascination started through these perfoamnces that I want to open through them with a possibility in the future to become a more open dialogue. - -(Technology is seamlessly related to socity and its dynamics amd biases) - -I will narrate/describe what it is about and I ask you to contribute by adding your comment - -Women have to transform their voices or train more in order to be heard. They are 'monsters' anyway diff --git a/texts-radioactive/instructions.txt b/texts-radioactive/instructions.txt index 8a51e9c..acbc99a 100755 --- a/texts-radioactive/instructions.txt +++ b/texts-radioactive/instructions.txt @@ -1,9 +1,7 @@ Instructions:

-Press record
-Speak to the microphone
-Press stop
-Listen to it
-Press upload
-Type your name or nickname
-Choose the distortion
-Choose license
+*Press record and allow microphone share
+*Speak to the microphone for a couple of seconds (max size:1M). The texts may be a source of inspiration
+*Press stop and listen to it
+*Press upload
+*Type your name or nickname
+*Choose a type of distortion and license
diff --git a/texts-radioactive/voice_echo.txt b/texts-radioactive/voice_echo.txt index 7471392..b8a3240 100755 --- a/texts-radioactive/voice_echo.txt +++ b/texts-radioactive/voice_echo.txt @@ -1,4 +1,30 @@ -We often feel uncanny listening back to our voices through phones, video calls, voice messages. Imagine what a break through radio was when it became public and accessible to everyone. +We often feel uncanny listening back to our voices and their echoes through phones, video calls, voice messages. Imagine what a radical change radio brought in the experience for listening to each other, when it became public and accessible to everyone. I would like to think of echo in a more metaphorical sense, regarding the mediated female voices. I imagine a voice that has a special quality that creates the feeling that exists in different temporal spaces. I am thinking of gossip as an echo effect where messages are spread fast and collectively through a sequence of voices. Here an extract from a book of Silvia Federici:

+

+[1]**Gossiping and the Formation of a Female Viewpoint

+Gossip today designates informal talk, often damaging to those that are its object. It is mostly talk that draws its satisfaction from an irresponsible disparaging of others; it is circulation of information not intended for the public ear but capable of ruining people’s reputations, and it is unequivocally ‘women’s talk.’ +It is women who ‘gossip,’ presumably having nothing better to do and having less access to real knowledge and information and a structural inability to construct factually based, rational discourses. Thus, gossip is an integral part of the devaluation of women’s personality and work, especially domestic work, reputedly the ideal terrain on which this practice flourishes. +This conception of ‘gossip,’ as we have seen, emerged in a particular historical context. Viewed from the perspective of other cultural traditions, this ‘idle women’s talk’ would actually appear quite different. In many parts of the world, women have historically been seen as the weavers of memory—those who keep alive the voices of the past and the histories of the communities, who transmit them to the future generations and, in so doing, create a collective identity and profound sense of cohesion. They are also those who hand down acquired knowledges and wisdoms—concerning medical remedies, the problems of the heart, and the understanding of human behavior, starting with that of men. Labeling all this production of knowledge ‘gossip’ is part of the degradation of women—it is a continuation of the demonologists’ construction of the stereotypical woman as prone to malignity, envious of other people’s wealth and power, and ready to lend an ear to the Devil. It is in this way that women have been silenced and to this day excluded from many places where decisions are taken, deprived of the possibility of defining their own experience, and forced to cope with men’s misogynous or idealized portraits of them. But we are regaining our knowledge. As a woman recently put it in a meeting on the meaning of witchcraft, the magic is: “We know that we know.”**

-Federici on gossip and “The Transformation of Silence into Language and Action” by Audre Lorde \ No newline at end of file +In feminist movements the practice of speech and listening is very present. For many women it is difficult to express their inner thoughts, fears and opinions. These thoughts become internal voices that accumulate into anger and despair. These thoughts are becoming endless echoes of unrealized public speeches reverberating inside our bodies. In the text below, Audre Lorde speak with warmth and strength about turning this silence into language and action.

+ +

+**The Transformation of Silence into Language and Action[2]

+(...)In the cause of silence, each of us draws the face of her own fear — fear of contempt, of censure, or some judgment, or recognition, of challenge, of annihilation. But most of all, I think, we fear the visibility without which we cannot truly live. Within this country where racial difference creates a constant, if unspoken, distortion of vision, Black women have on one hand always been highly visible, and so, on the other hand, have been rendered invisible through the depersonalization of racism(...)

+Each of us is here now because in one way or another we share a commitment to language and to the power of language, and to the reclaiming of that language which has been made to work against us. In the transformation of silence into language and action, it is vitally necessary for each one of us to establish or examine her function in that transformation and to recognize her role as vital within that transformation. +For those of us who write, it is necessary to scrutinize not only the truth of what we speak, but the truth of that language by which we speak it. For others, it is to share and spread also those words that are meaningful to us. But primarily for us all, it is necessary to teach by living and speaking those truths which we believe and know beyond understanding. Because in this way alone we can survive, by taking part in a process of life that is creative and continuing, that is growth. +And it is never without fear — of visibility, of the harsh light of scrutiny and perhaps judgment, of pain, of death. But we have lived through all of those already, in silence, except death. And I remind myself all the time now that if I were to have been born mute, or had maintained an oath of silence my whole life long for safety, I would still have suffered, and I would still die. It is very good for establishing perspective. +And where the words of women are crying to be heard, we must each of us recognize our responsibility to seek those words out, to read them and share them and examine them in their pertinence to our lives. That we not hide behind the mockeries of separations that have been imposed upon us and which so often we accept as our own. For instance, “I can’t possibly teach Black women’s writing — their experience is so different from mine.” Yet how many years have you spent teaching Plato and Shakespeare and Proust? Or another, “She’s a white woman and what could she possibly have to say to me?” Or, “She’s a lesbian, what would my husband say, or my chairman?” Or again, “This woman writes of her sons and I have no children.” And all the other endless ways in which we rob ourselves of ourselves and each other. +We can learn to work and speak when we are afraid in the same way we have learned to work and speak when we are tired. For we have been socialized to respect fear more than our own needs for language and definition, and while we wait in silence for that final luxury of fearlessness, the weight of that silence will choke us. +The fact that we are here and that I speak these words is an attempt to break that silence and bridge some of those differences between us, for it is not difference which immobilizes us, but silence. And there are so many silences to be broken.**

+ +[1] The extracts in this text were collected by Amy Pickles in the publication for the workshop "Eclectic Speech", where I was invited to do a session called "Speaking to the machine".

+[2]Paper delivered at the Modern Language Association’s “Lesbian and Literature Panel,” Chicago, Illinois, December 28, 1977. First published in Sinister Wisdom 6 (1978) and The Cancer Journals (Spinsters, Ink, San Francisco, 1980). + + +

    +
  • Silvia Federici (2018) Witches, Witch-Hunting, and Women. Oakland, CA: Pm Press. +
  • +
  • Lorde, A. and Clarke, C. (2007) Sister Outsider: Essays and Speeches. Reprint edition. Berkeley, Calif: Crossing Press. +
  • +
diff --git a/texts-radioactive/voice_lowpass.txt b/texts-radioactive/voice_lowpass.txt index e3bd95d..c6fb997 100755 --- a/texts-radioactive/voice_lowpass.txt +++ b/texts-radioactive/voice_lowpass.txt @@ -1,9 +1,11 @@ -**TINA TALLON:. . . Newspapers and magazines repeatedly referred to women on air as “affected,” “stiff,” “forced,” and “unnatural.” . . . they asserted that women sounded “shrill,” “nasal,” and “distorted” on the radio, and claimed that women’s higher voices created technical problems.**

+**[1]TINA TALLON:. . . Newspapers and magazines repeatedly referred to women on air as “affected,” “stiff,” “forced,” and “unnatural.” . . . they asserted that women sounded “shrill,” “nasal,” and “distorted” on the radio, and claimed that women’s higher voices created technical problems.**

As Tina Tallon observes in 1927, the Federal Radio Commission decided to provide each station its own little 10000 hertz slice of bandwidth. So there's a segment . . . before you take the signal and modulate it into something that can be transferred . . . `{./radio-voice.sh}` in between stations known as the base band or the pre- modulated signal that had to be actually limited to 5000 hertz because amplitude modulation actually doubles the bandwidth of the signal. So initially they said, OK, we're gonna take all of our baseband signals and limit them to 5000 hertz. What that meant was all of the microphones and all of the equipment that people were using to record didn't need to go above 5000 hertz because none of that information would get transmitted.

**TINA TALLON: `{./lowpass.sh}`Steinberg’s experiments showed that the voiceband frequencies reduced the intelligibility of female speech by cutting out the higher frequency components necessary for the perception of certain consonants. Steinberg asserted that “nature has so designed woman’s speech that it is always most effective when it is of soft and well modulated tone.” Hinting at the age-old notion that women are too emotional, he wrote that a woman’s raised voice would exceed the limitations of the equipment, thus reducing her clarity on air**.

+[1]Extract taken from scripts that are part of the performance "Radioactive Monstrosities" +

  • Tallon, T. (2019) A Century of “Shrill”: How Bias in Technology Has Hurt Women’s Voices, The New Yorker. Available at: https://www.newyorker.com/culture/cultural-comment/a-century-of-shrill-how-bias-in-technology-has-hurt-womens-voices