Índice:

Max MSP Ambient Loop Generator: 19 etapas
Max MSP Ambient Loop Generator: 19 etapas

Vídeo: Max MSP Ambient Loop Generator: 19 etapas

Vídeo: Max MSP Ambient Loop Generator: 19 etapas
Vídeo: RTT - Rhythm and Time Toolkit 2024, Dezembro
Anonim

Este é um tutorial sobre como começar a fazer um gerador de loop de ambiente no Max MSP.

Este tutorial espera que você tenha um conhecimento básico de Max MSP, interfaces DAW e processamento de sinal. Se você deseja usar o programa desenvolvido neste tutorial, vá em frente e baixe-o, de uso gratuito (mas não para vender ou republicar)!

O programa que iremos projetar tem DUAS partes principais:

1) Um processador multissinais

2) Um gerador de notas semi-randomizado

O gerador de notas funciona lentamente ao longo de uma escala / escala em padrões semi-aleatórios, alimentando dados MIDI em uma DAW, que por sua vez envia o áudio de volta ao Max para ser processado.

Aqui está um link para o arquivo de patch final:

Suprimentos:

  • Conhecimento básico de Max MSP e MIDI
  • MSP máx.
  • Interface de áudio (estamos usando o Logic Pro X)
  • Soundflower
  • (Opcional) Alguns bons plug-ins de instrumentos de software para sua DAW

Etapa 1: Configurando o Soundflower com Max e sua DAW

Configurando o Soundflower com Max e seu DAW
Configurando o Soundflower com Max e seu DAW
Configurando o Soundflower com Max e seu DAW
Configurando o Soundflower com Max e seu DAW

Soundflower é um programa que ajuda a enviar áudio entre programas no Mac. Estaremos usando isso para obter áudio de nossa DAW para o Max.

Usar o Soundflower com sua DAW não poderia ser mais fácil! Basta fazer o download do Soundflower e ele estará disponível para uso como saída e entrada de áudio. Se criarmos objetos adc ~ (entrada de áudio) e dac ~ (saída de áudio), podemos ver que Soundflower 2ch e Soundflower 64ch se tornam caminhos de áudio utilizáveis. Estaremos usando Soundflower 2ch (2 canais) para este programa.

No Max, adicione um botão de alternância para ligar e desligar a entrada e um controle deslizante de ganho para o volume e você estará pronto.

Em sua DAW, em preferências> áudio, você verá a entrada e a saída de áudio. Estaremos usando Soundflower 2ch como saída de áudio.

Etapa 2: Decida seu caminho de processamento de sinal

Decida seu caminho de processamento de sinal
Decida seu caminho de processamento de sinal

Em termos simples, seu áudio ficará distorcido em vários canais diferentes ou tudo em uma linha reta?

Decidimos usar processamento de áudio paralelo - nosso sinal ficará distorcido em vários canais diferentes. Isso nos dá o benefício de um áudio geral mais claro e mais controle para o nosso sinal, mas coloca muito volume no ganho principal, resultando em algum corte. Decidimos que mais controle valia a pena algum áudio distorcido, já que isso criará loops de ambiente de qualquer maneira!

Além disso, você precisará decidir quais efeitos deseja criar. Estaremos demonstrando alguns tipos de efeito aqui se você quiser ideias.

Etapa 3: adicionar uma mistura seca

Adicionando uma mistura seca
Adicionando uma mistura seca
Adicionando uma mistura seca
Adicionando uma mistura seca

Primeiro adicionamos uma "mixagem seca" para que pudéssemos ter um sinal de áudio separado e não afetado. Isso foi feito rodando a saída adc ~ em um controle deslizante de ganho (com um dial para facilitar a visualização), em um filtro svf ~ com um dial para ajustar a filtragem passa-baixa e, em seguida, no ganho master e saindo para o dac ~. Ter uma mixagem seca pode ser muito útil, então sugerimos se você quiser manter as coisas com um som um tanto claro e fácil de testar!

