¿Dónde puedo encontrar un metrónomo para practicar música?

12

Esto es de alguna manera un seguimiento de esta pregunta:

¿Cómo puedo detectar los BPM (latidos por minuto) de una canción?

Pero ahora, en lugar de detectarlos en canciones, quiero generarlos.


Estoy buscando una aplicación que emita un sonido (algo corto como un pitido) un número configurable de veces por minuto.

Si digo 20bpm, emitirá ese sonido cada 3 segundos. (60/20)
Si 60bpm, cada segundo.
Si 120bpm cada medio segundo.

La razón de esto es que estoy aprendiendo a tocar la batería y el bpm parece realmente importante. Estoy siguiendo este video en youtube .

actualizar

Parece que se llaman metronomese incluso Google tiene uno. Cosas interesantes.
https://www.google.com/search?q=metronomes
Gracias Nick.

Parto
fuente
1
Audacity puede hacer esto (mira bajo el menú "Generar"), aunque probablemente haya programas más simples. Los metrónomos en línea son abundantes, si planeas tener acceso a internet durante tu práctica.
Nick Weinberg
2
gtick , klick , gtklick y kmetronome pueden ser otras opciones, y todas están disponibles en los repositorios de software de Ubuntu.
Nick Weinberg
Parece que los metrónomos que se ejecutan en Linux están muy desactualizados. No funciona, al menos no fuera de la caja. Es hora de escribir uno :) @NickWeinberg Los probé todos, parece que no funciona (más).
Jacob Vlijm
Hola @JacobVlijm ¿Tienes un script de Python que puede hacer esto? Realmente debería aprender Python ...
Parto
¡Lo intentaré en breve!
Jacob Vlijm

Respuestas:

20

Como se menciona en un comentario, no pude hacer que los metrónomos mencionados (existentes para Linux / Ubuntu) funcionen en 16.04, al menos no fuera de la caja. No pasé mucho tiempo haciendo que funcione , ya que prácticamente todos dan la impresión de ser abandonados.

Hora de escribir uno ...


Esta respuesta trabajo en progreso ) eventualmente debería conducir a un metrónomo, incluida la GUI. Un buen momento para mencionar las posibles características que le gustaría.

1. metrónomo CLI

Crear un metrónomo directo resulta ser sorprendentemente simple:

#!/usr/bin/env python3
import subprocess
import sys
import time

bpm = int(sys.argv[1])
pauze = 60/bpm

while True:
    time.sleep(pauze)
    subprocess.Popen(["ogg123", "/usr/share/sounds/ubuntu/stereo/bell.ogg"])

Cómo utilizar

  1. El metrónomo necesita herramientas vorbis para reproducir el sonido.

    sudo apt-get install vorbis-tools
    
  2. Copie el script anterior en un archivo vacío, guárdelo como metronome.py
  3. Ejecútelo con el bpm como argumento:

    python3 /path/to/metronome.py <bpm>
    

    p.ej:

    python3 /path/to/metronome.py 100
    

    Para ejecutarlo con 100 latidos por minuto

Nota

Para el sonido, usé el archivo /usr/share/sounds/ubuntu/stereo/bell.ogg, que debería estar en su sistema por defecto (probado 14.04 / 16.04). Sin embargo, puede usar cualquier ( .ogg) muestra que desee. En la versión final, habrá varias opciones (sonidos) disponibles.


2. Versión GUI sorprendentemente simple

Como siguiente paso, una versión muy básica, la última versión sin un instalador:

ingrese la descripción de la imagen aquí

La secuencia de comandos

#!/usr/bin/env python3
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
import sys
import subprocess
import time
from threading import Thread
import os

path = os.path.dirname(os.path.realpath(__file__))

