Granular synthesis: Difference between revisions
No edit summary |
No edit summary |
||
Line 37: | Line 37: | ||
#!/bin/bash | #!/bin/bash | ||
sox $1 -t raw -e unsigned-integer -r 44100 -c 1 - | sox $1 -t raw -e unsigned-integer -r 44100 -c 1 - | ||
</source> | |||
play pipeline | |||
<source lang="bash"> | |||
./2raw.sh 1.0000001.aiff | python samplebits.py | play -t raw -e unsigned-integer -r 44100 -c 1 -b 16 - | |||
</source> | </source> |
Revision as of 11:23, 14 October 2014
Max Dovey is working on manipulating audio recordings about the limits of time.
samplebits.py
import sys, struct
c = 0
samples = []
numsamples = 17640 # 0.4 sec
# numsamples = 1764 # 0.040 sec == 40 ms == 0.040 * 44100 => 1764
# numsamples = 176 # 0.004 sec == 4 ms == 0.004 * 44100
# numsamples = 44 # 0.001 sec == 1 ms == 0.001 * 44100
# numsamples = 441 #0.01 sec == 1dec == 0.01 * 44100 = 441
# numsamples = 44 #0.001 sec == 1centi == 0.001 * 44100 = 44.1
# numsamples = int(4.41) #0.0001 sec == 1milli == 0.0001 * 44100 = 4.41
# numsamples = int(1) #0.000001 sec == 1micro == 0.000001 * 44100 = 0.0441
loop = 10
while True:
sample = sys.stdin.read(2*numsamples)
if not sample:
break
samples = struct.unpack("H"*numsamples, sample)
# sys.stderr.write(str(n)+"/n")
# o = max(35000,n)
# take your slice and repeat
for i in range(loop):
out = struct.pack("H"*numsamples, *samples)
sys.stdout.write(out)
2raw.sh
#!/bin/bash
sox $1 -t raw -e unsigned-integer -r 44100 -c 1 -
play pipeline
./2raw.sh 1.0000001.aiff | python samplebits.py | play -t raw -e unsigned-integer -r 44100 -c 1 -b 16 -