Podemos ter chamado sua atenção um pouco - estaremos executando todos os nossos efeitos em filtros svf ~ separados para ter dials de tom para cada canal de sinal. Isso torna mais fácil limpar o espaço de áudio quando um determinado efeito é de frequência muito alta. Fizemos todos os nossos filtros svf ~ lowpass (conectando-os à saída lowpass), então eles progressivamente cortam as altas frequências girando o dial para baixo. No entanto, svf ~ também possui passa-banda (frequência seletiva), passa-alta (remove os graves) e outros filtros úteis. Experimente para ver o que você gosta e precisa, ou até mesmo use vários filtros!

Etapa 4: Mudança de tom com um deslocador

Mudança de tom com um Pitchshifter
Mudança de tom com um Pitchshifter
Mudança de tom com um Pitchshifter
Mudança de tom com um Pitchshifter

Para um pitchshifter simples e fácil de usar, copie o código do pitchshifter do guia de ajuda do pitchshifter no Max. Nosso código é muito semelhante, mas remove recursos como glide e várias configurações de qualidade de áudio para diminuir a confusão. Executar seu áudio nele (de adc ~ para som paralelo ou da mixagem seca para som em série) permite que você use um dial para ajustar o nível de mudança de tom.

Assim como na mixagem seca, adicionamos um controle deslizante de ganho e um objeto svf ~ para permitir o controle de volume e a modelagem de EQ.

Etapa 5: DISTORÇÃO

DISTORÇÃO!
DISTORÇÃO!
DISTORÇÃO!
DISTORÇÃO!
DISTORÇÃO!
DISTORÇÃO!

Usar o objeto overdrive ~ é a maneira mais simples de adicionar distorção. Você pode executar isso em um controle deslizante de ganho e um filtro e encerrar o dia. No entanto, demos alguns passos adiante. Em primeiro lugar, executamos os caminhos de áudio esquerdo e direito em objetos de deslocamento de fase separados - eles colocam os caminhos de áudio esquerdo e direito fora de fase, "engrossando" o áudio como um pedal de coro faria.

Além disso, enviamos o áudio resultante para um objeto em cascata com um filtro gráfico anexado. Isso permite distorcer o áudio mais ou menos em certas frequências e com quantas bandas de filtro desejar. Nosso filtro de distorção foi modelado a partir da distorção de um pedal Boss HM-2 Heavy Metal dos anos 80.

Nesse ponto, também começamos a adicionar objetos omx.peaklim ~ após efeitos especialmente ruidosos - esse objeto limita o sinal de áudio que passa por ele como um compressor faria, tornando mais fácil evitar que o caminho de áudio final seja cortado.

Etapa 6: O poder do drone

O poder do drone
O poder do drone
O poder do drone
O poder do drone

Também achamos necessário adicionar uma frequência de "zumbido" ao nosso patch. Embora isso pudesse ter sido feito com um objeto de ciclo para criar um oscilador simples, não seria muito adaptável às mudanças de volume ou frequência no áudio original. Portanto, usamos um filtro svf ~ para criar um caminho de áudio ultra-ressonante. Executando o áudio em um filtro svf ~ e definindo a ressonância em 1, criamos uma frequência de zumbido que entra e sai como nosso caminho de áudio e pode então ser ajustada para volume, tom e frequência. Ajustar o dial anexado ajustará a frequência de zumbido.

Etapa 7: Entrando no Bizarre: Ring Modulation

Entrando no Bizarro: Modulação em Anel
Entrando no Bizarro: Modulação em Anel
Entrando no Bizarro: Modulação em Anel
Entrando no Bizarro: Modulação em Anel

Agora, avançamos adicionando modulação em anel! Este efeito divertido e legal é extremamente simples de fazer e muito mal compreendido porque parece … um pouco descolado. Isso é feito anexando um mostrador a um objeto * ~ na entrada direita e, na entrada esquerda, conectando nosso mostrador. Levamos isso um passo adiante - quando nosso modulador de anel está totalmente abaixado, um gate fecha seu sinal de número e, portanto, o sinal do mod de anel é totalmente cortado. Além disso, ele também pode ser alternado para a saída para outro * objeto que reduz a frequência em um valor especificado. Dessa forma, podemos ter um mod em anel "fino" do tipo tremolo e uma modulação em anel com som estranho e mais rápido. Como os outros efeitos, ele foi executado em um controle deslizante de ganho e um filtro svf ~.

