Un jour j'ai fait de la musique
Je vous en parle un autre jour.
Tout ce qui compte c'est que j'ai fait ce script qui affiche dans votre terminal les valeurs des octets d'un fichier un par un.
Si c'est, par exemple un fichier .pcm (où l'on dessine une onde sonore avec des octets entre 0x00
et 0xff
), ça dessine une sinusoïdale.
Ça ne sert pas à grand chose, sauf si comme moi vous générez des fichiers sons.
Le voici :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | #!/usr/bin/python2.7
# -*- coding: utf-8 -*-
import os
import sys
import time
def sane(i):
if ord(i) < 127 and ord(i) > 32: # test d'affichabilité du caractère
return i
return "."
def scroll(filename):
buffr = "_"
try:
ofi = open(filename,'r')
while buffr != "":
buffr = ofi.read(0x100)
for i in buffr:
print " "*int((columns)*(1.0*ord(i)/0x100))+sane(i)
except KeyboardInterrupt:
ofi.close()
except:
ofi.close()
print "oups"
print e
def scrollfull(filename):
with open(filename,'r') as ofi:
data = ofi.read()
ofi.close()
for i in data:
print " "*int((columns)*(1.0*ord(i)/0x100))+sane(i)
if __name__ == "__main__":
if len(sys.argv) == 3:
# ./script.py file width
columns = int(sys.argv[2])
# ./script.py file
else:
columns = int(os.popen('stty size', 'r').read().split()[1])
try:
scrollfull(sys.argv[1])
except KeyboardInterrupt:
pass # mouhaha
except Exception as e:
print e
print "oups oups"
|