Wo finde ich ein Metronom für die Musikpraxis?

12

Dies ist irgendwie eine Fortsetzung dieser Frage:

Wie kann ich die BPM (Beats per Minute) eines Songs ermitteln?

Aber jetzt, anstatt sie in Liedern zu entdecken, möchte ich sie erzeugen.


Ich bin auf der Suche nach einer Anwendung, die einen Ton (etwas wie ein Piepton) mit einer konfigurierbaren Häufigkeit pro Minute ausgibt.

Wenn ich 20bpm sage, wird dieser Ton alle 3 Sekunden ausgegeben. (60/20)
Wenn 60bpm, wird jede Sekunde
Wenn alle halbe Sekunde 120bpm.

Der Grund dafür ist, dass ich lerne, wie man Schlagzeug spielt und die BPM sehr wichtig aussieht. Ich verfolge dieses Video auf Youtube .

aktualisieren

Sie werden anscheinend angerufen metronomesund sogar Google hat eine. Cooles Zeug.
https://www.google.com/search?q=metronomes
Vielen Dank, Nick.

Parto
quelle
1
Audacity kann dies tun (schauen Sie im Menü "Generieren" nach), obwohl es wahrscheinlich einfachere Programme gibt. Online-Metronome sind reichlich vorhanden, wenn Sie während Ihres Trainings einen Internetzugang planen.
Nick Weinberg
2
gtick , klick , gtklick und kmetronome können andere Optionen sein und sind alle in den Ubuntu-Software-Repositories verfügbar.
Nick Weinberg
Die Metronome, die unter Linux laufen, scheinen stark veraltet zu sein. Funktioniert nicht, zumindest nicht sofort. Zeit, eins zu schreiben :) @NickWeinberg Ich habe sie alle ausprobiert und es scheint, dass sie (nicht mehr) funktionieren.
Jacob Vlijm
Hey @JacobVlijm Hast du ein Python-Skript, das das kann? Ich sollte wirklich Python lernen ...
Parto
Ich werde es gleich versuchen!
Jacob Vlijm

Antworten:

20

Wie in einem Kommentar erwähnt, konnte ich die erwähnten Metronome (die für Linux / Ubuntu existieren) unter 16.04 nicht zum Laufen bringen, zumindest nicht sofort. Ich habe nicht viel Zeit damit verbracht , es zum Laufen zu bringen , da praktisch alle den Eindruck erwecken, verlassen zu werden.

Zeit, eins zu schreiben ...


Diese Antwort ( in Arbeit ) sollte schließlich zu einem Metronom führen, einschließlich der grafischen Benutzeroberfläche. Ein guter Zeitpunkt, um mögliche Funktionen zu erwähnen, die Sie möchten.

1. CLI-Metronom

Das Erstellen eines einfachen Metronoms gestaltet sich schockierend einfach:

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

Wie benutzt man

  1. Das Metronom benötigt Vorbis-Tools, um den Sound abzuspielen

    sudo apt-get install vorbis-tools
    
  2. Kopieren Sie das obige Skript in eine leere Datei und speichern Sie es als metronome.py
  3. Führen Sie es mit der BPM als Argument aus:

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

    z.B:

    python3 /path/to/metronome.py 100
    

    Um es mit 100 Schlägen pro Minute laufen zu lassen

Hinweis

Für den Sound habe ich die Datei verwendet /usr/share/sounds/ubuntu/stereo/bell.ogg, die sich standardmäßig auf Ihrem System befinden sollte (getestet 14.04 / 16.04). Sie können jedoch jedes beliebige ( .ogg) Beispiel verwenden. In der endgültigen Version stehen eine Reihe von Optionen (Sounds) zur Verfügung.


2. Erschreckend einfache GUI-Version

Als nächster Schritt eine sehr einfache Version, die letzte Version ohne Installer:

Bildbeschreibung hier eingeben

Das Drehbuch

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

Das Bild

Bildbeschreibung hier eingeben

Wie benutzt man

  1. Wie die CLI-Version benötigt diese vorbis-tools:

    sudo apt-get install vorbis-tools
    
  2. Kopieren Sie das Skript in eine leere Datei und speichern Sie es unter metro.py

  3. Rechtsklicken Sie auf das Bild oben, speichern es in ein und dasselbe Verzeichnis wie das Skript als (genau): icon.png.
  4. Führen Sie einfach das Metronom mit dem folgenden Befehl aus:

    python3 /path/to/metro.py
    

3. PPA für das Orange Metronom

Es ist vollbracht!