Etapa 8: Atraso e degradação do sinal … Degradar … Deg … D …

Atraso e degradação do sinal… degradar… grau… D…
Atraso e degradação do sinal… degradar… grau… D…
Atraso e degradação do sinal… degradar… grau… D…
Atraso e degradação do sinal… degradar… grau… D…

Aqui estamos criando um atraso com controle de tempo, um dial de feedback, um dial de tom e degradação de amostra. Isso nos permite imitar um atraso analógico, tornando o sinal progressivamente mais silencioso e distorcido. Para fazer isso, usamos objetos tapin ~ e tapout ~ conectados. Escrevemos 5000 após tapin ~ para ter certeza de que possui 5000ms de tempo de memória. Adicionar um objeto degrade ~ nos permite destruir progressivamente o sinal. Em seguida, executamos o áudio de adc ~ para nosso objeto de degradação ~, em tapin ~, em tapout ~ e, simultaneamente, voltamos para degradar ~ de um * ~ e de * ~ para nosso controle de ganho. Isso nos permite conectar um dial para ajustar o volume do atraso voltando para dentro de si mesmo e ter um sinal atrasado vindo do objeto * ~ para nossas saídas. Além disso, colocar o objeto degradado antes de tapin ~ nos permite adicionar mais e mais e mais redução de amostra conforme o sinal é atrasado. Verifique nossa imagem e código para uma visão clara de como tudo isso foi feito.

Etapa 9: Reverberação do estilo Belton Brick

Belton Brick Style Reverb
Belton Brick Style Reverb
Belton Brick Style Reverb
Belton Brick Style Reverb

Um reverb belton brick refere-se a um reverb equipado com um chip Accu-Bell BTDR Digi-log projetado por Brian Neunaber da Neunaber Effects. Este chip permite reverbs de mola simples usando linhas de atraso em cascata. Para emular isso, codificamos outro atraso, com um dial para ajustar a hora e o feedback. O tempo nunca ultrapassará 100ms e o feedback é limitado a 80%. Este atraso simples fornece um som de reverberação de primavera fácil! Mais uma vez para um controle de ganho e tom.

Etapa 10: Tremolo estéreo aleatório

Random Stereo Tremolo
Random Stereo Tremolo
Random Stereo Tremolo
Random Stereo Tremolo

Nosso efeito de sinal final! Aqui, criamos o mesmo código usado antes para o modulador em anel, com algumas reviravoltas: a profundidade do tremolo é aleatória e há um tremolo para os canais esquerdo e direito. Além disso, configuramos esta unidade em série, de modo que todos os efeitos agora venham antes dela, de modo que todos os sinais sejam afetados pelos tremolos.

Para fazer isso, imitamos o código do ring mod anterior, com algumas alterações: o sinal agora passa por duas portas que se abrem quando a outra é fechada. Isso permite que o sinal seja afetado ou não afetado, em vez de apenas ser afetado ou desligado. Isso foi feito com o objeto! -. Nosso dial é executado em um objeto rand ~, então * ~ e um + ~, e depois para outro * ~ na entrada direita e o áudio na esquerda. Aqui temos um tremolo aleatório que liga quando o dial está para cima e para baixo quando está desligado!

Isso não precisa de um controle de ganho ou controle de tom, então vai direto para o objeto dac ~.

Etapa 11: Osciloscopia

Osciloscopia!
Osciloscopia!
Osciloscopia!
Osciloscopia!

Por último, adicionamos um escopo ~ objeto conectado à saída de áudio do controle de ganho mestre. Nós também adicionamos um dial para ajustar sua sensibilidade!

Etapa 12: Apresentando o Módulo de Processamento de Sinal

Apresentando o Módulo de Processamento de Sinal
Apresentando o Módulo de Processamento de Sinal

Concluímos esta seção dando ao nosso código um pouco de habilidade no modo de apresentação. Basta adicionar mostradores individuais e caixas de comentários ao modo de apresentação e você estará pronto para começar! Demos aos nossos um toque extra com caixas coloridas e várias fontes e decisões de design artístico. Além disso, o design foi baseado em designs de pedal de guitarra: mostradores em linhas e seções rotuladas para tornar o caminho do sinal simples de entender. Divirta-se com essa parte!

