it-swarm.com.de

Wo finde ich ein Metronom für die Musikpraxis?

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 Anzahl von Malen pro Minute ausgibt.

Wenn ich 20bpm sage, wird dieser Ton alle 3 Sekunden ausgegeben. (60/20)
Wenn 60bpm, jede Sekunde.
Wenn alle eine 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 metronomes genannt, und sogar Google hat eine. Cooles Zeug.
https://www.google.com/search?q=metronomes
Danke Nick.

11
Parto

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 ( work in progress ) sollte schließlich zu einem Metronom führen, einschließlich GUI. 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 /usr/share/sounds/ubuntu/stereo/bell.ogg verwendet, 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:

enter image description here

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

enter image description here

Wie benutzt man

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

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

  3. Klicken Sie mit der rechten Maustaste auf das Bild oben, und speichern Sie es in ein und demselben Verzeichnis wie das Skript (genau) wie: 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 geschafft!

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:

enter image description here

enter image description here

enter image description here

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
    Längerfristig 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.

Endlich

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

enter image description here

20
Jacob Vlijm

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

Die Audiobearbeitungssoftware Audacity kann einen gleichmäßigen, metronomartigen Beat oder Ton erzeugen (siehe das 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 von Sudo apt install audacity in einem 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 Port habe hab selbst keinen ausprobiert.

9
Nick Weinberg

Einfaches Bash-Metronom

Verwendungszweck

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 befindet sich unter metronome-core.sh

Zum Beispiel

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
8
wjandrea

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

Sudo apt-get install gtick

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

1
Abel Tom

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

0
Jodamo117