class MetroWindow(Gtk.Window):
    def __init__(self):
        Gtk.Window.__init__(self, title="Shockingly simple Metronome")
        self.speed = 70
        self.run = False
        # maingrid
        maingrid = Gtk.Grid()
        maingrid.set_column_homogeneous(True)
        maingrid.set_row_homogeneous(False)
        maingrid.set_border_width(30)
        self.add(maingrid)
        # icon
        image = Gtk.Image(xalign=0)
        image.set_from_file(os.path.join(path, "icon.png"))
        maingrid.attach(image, 0, 0, 1, 1)
        # vertical slider,  initial value, min, max, step, page, psize
        self.v_scale = Gtk.Scale(
            orientation=Gtk.Orientation.VERTICAL,
            adjustment=Gtk.Adjustment.new(self.speed, 10, 240, 1, 0, 0)
            )
        self.v_scale.set_vexpand(True)
        self.v_scale.set_digits(0)
        self.v_scale.connect("value-changed", self.scale_moved)
        maingrid.attach(self.v_scale, 1, 0, 2, 1)

        self.togglebutton = Gtk.Button("_Run", use_underline=True)
        self.togglebutton.connect("clicked", self.time_out)
        self.togglebutton.set_size_request(70,20)
        maingrid.attach(self.togglebutton, 3, 3, 1, 1)

        # start the thread
        self.update = Thread(target=self.run_metro, args=[])
        self.update.setDaemon(True)
        self.update.start()

    def scale_moved(self, event):
        self.speed = int(self.v_scale.get_value())

    def time_out(self, *args):
        if self.run == True:
            self.run = False
            self.togglebutton.set_label("Run")
        else:
            self.run = True
            self.togglebutton.set_label("Pauze")

    def pauze(self):
        return 60/self.speed

    def run_metro(self):
        soundfile = "/usr/share/sounds/ubuntu/stereo/bell.ogg"
        while True:
            if self.run == True:
                subprocess.Popen([
                    "ogg123", soundfile
                    ])
            time.sleep(self.pauze())

def run_gui():
    window = MetroWindow()
    window.connect("delete-event", Gtk.main_quit)
    window.set_resizable(False)
    window.show_all()
    Gtk.main()

run_gui()

La imagen

ingrese la descripción de la imagen aquí

Cómo utilizar

  1. Al igual que la versión cli, esta necesita vorbis-tools:

    sudo apt-get install vorbis-tools
    
  2. Copie el script en un archivo vacío, guárdelo como metro.py

  3. Botón derecho del ratón sobre la imagen, guardarla en uno y el mismo directorio que el script (exactamente) como: icon.png.
  4. Simplemente ejecute el metrónomo con el comando:

    python3 /path/to/metro.py
    

3. PPA para el metrónomo naranja

¡Se hace!

El metrónomo está listo para la instalación.
El metrónomo naranja viene con un conjunto de sonidos diferentes para elegir, y los ritmos se pueden agrupar. Todos los cambios se aplican inmediatamente en el metrónomo en ejecución:

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Instalar:

sudo apt-add-repository ppa:vlijm/orangemetronome
sudo apt-get update
sudo apt-get install orangemetronome

Trabajo por hacer

  • Actualmente, el metrónomo viene con cuatro sonidos diferentes para elegir. Probablemente se agregarán algunos en los próximos días, algunos de ellos serán reemplazados / actualizados

  • A más largo plazo
    A más largo plazo, estoy pensando en agregar la opción para estructuras complejas (personalizadas) como 3 + 3 + 2, 2 + 2 + 2 + 3, etc., que siempre me perdí en los metrónomos existentes.

Finalmente

La última versión (actual) 0.5.3agrega varios sonidos, pero lo más importante, la opción de ejecutar ritmos irregulares (compuestos). En esta versión, están codificados. Será personalizable desde la versión> 1.

ingrese la descripción de la imagen aquí

