Índice:
- Etapa 1: Dependências
- Etapa 2: Configurar os valores de entrada Midi
- Etapa 3: adicionar pastas adicionais com amostras
- Etapa 4: adicionar e configurar amostras adicionais em novas pastas
- Etapa 5: Referência do teclado numérico
Vídeo: Raspberry Pi Drum Machine: 5 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:34
Sequenciador de amostra, por meio de um Raspberry Pi + Python.
O sequenciador tem 4 polifonias e permite ao usuário armazenar e sugerir 6 sequências diferentes que podem ser alternadas em tempo real, e suporta a capacidade de alterar entre diferentes amostras.
Eu escrevi o script de uma forma que é totalmente operável com qualquer controlador MIDI e sons. Eu uso 18 bancos de sons diferentes, 16 samples cada, porém adicionar ou subtrair bancos e samples é fácil e não requer muitas modificações. Se você tiver algum problema me mande um e-mail: [email protected]
Encontre o código no GitHub em:
Por favor, deixe-me saber se você usar, e especialmente se você fizer um vídeo com ele!
Etapa 1: Dependências
Este programa requer os seguintes módulos Python (não integrados):
mido
pygame
entorpecido
No entanto, Mido apresenta algumas complicações, pois o próprio Mido requer algumas dependências. Para garantir que todos sejam instalados, basta digitar os seguintes comandos no terminal do seu Raspberry Pi (omitindo o '$') e tudo ficará bem. Os outros módulos podem ser instalados normalmente.
$ sudo apt-get update
$ sudo apt-get install build-essential
$ sudo apt-get install libasound-dev ou libasound2-dev
$ sudo apt-get install libjack0
$ sudo apt-get install libjack-dev
$ sudo apt-get install python-pip
$ sudo apt-get install python-dev
$ sudo pip install python-rtmidi
$ sudo pip install mido
Etapa 2: Configurar os valores de entrada Midi
Dentro do Python Script principal existe um array chamado noteList que é composto de 16 inteiros (linha 165.) Estes são os valores de nota MIDI que nosso controlador envia para o Pi para acionar os sons. Cada controlador de midi é diferente, então, a menos que você também tenha um Akai LPD8, você provavelmente precisará alterar esses valores para corresponder ao seu dispositivo.
O repositório Github também inclui outro script chamado "midihelp.py", feito especificamente para esse propósito! Tudo o que ele faz é imprimir os valores de entrada do primeiro controlador MIDI que o computador reconhece no console. Tudo que você precisa fazer é substituir esses valores no array se eles forem diferentes dos incluídos em noteList.
A ordem das notas também se correlaciona com o efeito de som reproduzido por pasta, portanto, lembre-se disso também.
Etapa 3: adicionar pastas adicionais com amostras
Os kits de amostra dentro do script são armazenados por meio de pastas no mesmo diretório, configurando exatamente como o kit 808 está dentro do arquivo GitHub. Dessa forma, posso ter todos os tipos de conjuntos de amostras diferentes armazenados em pastas que são facilmente organizadas e substituídas.
A única coisa a mudar no próprio script é a variável foldNum, que apenas informa ao script quantas pastas de amostras existem. Atualmente, o script tem foldNum definido como um porque há apenas uma subpasta no mesmo diretório (o kit 808). O máximo de pastas que o script pode manipular no momento é 18, que é quantas eu estou usando, no entanto, é bastante trivial para alterar isso, deixe-me saber se precisar de ajuda.
Os nomes das pastas realmente não importam (contanto que sejam todas diferentes), pois o Script apenas lê a quantidade de pastas no mesmo diretório e pega os caminhos dessa forma. Os nomes dos arquivos em si são importantes, porém, mais sobre isso na próxima etapa.
Etapa 4: adicionar e configurar amostras adicionais em novas pastas
Os sons são carregados no amostrador por meio de pastas no mesmo diretório contendo arquivos.wav com nomes numerados entre 0-15. Consulte a pasta 808 incluída para obter um exemplo disso. CADA subpasta com amostras deve ser idêntica uma à outra.
O índice de entradas MIDI no array noteList corresponde exatamente ao nome do arquivo.wav.
Por exemplo:
- quando você aciona a nota MIDI armazenada em noteList [0], o arquivo wav 0.wav é reproduzido.
- quando você aciona a nota MIDI armazenada em noteList [8], o arquivo wav 8.wav é reproduzido.
Fiz isso em parte para que cada controlador MIDI pudesse ser configurado facilmente para funcionar com o script e também para estender ou limitar o número de amostra e entrada, bem como organizar os arquivos e o script para que o bumbo sons, por exemplo, sempre seriam salvos como 0.wav e seriam disparados pela primeira nota MIDI.
Escolhi 16 valores um tanto arbitrariamente para corresponder às 16 entradas no meu controlador, então se você preferir fazer um sequenciador com apenas 1 amostra, ou com muitos mais, tudo que você precisa fazer é numerar os arquivos de áudio de acordo e subtraia ou adicione os números armazenados na matriz noteList para corresponder.
Se o kit 808 incluído funcionar corretamente, mas você tiver problemas com suas próprias amostras, a solução provavelmente seria alterar a taxa de amostragem dos arquivos para corresponder à taxa de amostragem de 22.050 khz do PyGame e profundidade de bits de 16. Você pode fazer isso no Audacity ou qualquer outro software de edição de áudio. Eles devem funcionar perfeitamente a partir daí!
Etapa 5: Referência do teclado numérico
Ok, há um monte de coisas acontecendo dentro do sequenciador, mais do que eu tinha em mente inicialmente, então eu empurrei um pouco em um teclado numérico para combinar com a funcionalidade aumentada. Isso em mente, o Asterisco * e o Período. ambos funcionam como teclas de função.
REFERÊNCIA
FUNÇÕES PRINCIPAIS
[8] - Liga e desliga o metrônomo
[9] - Ativar e desativar o modo de gravação
[Entrar] - Reproduzir / pausar a sequência
[0] - Excluir nota atual na sequência
[Num Lock e *] - Desligar
[Nota MIDI e.] - Não quantize para números pares
FUNÇÕES DE TEMPO
[+] - BPM de aceleração do curso
[-] - Redução do curso BPM
[+ e *] - Acelere rapidamente o BPM
[- e *] - Desacelere rapidamente o BPM
[+ e.] - Aceleração fina do BPM
[- e.] - Reduzir bem o BPM
FUNÇÕES DE SEQUÊNCIA
[1-6] Sequência de chamada 1-6
[1-6 e.] Sequência de armazenamento 1-6
[0 e.] Sequência de corrente clara
ALTERANDO PASTAS DE AMOSTRA
[1-9 e *] - Alterar para Pacote de Amostras nas Pastas 1-9
[1-9 e * e.] - Mude para Pacote de Amostras nas Pastas 10-18
DICAS DE SEQUÊNCIA:
-Limpe a sequência atual [0 e.] E armazene-a em todas as sequências que deseja limpar da memória.
-Recha uma sequência e armazene-a em um número diferente para copiá-la.
Recomendado:
Drum machine simples com Arduino Uno e Mozzi: 4 etapas
Máquina de bateria simples com Arduino Uno e Mozzi: morar na Argentina significa que o correio internacional será roubado ou ficará preso na alfândega. Adicione a quarentena do Coronavirus e seu próximo projeto ficará restrito a uma placa Arduino Uno antiga. Boas notícias? Como diz o grande poeta dos Rolling Stones “O tempo está em
Micro: bit - Micro Drum Machine: 10 etapas (com imagens)
Micro: bit - Micro Drum Machine: Esta é uma micro: bit micro drum machine, que ao invés de apenas gerar o som, atua na bateria. É pesado inspirado nos coelhos da orquestra micro: bit. Levei algum tempo para encontrar alguns solenóides que fossem fáceis de usar com o mocro: bit
Makey Makey Tambores elétricos / drum machine: 8 etapas
Bateria / bateria elétrica Makey Makey: Este tutorial sobre como construir um conjunto de bateria elétrica é uma entrada na competição Makey Makey. O material varia de acordo com a disponibilidade e escolhas pessoais. O cartão pode ser substituído por materiais mais duráveis e em camadas com espuma / outro para tex
HX1-DM - a Drum Machine Upcycled Arduino DUE Powered DIY (feita com um Dead Maschine MK2): 4 etapas
HX1-DM - a Drum Machine Upcycled Arduino DUE Powered DIY (feita com um Dead Maschine MK2): As especificações. Controlador / drum machine híbrido Midi: Arduino DUE alimentado! 16 pads de detecção de velocidade com latência muito baixa 1 > ms 8 botões do usuário atribuíveis a qualquer comando Midi #CC 16ch Sequenciador integrado (não é necessário computador !!) Função de entrada / saída / passagem MIDI
A Raspberry Pi Powered Junk Drum Machine: 15 etapas (com fotos)
Uma bateria eletrônica movida a Raspberry Pi: Este manual mostrará como fazer uma bateria eletrônica robótica movida a Raspberry Pi. É realmente um projeto divertido, criativo e interativo. Eu vou te mostrar como fazer o funcionamento interno, mas a bateria real vai depender de você, dando-lhe o