Gdzie mogę znaleźć metronom do ćwiczeń muzycznych?

12

Jest to w jakiś sposób kontynuacja tego pytania:

Jak mogę wykryć BPM (uderzenia na minutę) utworu?

Ale teraz zamiast wykrywać je w piosenkach, chcę je wygenerować.


Szukam aplikacji, która wyda dźwięk (coś krótkiego jak sygnał dźwiękowy) konfigurowalną liczbę razy na minutę.

Jeśli powiem 20 bpm, dźwięk będzie odtwarzany co 3 sekundy. (60/20)
Jeśli 60 uderzeń na minutę , co sekundę.
Jeśli 120 uderzeń na minutę co pół sekundy.

Powodem tego jest to, że uczę się grać na zestawach perkusyjnych, a bpm wydaje się bardzo ważne. Śledzę ten film na youtube .

aktualizacja

Wygląda na to, że są nazywane, metronomesa nawet Google je ma. Fajne rzeczy.
https://www.google.com/search?q=metronomes
Dzięki, Nick.

Parto
źródło
1
Audacity może to zrobić (zajrzyj do menu „Generuj”), chociaż prawdopodobnie istnieją prostsze programy. Metronomy online są obfite, jeśli planujesz mieć dostęp do Internetu podczas swojej praktyki.
Nick Weinberg,
2
gtick , klick , gtklick i kmetronome mogą być innymi opcjami i wszystkie są dostępne w repozytoriach oprogramowania Ubuntu.
Nick Weinberg,
Wydaje się, że metronomy działające pod Linuksem są bardzo przestarzałe. Nie działa, przynajmniej nie po wyjęciu z pudełka. Czas napisać jeden :) @NickWeinberg Próbowałem ich wszystkich, nie działa (już więcej) wydaje się.
Jacob Vlijm,
Hej @JacobVlijm Masz skrypt Pythona, który może to zrobić? Naprawdę powinienem nauczyć się pytona ...
Parto
Niedługo dam temu szansę!
Jacob Vlijm,

Odpowiedzi:

20

Jak wspomniano w komentarzu, nie mogłem sprawić, by wspomniane metronomy (istniejące dla Linux / Ubuntu) działały 16.04, przynajmniej nie po wyjęciu z pudełka. Nie poświęciłem dużo czasu na uruchomienie go , ponieważ praktycznie wszystkie z nich sprawiają wrażenie porzuconych.

Czas napisać jeden ...


Ta odpowiedź ( praca w toku ) powinna ostatecznie doprowadzić do metronomu, w tym GUI. Dobry czas, aby wspomnieć o możliwych funkcjach, które chcesz.

1. Metronom CLI

Stworzenie prostego metronomu okazuje się szokująco proste:

#!/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"])

Jak używać

  1. Metronom potrzebuje narzędzi vorbis do odtwarzania dźwięku

    sudo apt-get install vorbis-tools
    
  2. Skopiuj powyższy skrypt do pustego pliku i zapisz go jako metronome.py
  3. Uruchom go z argumentem bpm jako argumentem:

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

    na przykład:

    python3 /path/to/metronome.py 100
    

    Aby uruchomić go ze 100 uderzeniami na minutę

Uwaga

Do dźwięku użyłem pliku /usr/share/sounds/ubuntu/stereo/bell.ogg, który powinien być domyślnie w twoim systemie (testowany 14.04 / 16.04). Możesz jednak użyć dowolnej ( .ogg) próbki, którą lubisz. W ostatecznej wersji dostępnych będzie wiele opcji (dźwięków).


2. Szokująco prosta wersja GUI

Kolejnym krokiem jest bardzo podstawowa wersja, ostatnia wersja bez instalatora:

wprowadź opis zdjęcia tutaj

Scenariusz

#!/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()

Obraz

wprowadź opis zdjęcia tutaj

Jak używać

  1. Podobnie jak wersja cli, ta potrzebuje vorbis-tools:

    sudo apt-get install vorbis-tools
    
  2. Skopiuj skrypt do pustego pliku i zapisz go jako metro.py

  3. Kliknij prawym przyciskiem myszy na obrazek powyżej, zapisz go w jednym i tym samym katalogu co skrypt (dokładnie) jako: icon.png.
  4. Po prostu uruchom metronom za pomocą polecenia:

    python3 /path/to/metro.py
    

3. PPA dla pomarańczowego metronomu

Zrobione!

Metronom jest gotowy do instalacji.
Pomarańczowy metronom jest wyposażony w zestaw różnych dźwięków do wyboru, a beaty można grupować. Wszystkie zmiany są stosowane natychmiast na uruchomionym metronomie:

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Żeby zainstalować:

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

Praca do zrobienia

  • Obecnie metronom posiada cztery różne dźwięki do wyboru. Prawdopodobnie kilka zostanie dodanych w ciągu kilku najbliższych dni, niektóre z nich zostaną zastąpione / zaktualizowane

  • Na dłuższą metę
    Na dłuższą metę myślę o dodaniu opcji (niestandardowych) złożonych struktur, takich jak 3 + 3 + 2, 2 + 2 + 2 + 3 itd., Których zawsze brakowało w istniejących metronomach.

Wreszcie

Najnowsza (obecna) wersja 0.5.3dodaje wiele dźwięków, ale co ważniejsze, opcja uruchamiania nieregularnych (kompozytowych) uderzeń. W tej wersji są one zakodowane na stałe. Będzie można dostosować od wersji> 1.

wprowadź opis zdjęcia tutaj

Jacob Vlijm
źródło
@Parto cool, będę kontynuować. Jaka jest twoja wersja Ubuntu btw?
Jacob Vlijm,
Fajnie, będzie tutaj. Wersja Ubuntu: 14.04.
Parto
@Parto ... i pierwsza wersja GUI ...
Jacob Vlijm
1
Dam ci +15 za poprawną odpowiedź, ale +100 do Nicka, aby dostać go do ponad 2 000 powtórzeń.
Parto
1
@Parto absolutnie! Może potrwać dzień lub dwa, chciałbym zbudować kilka opcji.
Jacob Vlijm,
9

Wygląda na to, że szukasz metronomu!

Oprogramowanie do edycji audio Audacity może generować stały rytm lub ton podobny do metronomu (patrz menu „Generuj”), chociaż istnieją prostsze programy, które wymienię poniżej. Audacity znajduje się w repozytoriach oprogramowania Ubuntu i można je zainstalować za pośrednictwem Centrum oprogramowania lub wpisując sudo apt install audacityw oknie terminala.

Metronomy online są obfite, jeśli planujesz mieć dostęp do Internetu podczas swojej praktyki.

Inne oprogramowanie metronomowe dostępne w repozytoriach oprogramowania Ubuntu obejmuje gtick , klick , gtklick i kmetronome , chociaż sam nie próbowałem żadnego z nich.

Nick Weinberg
źródło
8

Prosty metronom Bash

Stosowanie

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

Informacje

  • Domyślnie gra z prędkością 120 uderzeń na minutę na 4
  • Więcej informacji i znacznie bardziej wyrafinowany skrypt jest dostępny na moim repozytorium GitHub: metronome.sh . Poniższy skrypt znajduje się poniżejmetronome-core.sh

Na przykład

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

Scenariusz

#!/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
źródło
Świetny też. Wypróbowałem to.
Parto
1

gram na gitarze i używam gtick , działa całkiem dobrze dla mnie, mogę regulować uderzenia na minutę, głośność, a nawet sygnatury czasowe, 1 / 4,2 / 4,3 / 4 itd. możesz zainstalować go z wiersza poleceń, używając:

sudo apt-get install gtick

oto mój gtick : i.imgsafe.org/f2dc6c70f2.png

Abel Tom
źródło
Wspomniany już przez Nicka. Również nie działa w moim systemie (Ubuntu Unity 16.04).
Jacob Vlijm
Wiem, że wspomniany przez Nicka, ale sam użyłem GTick, jak nie wspomniał. Używam Ubuntu 16.04 LTS i działa dla mnie, czy brakuje Ci jakichś zależności audio?
Abel Tom
Zobacz: dl.dropboxusercontent.com/u/1155139/error.png dzieje się bez względu na ustawienia itp. W wielu systemach. Przeczytaj coś na ten temat, w przeszłości działał z trikami, nie pamiętam, co to było. Nie chcę pamiętać Powinno po prostu działać. Jeśli po latach coś takiego nie zostanie naprawione, wolę pisać własne rzeczy.
Jacob Vlijm
przepraszam, że to nie zadziałało, oto mój gtick : i.imgsafe.org/f2dc6c70f2.png
Abel Tom
0

Próbowałeś kmetronome? Powinny być w stanie używać apt-get / synaptic.

Jodamo117
źródło
Wspomniany już również przez Nicka.
Jacob Vlijm,