Índice:
- Etapa 1: Configurando o Soundflower com Max e sua DAW
- Etapa 2: Decida seu caminho de processamento de sinal
- Etapa 3: adicionar uma mistura seca
- Etapa 4: Mudança de tom com um deslocador
- Etapa 5: DISTORÇÃO
- Etapa 6: O poder do drone
- Etapa 7: Entrando no Bizarre: Ring Modulation
- Etapa 8: Atraso e degradação do sinal … Degradar … Deg … D …
- Etapa 9: Reverberação do estilo Belton Brick
- Etapa 10: Tremolo estéreo aleatório
- Etapa 11: Osciloscopia
- Etapa 12: Apresentando o Módulo de Processamento de Sinal
- Etapa 13: Seção 2: o gerador de acordes
- Etapa 14: obtendo notas para alimentar o arpeggiator
- Etapa 15: Arpejando esses acordes
- Etapa 16: O 'Key Jumbler'
- Etapa 17: Fazendo a mágica acontecer com a geração autônoma de notas
- Etapa 18: Toques finais
- Etapa 19: Resumindo
Vídeo: Max MSP Ambient Loop Generator: 19 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:34
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
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
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
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
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
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
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
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 …
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
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
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
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
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
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
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'
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
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
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
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:
La Chaise Longue Interactive Avec Arduino Et Max / MSP: 5 etapas
La Chaise Longue Interactive Avec Arduino Et Max / MSP .: L'idée est de créer une chaise longue Interactive: un utilisateur qui s'assoit dans le transat déclenche une ambiance sonore et visuelle lui rappelant la mer, la plage … Nous utilisons donc un capteur de luminosité (placé sous le transat) reliés à
Weather Based Music Generator (ESP8266 Midi Generator): 4 etapas (com imagens)
Weather Based Music Generator (ESP8266 Based Midi Generator): Olá, hoje vou explicar como fazer seu próprio pequeno gerador de música baseado em clima. É baseado em um ESP8266, que é como um Arduino, e responde à temperatura, chuva e intensidade da luz. Não espere que ele faça músicas ou acordes inteiros progr
PPM / MSP Wifi de longo alcance: 5 etapas
Long Range Wifi PPM / MSP: Há algum tempo, postei meu controlador Wifi PPM. Está funcionando muito bem. Apenas o alcance é um pouco curto. Eu encontrei uma solução para este problema. O ESP8266 oferece suporte a um modo chamado ESPNOW. Este modo é de nível muito mais baixo. Não perde a conexão, então
Spline Modeling Flower Blossoms in 3DS MAX para impressão 3D: 7 etapas (com imagens)
Spline Modeling Flower Blossoms in 3DS MAX para 3D Printing: Neste Instructable, você aprenderá dicas sobre como criar uma flor de aparência orgânica em 3DS Max para impressão 3D para um presente exclusivo para feriados como o Dia das Mães ou Dia dos Namorados. Requisitos: Um Teste ou uma cópia pessoal do Autodesk 3ds Max. Alguns sabem
Assistente ativado por voz - MÁX: 10 etapas
Voice Activated Assistant - MAX: Olá neste Instructable, vou falar sobre como fazer um chat-bot MAX (me chamei !!!) Com alguma implementação, você pode fazer este chatbot controlado por voz ou com o uso de vários softwares para você pode fazer isso como um assistente de voz. Eu aqui eu