Mude algo! Uma abordagem para gerenciamento de parâmetros infinitos com mídia interativa baseada em tempo

Tutoriais do Max MSP para iniciantes

@VJLoopZone
O patch na imagem do banner acima não faz nada, então desaconselho recriá-lo. O propósito da imagem é mais um estímulo conceitual. A mídia computacional organiza dados em possibilidades quase infinitas para a manipulação de dados e seus conjuntos de parâmetros definidos. Então, como lidamos com essa quase infinidade de mudanças na produção?
A Mudança Algo! A abordagem é uma maneira de gerenciar pragmaticamente a multidão absoluta de variações literalmente incontáveis na saída de um programa - neste caso, um patch Max - em mídia baseada em tempo real em tempo real.
A ideia é simples - basta criar um botão enorme para acionar a mudança - e vincular a saída desse acionador a muitos (e idealmente, muitos muitos - o que não é uma quantidade, na verdade ...) parâmetros em seu programa que você configurou para sofrem variação quando o gatilho é recebido. Aqui, Max send
e receive
objetos em magenta são usados para fins de roteamento da ação de pressionar o botão de acionamento.

O que o patch conceitual acima pretende ilustrar é que há muitas maneiras de processar dados simples de acionamento de pressionamento de botão uma vez recebidos (ilustrado recebendo o pressionamento de botão por meio de diferentes objetos) e fazê-lo produzir algum tipo de alteração em algum lugar que possa ser criativamente útil.
Em ação, tudo o que você precisa fazer é executar seu programa. Sempre que você quiser alterar sua saída, basta pressionar o botão e agora o fluxo de saída soará diferente! Quão diferente ou semelhante será determinado pela sua programação, e você pode refinar a quantidade e qualidade das mudanças por meio da iteração do seu programa. Se você não gostar da nova saída, basta pressionar o botão novamente. Quando gostar da saída, mas sentir que precisa de alguma novidade, basta apertar o botão novamente. É simples assim : )
Em um contexto em tempo real, você terá que fazer julgamentos de valor estético muito rápidos para saber se a saída é adequada e estar pronto para um rápido pressionamento do gatilho se não for. Em um contexto de gravação em estúdio, você sempre pode editar as partes ruins.
O valor dessa abordagem é que ela abstrai ou generaliza o que poderia ser literalmente milhões de variações em um único pressionamento de botão, e como não gostar disso?

Não é o mesmo que randomizar tudo
Muitos aplicativos têm funções Randomize All, mas o ChangeSomething! (que também pode ser chamado de ChangeAnything! Agora que penso nisso) difere de uma maneira fundamental - Randomize All literalmente randomiza todos os valores dos parâmetros e talvez randomize adicionalmente quais parâmetros são randomizados. Isso produz resultados principalmente inutilizáveis, como ruído visual ou auditivo, e apenas ocasionalmente utilizáveis.
Uma implementação decente de Randomize All, que também randomiza quais parâmetros são aleatórios, é o processador de imagens online do Photomosh.com , mostrado abaixo. O botão Mosh na parte inferior da captura de tela é o equivalente ao botão Max gigante em meu patch conceitual. À direita, você pode ver quais parâmetros foram selecionados aleatoriamente para randomização de valores:


O ChangeSomething! O método visa que a maior parte da saída seja utilizável de forma criativa, uma vez que o conjunto de parâmetros não é limitado a valores aleatórios, mas pode incorporar qualquer objeto no conjunto de linguagem do programa. Conforme mostrado na imagem do banner acima, random
é apenas um objeto entre muitos, e não o ponto principal.
Outras coisas podem ser alteradas com o botão de disparo: posições de índice, movimentos do contador, predefinições armazenadas, posições de portão, mensagens, listas e também os próprios valores aleatórios podem ser processados posteriormente, por exemplo, deixando apenas os valores alterados passarem por um change
objeto. O foco de interesse aqui é a mudança , não a aleatoriedade, e o aleatório é apenas uma forma particular de mudança.
Obviamente, camadas adicionais de controle manual podem ser inseridas entre o pressionamento do botão principal e o recebimento do sinal de disparo, nas quais categorias ou números de parâmetros podem ser definidos para sofrer algum tipo de alteração com cada disparo.

Mais +ML
Se você quiser levar essa abordagem para o próximo nível, pode conectar um algoritmo de aprendizado de máquina para analisar a saída e aprender qual é o seu gosto artístico para qualquer mudança específica! programa que você criou. Mas, eventualmente, isso pode eliminar a necessidade de pressionar esse único botão, portanto, cuidado para não se automatizar fora da existência profissional!
Um guia de conteúdo completo para som e design


Artigos relacionados
Fenomenologia no Projeto de Algoritmos Geradores de Melodias
Roll Your Own Cthulhu: programando um sequenciador de cordas no ambiente Max
Aproveitando a aleatoriedade no sequenciamento de bateria
Programação improvisando sequenciadores de bateria no ambiente Max