procesos se hacen frases

usando digitos del pid como indices de una escala,
las notas se espacían en un compás de ocho octavos
usando el algoritmo euclidiano

con todo y caminador aleatorio
This commit is contained in:
rgarcia-herrera 2024-10-28 20:58:45 -06:00
parent ecb70926a7
commit a8e5d7c926
3 changed files with 32 additions and 4 deletions

22
mupah/__init__.py Normal file
View File

@ -0,0 +1,22 @@
from mupah.euclidean import euclidean_rythm
def eighths_scale(p, scale):
hits = len(str(p.pid))
if hits < 8:
length = 8
elif hits >= 8 and hits < 16:
length = 16
rythm = euclidean_rythm(k=hits, n=length)
for i in list(str(p.pid)):
rythm = rythm.replace('X', i, 1)
phrase = [0 if i == '.'
else scale[int(i) % 8]
for i in list(rythm)]
return phrase

View File

@ -1,11 +1,15 @@
import psutil import psutil
import random import random
from time import sleep from time import sleep
from mupah import eighths_scale
import mingus.core.scales as scales
scale = scales.Aeolian("C").ascending()
def reporta(p): def reporta(p):
binario = bin(p.pid).replace('0b', '') print(eighths_scale(p, scale), p.name())
return p.pid, binario, binario[0:7], len(str(p.pid)), len(p.name())
p = psutil.Process(pid=random.choice(psutil.pids())) p = psutil.Process(pid=random.choice(psutil.pids()))
@ -20,10 +24,12 @@ while True:
p = psutil.Process(pid=random.choice([subp.pid p = psutil.Process(pid=random.choice([subp.pid
for subp in for subp in
children])) children]))
print("\t", reporta(p)) print("\t", end="")
reporta(p)
else: else:
p = psutil.Process(pid=random.choice(psutil.pids())) p = psutil.Process(pid=random.choice(psutil.pids()))
print('', reporta(p)) print('', end="")
reporta(p)