Tabla de contenido:

Caja de ritmos Raspberry Pi: 5 pasos
Caja de ritmos Raspberry Pi: 5 pasos

Video: Caja de ritmos Raspberry Pi: 5 pasos

Video: Caja de ritmos Raspberry Pi: 5 pasos
Video: Raspberrypi 5 Configuración Inicial Paso a Paso - En Español 2024, Noviembre
Anonim
Caja de ritmos Raspberry Pi
Caja de ritmos Raspberry Pi

Secuenciador de muestra, a través de Raspberry Pi + Python.

El secuenciador tiene 4 polifonías y permite al usuario almacenar y localizar 6 secuencias diferentes entre las que puede alternar en tiempo real, y admite la capacidad de cambiar entre diferentes muestras.

Escribí el guión de una manera que es totalmente operable con cualquier controlador y sonido MIDI. Utilizo 18 bancos de sonido diferentes, 16 muestras cada uno, sin embargo, agregar o restar bancos y muestras es fácil y no requiere muchas modificaciones. Si tiene algún problema, envíeme un correo electrónico: [email protected]

Encuentre el código en GitHub en:

Por favor, avíseme si lo usa, ¡y especialmente si hace un video con él!

Paso 1: dependencias

Este programa requiere los siguientes módulos de Python (no integrados):

mido

pygame

numpy

Sin embargo, Mido arroja algunas complicaciones ya que Mido en sí requiere algunas dependencias. Para asegurarse de que todos se instalen, simplemente escriba los siguientes comandos en la terminal de su Raspberry Pi (omitiendo el '$') y todo estará bien. Los otros módulos se pueden instalar normalmente.

$ sudo apt-get update

$ sudo apt-get install build-essential

$ sudo apt-get install libasound-dev o 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 instalar python-rtmidi

$ sudo pip instalar mido

Paso 2: configurar los valores de entrada Midi

Configurar valores de entrada Midi
Configurar valores de entrada Midi

Dentro del Script Python principal existe una matriz llamada noteList que se compone de 16 enteros (línea 165). Estos son los valores de nota MIDI que nuestro controlador envía al Pi para disparar los sonidos. Sin embargo, cada controlador midi es diferente, por lo que, a menos que también tenga un Akai LPD8, lo más probable es que deba modificar estos valores para que coincidan con su dispositivo.

El repositorio de Github también incluye otro script llamado "midihelp.py" que está hecho específicamente para este propósito. Todo lo que hace es imprimir los valores de entrada desde el primer controlador MIDI que la computadora reconoce en la consola. Todo lo que tendrá que hacer es reemplazar estos valores en la matriz si difieren de los incluidos en noteList.

El orden de las notas también se correlaciona con el efecto de sonido por carpeta que se reproduce, así que tenlo en cuenta también.

Paso 3: agregue carpetas adicionales con ejemplos

Los kits de muestra dentro del script se almacenan a través de carpetas en el mismo directorio, configurados exactamente como está el kit 808 dentro del archivo GitHub. De esta manera, puedo tener todo tipo de conjuntos de muestras diferentes almacenados en carpetas que se organizan y reemplazan fácilmente.

Lo único que puede cambiar en el propio script es la variable foldNum, que solo le dice al script cuántas carpetas de muestras hay. Actualmente, el script tiene foldNum establecido en uno porque solo hay una subcarpeta en el mismo directorio (el kit 808). La cantidad máxima de carpetas que el script puede manejar en este momento es 18, que es la cantidad que estoy usando, sin embargo, es bastante trivial para altere esto, avíseme si necesita ayuda.

Los nombres de las carpetas realmente no importan (siempre que sean diferentes) ya que el script solo lee la cantidad de carpetas en el mismo directorio y toma las rutas de esa manera. Sin embargo, los nombres de los archivos en sí son importantes, más sobre eso en el siguiente paso.

Paso 4: agregar y configurar muestras adicionales en carpetas nuevas

Agregar y configurar muestras adicionales en carpetas nuevas
Agregar y configurar muestras adicionales en carpetas nuevas

Los sonidos se cargan en el muestreador a través de carpetas en el mismo directorio que contienen archivos.wav con nombres numerados entre 0-15. Consulte la carpeta 808 incluida para ver un ejemplo de esto. CADA subcarpeta con muestras debe verse idéntica entre sí.

El índice de entradas MIDI en el arreglo noteList corresponde exactamente al nombre del archivo.wav.

Por ejemplo:

  • cuando dispara la nota MIDI almacenada en noteList [0], se reproducirá el archivo wav 0.wav.
  • cuando dispara la nota MIDI almacenada en noteList [8], se reproduciría el archivo wav 8.wav.

Hice esto en parte para que cada controlador MIDI pudiera configurarse fácilmente para trabajar con el script, y también para poder extender o limitar fácilmente la muestra y el número de entrada, así como organizar los archivos y el script para que el bombo los sonidos, por ejemplo, siempre se guardarían como 0.wav y serían activados por la primera nota MIDI.

Elegí 16 valores de forma algo arbitraria para que se correspondan con las 16 entradas de mi controlador, por lo que si prefiere hacer un secuenciador con solo 1 muestra, o con muchas más, todo lo que tendría que hacer es numerar los archivos de audio en consecuencia y reste o sume los números almacenados dentro de la matriz noteList para que coincidan.

Si el kit 808 incluido funciona correctamente pero tienes problemas con tus propias muestras, lo más probable es que la solución sea alterar la frecuencia de muestreo de los archivos para que coincida con la frecuencia de muestreo de PyGame de 22, 050 kHz y la profundidad de bits de 16. Puedes hacerlo en Audacity o cualquier otro software de edición de audio. ¡Deberían funcionar perfectamente a partir de ahí!

Paso 5: ¡Referencia del teclado numérico

De acuerdo, hay muchas cosas que suceden dentro del secuenciador, más de las que tenía en mente inicialmente, así que me metí bastante en un teclado numérico para que coincida con la funcionalidad aumentada. Esto en mente, el asterisco * y el período. ambos funcionan como teclas de función.

REFERENCIA

FUNCIONES PRINCIPALES

[8] - Activar y desactivar el metrónomo

[9] - Activar y desactivar el modo de grabación

[Enter] - Secuencia de reproducción / pausa

[0] - Eliminar nota actual en secuencia

[Bloq Num y *] - Apagar

[Nota MIDI y.] - No cuantifique a números pares

FUNCIONES TEMPO

[+] - Curso Acelerar BPM

[-] - Curso BPM más lento

[+ y *] - Acelere rápidamente BPM

[- y *] - BPM rápidamente más lento

[+ y.] - Aceleración fina BPM

[- y.] - BPM de ralentización fina

FUNCIONES DE SECUENCIA

[1-6] Recuperar secuencia 1-6

[1-6 y.] Almacenar secuencia 1-6

[0 y.] Borrar secuencia actual

CAMBIAR CARPETAS DE MUESTRA

[1-9 y *] - Cambiar al paquete de muestra en las carpetas 1-9

[1-9 y * y.] - Cambiar al paquete de muestra en las carpetas 10-18

CONSEJOS DE SECUENCIA:

-Borrar la secuencia actual [0 y.] Y almacenarla en cualquier secuencia que desee borrar de la memoria.

-Recuperar una secuencia y almacenarla en un número diferente para copiarla.

Recomendado: