Pular para conteúdo

2.6 Grupos🔗

Introdução🔗

Às vezes, é útil aplicar efeitos a vários objetos Player ao mesmo tempo. É aí que entra o objeto Group!

Group(*players)

Crie um objeto de grupo, que pode ser tratado como um objeto Player simples. Os efeitos podem ser aplicados da seguinte forma:

# Suavizar vários Players ao mesmo tempo
Group(p1, p2, p3).amp = 0.25

Os grupos podem ser atribuídos a uma variável para serem usados repetidamente

my_group = Group(p1, p2, p3)
my_group.amp = 1/2
my_group.hpf = 500

Métodos🔗

.stop()🔗

Pare todos os Players do grupo.

Group(p1, p2, p3).stop()

.solo()🔗

Muta todos os outros players, ou seja, apenas os players do grupo podem ser ouvidos.

Group(p1, p2, p3).solo()

.only()🔗

Pare todos os jogadores que não estão no grupo

Group(p1, p2, p3).only()

Grupos Predefinidos🔗

Já existem vários objetos Group no FoxDot para certos conjuntos de objetos Player com base no nome da variável, terminando com o sufixo '_all'. Assim, para cada caracter, por exemplo, a, existe um grupo chamado a_all que contém a1, a2, a3, ..., a9. Portanto, se você organizar seus players por nome de variável, será fácil aplicar efeitos ou para-los todos de uma vez:

d1 >> play("x-o-")
d2 >> play("   *  * *")

p1 >> pads([0, 4, -2, 3], dur=4)
p2 >> pluck([0, 1, 3, 4], dur=1/4)

# Aplica um filtro
p_all.hpf = 500

# Pare apenas os Players que começam com 'd'
d_all.stop()

Você pode acessar um grupo de todos os player ativos no momento usando a função Master(), que retorna um objeto Group.

d1 >> play("x-o-")
p1 >> pluck([0, 2, 4, 2])

# Aplica o filtro a todos os Players
Master().hpf = 500

# Pare todos
Master().stop()