Jacob Vlijm
fuente
@Parto genial, continuaré con esto. ¿Cuál es tu versión de Ubuntu por cierto?
Jacob Vlijm
Genial, estaremos aquí. Versión de Ubuntu: 14.04.
Parto
@Parto ... y la primera versión gui ...
Jacob Vlijm
1
Te daré el +15 por la respuesta correcta, pero +100 a Nick para llevarlo a más de 2K rep.
Parto
1
@Parto absolutamente! Podría tomar un día o dos, me gustaría incorporar algunas opciones.
Jacob Vlijm
9

¡Parece que estás buscando un metrónomo!

El software de edición de audio Audacity puede generar un ritmo o ritmo constante, similar a un metrónomo (mira debajo del menú "Generar"), aunque hay programas más simples que enumeraré a continuación. Audacity se encuentra en los repositorios de software de Ubuntu y se puede instalar a través del Centro de software o escribiendosudo apt install audacity en una ventana de terminal.

Los metrónomos en línea son abundantes, si planeas tener acceso a internet durante tu práctica.

Otro software de metrónomo disponible en los repositorios de software de Ubuntu incluye gtick , klick , gtklick y kmetronome , aunque no he probado ninguno de ellos.

Nick Weinberg
fuente
8

Metrónomo Simple Bash

Uso

metronome.sh [beats per minute] [beats per measure]

Informacion

  • Juega a 120 bpm en 4 por defecto
  • Más información y un script mucho más sofisticado está disponible en mi repositorio de GitHub: metronome.sh . El siguiente script está ahí debajometronome-core.sh

Por ejemplo

metronome.sh
metronome.sh 75     # 75 BPM
metronome.sh 120 3  # 120 BPM, 3 beats per measure

Guión

#!/bin/bash
# metronome.sh - Is a metronome.
# Usage: metronome.sh [beats per minute] [beats per measure]

# Set BPM and beats per measure.
bpm="${1-120}"
msr="${2-4}"

# Get seconds per beat using bc.
# "-0.004" accounts for approximate execution time.
beat_time="$(bc -l <<< "scale=5; 60/$bpm-0.004")"

echo "Metronome playing $bpm BPM, $msr beats per measure"
echo -n "Press Ctrl+C to quit."

while true; do
    for ((i=1; i<=$msr; i++)); do
        if [[ $i -eq 1 ]]; then
            # Accentuated beat.
            canberra-gtk-play --id='dialog-information' &
        else
            # Unaccentuated beat
            canberra-gtk-play --id='button-toggle-on' &
        fi
        # Wait before next beat. Will exit if beat time is invalid.
        sleep "$beat_time" || exit
    done
done
wjandrea
fuente
Impresionante uno también. Probado.
Parto
1

Toco la guitarra y uso gtick , funciona bastante bien para mí, puedo ajustar los latidos por minuto, el volumen e incluso las firmas de tiempo, 1 / 4,2 / 4,3 / 4, etc. puedes instalarlo desde la línea de comando usando:

sudo apt-get install gtick

aquí está mi gtick : i.imgsafe.org/f2dc6c70f2.png

Abel Tom
fuente
Ya mencionado por Nick. Tampoco funciona en mi sistema (Ubuntu Unity 16.04).
Jacob Vlijm
Sé que Nick lo mencionó, pero yo mismo he usado gtick, él no, como mencionó. Uso Ubuntu 16.04 LTS y funciona para mí, ¿echas de menos algunas dependencias de audio que faltan?
Abel Tom el
Vea esto: dl.dropboxusercontent.com/u/1155139/error.png sucede sin importar la configuración, etc., en múltiples sistemas. Lea algo al respecto, lo hizo correr con trucos en el pasado, no recuerdo lo que era. No quiero recordar Simplemente debería funcionar. Si algo como esto no se soluciona después de años, prefiero escribir mis propias cosas.
Jacob Vlijm
lo siento, no funcionó para ti, aquí está mi truco : i.imgsafe.org/f2dc6c70f2.png
Abel Tom
0

¿Has probado kmetronome? Debería poder usar apt-get / synaptic.

Jodamo117
fuente
También ya mencionado por Nick.
Jacob Vlijm