Etapa 13: Seção 2: o gerador de acordes

Agora temos um processador de sinal totalmente funcional no Max, só precisamos de um pouco de áudio para alimentá-lo. Usando o Soundflower, podemos rotear todo o som que está sendo emitido através do processador de sinal, desde que a fonte seja o seu computador!

Para criar nossos próprios loops de ambiente, no entanto, teremos que fazer outro patch Max. Graças ao poder do MIDI, o patch finalizado servirá efetivamente como um novo controlador MIDI para o seu DAW, enviando notas diretamente para ele, permitindo que você use qualquer instrumento de sua escolha ou design! Ao contrário de um controlador MIDI externo, com o poder de max podemos criar um controlador MIDI que pode tocar sozinho, permitindo que você o module com o processador de sinal com facilidade.

Para a geração de notas exclusivas, usaremos um arpejador para gerar tríades e, posteriormente, veremos como montar um algoritmo que permitirá que o arpejador salte entre acordes.

Etapa 14: obtendo notas para alimentar o arpeggiator

Obtendo notas para alimentar o arpeggiator
Obtendo notas para alimentar o arpeggiator
Obtendo notas para alimentar o arpeggiator
Obtendo notas para alimentar o arpeggiator

Antes de podermos montar um arpejador, precisamos ser capazes de gerar os acordes para sua sequência. Em MIDI, cada nota no teclado corresponde a um número, com dó médio sendo 60. Felizmente, os números são sequenciais, portanto, aplicando alguma teoria musical, podemos gerar os intervalos corretos que correspondem a várias assinaturas de teclas.

As assinaturas de chave que você usa são com você, no entanto, você também pode acompanhar as 4 assinaturas de chave que selecionamos. Posteriormente, adicionaremos a esta parte do código para permitir que ele percorra as assinaturas de tonalidade por conta própria, portanto, selecionamos as 7as maiores, menores, 7as maiores e 7as menores para ajudar a preservar a tonalidade enquanto o programa percorre os acordes.

Referindo-se à primeira foto, o grosso desta seção é apenas a matemática que corresponde aos intervalos dessas chaves. Começando com a caixa mais à esquerda rotulada '60', essa é a raiz. Sempre que a raiz muda, os intervalos mudam de acordo com a chave atual. Por exemplo, se a chave maior for selecionada, os intervalos correspondentes são 4 e 7. Isso, então, percorre as caixas +0, que irão adicionar esse intervalo à tônica e fornecer a você as 3 notas para fazer um acorde maior, a partir de qualquer raiz!

Etapa 15: Arpejando esses acordes

Arpejando esses acordes
Arpejando esses acordes
Arpejando esses acordes
Arpejando esses acordes
Arpejando esses acordes
Arpejando esses acordes

Consulte a foto acima para obter o código do Arpeggiator. O objeto contador e as caixas de objetos 0, 1 e 2 anexadas permitirão que você controle a direção do arpejador de Cima, Baixo e Cima / Baixo.

Como mostrado acima, o gerador de intervalo que acabamos de montar está sendo roteado para as caixas 'int', de modo que, à medida que o contador e as caixas de seleção rodam, ele passa pelo acorde do outro pedaço de código. Isso então passa pela caixa 'makenote' e 'noteout' para finalmente transformar esses números MIDI em som!

Anote o objeto 'port "from Max 1"' que está conectado à caixa 'noteout', pois é isso que permite enviar as informações MIDI de Max para sua DAW.

O objeto 'metro' determina quanto tempo é entre cada intervalo em milissegundos. Eu tenho o padrão de 500ms, e se você seguir o código em anexo, usando o objeto slider, você pode ajustar quantos milissegundos são entre cada intervalo

Etapa 16: O 'Key Jumbler'

O 'Key Jumbler'
O 'Key Jumbler'

A ilustração acima é o trecho de código que permitirá que o programa percorra automaticamente as assinaturas de chave, permitindo que você crie acordes espontâneos à medida que seleciona diferentes notas raiz.