Das Metronom ist zur Installation bereit.
Das Orange Metronom bietet eine Reihe verschiedener Sounds zur Auswahl, und die Beats können gruppiert werden. Alle Änderungen werden sofort auf das laufende Metronom angewendet:

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Installieren:

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

Arbeit zu tun

  • Derzeit stehen dem Metronom vier verschiedene Sounds zur Auswahl. Wahrscheinlich werden einige in den nächsten Tagen hinzugefügt, einige werden ersetzt / aktualisiert

  • Langfristig
    Langfristig denke ich darüber nach, die Option für (benutzerdefinierte) komplexe Strukturen wie 3 + 3 + 2, 2 + 2 + 2 + 3 usw. hinzuzufügen, die ich in vorhandenen Metronomen immer vermisst habe.

Schließlich

Die neueste (aktuelle) Version 0.5.3bietet eine Reihe von Sounds, vor allem aber die Möglichkeit, unregelmäßige (zusammengesetzte) Beats auszuführen. In dieser Version sind sie fest codiert. Kann ab Version> 1 angepasst werden.

Bildbeschreibung hier eingeben

Jacob Vlijm
quelle
@Parto cool, ich werde damit weitermachen. Was ist Ihre Ubuntu-Version übrigens?
Jacob Vlijm
Cool, wird hier sein. Ubuntu-Version: 14.04.
Parto
@Parto ... und die erste GUI-Version ...
Jacob Vlijm
1
Ich gebe dir die +15 für die richtige Antwort, aber +100 an Nick, um ihn auf über 2K zu bringen.
Parto
1
@Parto unbedingt! Könnte ein oder zwei Tage dauern, ich möchte ein paar Optionen einbauen.
Jacob Vlijm
9

Es hört sich so an, als suchst du ein Metronom!

Die Audiobearbeitungssoftware Audacity kann einen gleichmäßigen, metronomartigen Beat oder Ton erzeugen (siehe Menü "Generieren"), obwohl es einfachere Programme gibt, die ich unten auflisten werde. Audacity befindet sich in den Ubuntu-Software-Repositorys und kann über das Software Center oder durch Eingabe sudo apt install audacityin ein Terminalfenster installiert werden .

Online-Metronome sind reichlich vorhanden, wenn Sie während Ihres Trainings einen Internetzugang planen.

Andere Metronom-Software, die in den Ubuntu-Software-Repositories verfügbar ist , umfasst gtick , klick , gtklick und kmetronome , obwohl ich selbst keine davon ausprobiert habe.

Nick Weinberg
quelle
8

Einfaches Bash-Metronom

Verwendung

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

Die Info

  • Es wird standardmäßig mit 120 Schlägen pro Minute in 4 abgespielt
  • Weitere Informationen und ein viel ausgefeilteres Skript finden Sie auf meinem GitHub-Repo: metronome.sh . Das folgende Skript ist dort untermetronome-core.sh

Beispielsweise

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

Skript

#!/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
quelle
Super auch. Versuchte es aus.
Parto
1

Ich spiele Gitarre und benutze gtick . Es funktioniert ziemlich gut für mich. Ich kann die Beats pro Minute, die Lautstärke und sogar die Taktart einstellen, 1 / 4,2 / 4,3 / 4 und so weiter. Sie können es von der Kommandozeile aus installieren:

sudo apt-get install gtick

Hier ist mein gtick : i.imgsafe.org/f2dc6c70f2.png

Abel Tom
quelle
Bereits von Nick erwähnt. Funktioniert auch nicht auf meinem System (Ubuntu Unity 16.04).
Jacob Vlijm
Ich weiß, dass es von Nick erwähnt wird, aber ich habe gtick selbst verwendet, er hat es nicht, wie er erwähnt hat. Ich benutze Ubuntu 16.04 LTS und es funktioniert für mich. Vermissen Sie einige fehlende Audioabhängigkeiten oder so?
Abel Tom
Siehe hierzu: dl.dropboxusercontent.com/u/1155139/error.png geschieht unabhängig von den Einstellungen usw. auf mehreren Systemen. Lies etwas darüber, hatte es früher mit Tricks zu tun, erinnere dich nicht, was es war. Ich will mich nicht erinnern. Es sollte einfach funktionieren. Wenn so etwas nach Jahren nicht behoben ist, schreibe ich lieber meine eigenen Sachen.
Jacob Vlijm
Es tut mir leid, dass es bei dir nicht geklappt hat, hier ist mein gtick : i.imgsafe.org/f2dc6c70f2.png
Abel Tom
0

Haben Sie kmetronome ausprobiert? Sollte in der Lage sein, apt-get / synaptic zu verwenden.

Jodamo117
quelle
Auch schon von Nick erwähnt.
Jacob Vlijm