O objeto 'select' está funcionando de forma muito semelhante ao da seção do arpejador, no entanto, em vez de uma sequência específica, estamos usando a caixa 'urn' para alternar aleatoriamente pelas teclas. O que torna a caixa 'urna' diferente de 'aleatória' é que ela não repetirá um número até que tenha percorrido toda a gama, o que por sua vez nos fornece uma distribuição uniforme dos saltos entre as diferentes chaves.

Etapa 17: Fazendo a mágica acontecer com a geração autônoma de notas

Fazendo a mágica acontecer com a geração autônoma de notas
Fazendo a mágica acontecer com a geração autônoma de notas
Fazendo a mágica acontecer com a geração autônoma de notas
Fazendo a mágica acontecer com a geração autônoma de notas
Fazendo a mágica acontecer com a geração autônoma de notas
Fazendo a mágica acontecer com a geração autônoma de notas
Fazendo a mágica acontecer com a geração autônoma de notas
Fazendo a mágica acontecer com a geração autônoma de notas

Esse pedaço de código é o que permite que esse patch seja executado de forma autônoma. Se voltarmos ao gerador de acordes do início desta seção, a alteração da tônica preencherá automaticamente os intervalos a seguir, portanto, podemos usar isso para gerar progressões de acordes exclusivas!

O item chave aqui é o 'itable', ou o grande quadrado com pequenos retângulos azuis dentro. Ao anexar isso ao parâmetro metro do arpejador (a caixa definida como 500), podemos controlar o ponto exato na sequência do arpejador em que o acorde muda. Uma vez que o Arpeggiator é executado em conjuntos de 3, o tamanho do itable é definido como 12, para contabilizar 4 ciclos, e o intervalo é definido como 2, com 2 servindo como 'não' e 1 servindo como 'sim' para ou para não mudar o acorde. Com a sequência no código principal, o arpejador seria um através de uma tríade, então um novo acorde seria gerado e percorreria aquela tríade, e assim por diante.

As caixas 'aleatórias' determinam o quão longe a nova raiz está da original, atualmente eu a tenho configurada para que possa ir até meia oitava para cima ou para baixo.

Na imagem completa do código, visto à esquerda, a caixa de número 67 na parte inferior está anexada à caixa de número raiz do gerador de acordes, então qualquer número acaba sendo gerado a partir do itable e seu algoritmo anexado irá para o acorde gerador e, em seguida, no arpejador, onde tocará o acorde recém-selecionado. A caixa de número 67 acima dela, que está entrando na caixa '+0', está presa ao objeto de piano ilustrado acima, que também está conectado à caixa de número raiz do gerador de acordes. Isso ocorre para que, quando o algoritmo desse pedaço de código gerar um número, ele também seja selecionado no piano, de modo que acionará a nota para tocar.

No código final, esta seção aparece duas vezes, com a única diferença sendo o itable. Consulte o itable anexado separadamente para saber como fazer com que um novo acorde seja gerado após o arpejador repetir uma sequência 4 vezes.

Etapa 18: Toques finais

Toques finais
Toques finais

Agora você deve ter um arpejador totalmente funcional para tocar sozinho! No entanto, se você quiser adicionar um pouco mais de controle, o trecho de código ilustrado acima permitirá que você controle a duração das notas que estão sendo tocadas, para que você possa obter notas longas e perfeitas para um loop ambiente lento e monótono.

Também anexado está um objeto 'stop', que é particularmente útil quando você está executando o Max por meio de uma DAW. No caso em que Max começa a ter problemas para comunicar os dados MIDI, você pode substituí-los e interrompê-los sem fechar completamente o Max ou sua DAW.

Etapa 19: Resumindo

Resumindo
Resumindo

O programa agora está funcionalmente completo, tudo o que falta fazer é organizar tudo em modo de apresentação. Não existe uma solução para tudo isso, é totalmente dependente do que você deseja ser capaz de controlar a partir de um nível superficial.

Minha seleção cobre o essencial de tudo que eu quero ser capaz de modular facilmente, para que você possa adicionar ou retirar o que quiser.

Tudo o que resta fazer agora é se familiarizar com esses dois patches e começar a criar um pouco de música!

Aproveitar!

Recomendado: