Als Kind hatte ich ein Klavier, so ein echtes sowjetisches 300-Kilogramm-Kilogramm. Ich spielte gern darauf und spielte sogar etwas, nachdem ich die Musikschule abgeschlossen hatte. Ein Klavier ist cool, authentisch, aber überhaupt nicht praktisch. Und um für die Seele absolut unkompliziert zu sein, benötigen Sie außerdem ein Schlagzeug, fünf Absätze E-Gitarre, Klarinette, Sitar und Sample-Loops ...

Natürlich ist es jetzt nicht mehr erforderlich, aus der Wohnung ein Garagenstudio für sechs Gehälter zu erstellen. Es reicht aus, einen kostenlosen Musikeditor auf dem PC zu installieren. Aber das ist alles unangenehm.
Die PC-Tastatur ist überhaupt nicht wie ein Tasteninstrument, hier ist es nicht so. Darüber hinaus ist dies für den Unterricht eines Kindes überhaupt nicht geeignet. Es scheint keine andere Wahl zu geben, als einen Synthesizer zu kaufen. Aber Zweifel reißen mich immer noch auseinander.
Was ist ein Synthesizer? Ein großes Gerät mit einer Musiktastatur, die irgendwo einen anständigen Platz einnehmen sollte. In welche Akustik eingebaut ist, habe ich doch schon einen Receiver mit Lautsprechern. Welches hat einen hübschen PC eingebaut, aber ich habe einen guten PC.
Es stellt sich heraus, dass ich für 40.000 das kaufe, was ich bereits in bester Qualität habe, mit Ausnahme nur der Tastatur. Dies sind nur einige maximale irrationale Ausgaben.
Auf der Suche nach einem separaten Keyboard stieß ich auf eine Klasse von Geräten wie das USB MIDI Keyboard.
Es schien mir immer, dass MIDI aus dem Bereich der professionellen Musikaktivität stammt.
Aber jetzt wird die gesamte Musik auf einem PC an einem beliebigen Ort gemacht, was bedeutet, dass Musiker mobile Musiktastaturen benötigen, die problemlos in einen Rucksack passen.
Hier ist es!
Ein Plan bildete sich sofort in meinem Kopf. Wir verbinden das MIDI-Keyboard mit dem Home Media Center auf der Basis des Raspberry Pi 3, in dem sich der Software-Synthesizer dreht, und ermöglichen es jedem, der sein nächstes Meisterwerk jederzeit erfüllen möchte. Auf diesen MIDI-Keyboards befinden sich in der Regel eine Reihe von Reglern und zusätzlichen Tasten, die für verschiedene Effekte oder zusätzliche Musikinstrumente programmiert sind. Es sieht aus und klingt sehr cool!
Es gibt größere und kleinere Geräte, es gibt teurere und etwas billigere. Ich habe die Option für ungefähr 5 Sput gewählt. Er hat zwei Oktaven, eine normal große Taste, einen Schlagzeugknopf, einen Stimmknopf, von dem ein Anfänger elektronischer Musiker nur träumen kann.
Ich bin kein Spezialist für das Erstellen von Musik auf einem PC, daher war es schwierig, nach Wegen zu suchen, um meine Ideen umzusetzen. Informationen mussten Stück für Stück gesammelt werden. Das Puzzle nahm allmählich Gestalt an und es stellte sich heraus, dass eine funktionierende Lösung zusammengestellt wurde, die ich mit Ihnen teile. Seltsamerweise wurde in der Standard-Raspbian / Debian-Distribution alles gefunden, was Sie brauchten, und Sie mussten nicht einmal externe Repositorys verbinden.
Fluidsynth wird als Sequenzer verwendet (eine Anwendung, die MIDI-Dateien wiedergibt).
Das MIDI-Keyboard wird sofort über ALSA erkannt und kann an einen Sequenzer angeschlossen werden.
Um die Klänge verschiedener Instrumente abzuspielen, werden geöffnete Beispieldatenbanken im SoundFont2-Format verwendet. Installieren Sie zunächst alles.
sudo -s apt-get update apt-get -y install alsa-utils fluid-soundfont-gm fluidsynth
Wir verbinden das MIDI-Keyboard mit Raspberry und starten den Sequenzer im Servermodus:
fluidsynth -i -s -a alsa -g 3 /usr/share/sounds/sf2/FluidR3_GM.sf2
Wir führen den Befehl aus:
aconnect -o
Als Ergebnis sehen wir eine Liste der verfügbaren MIDI-Clients:
client 14: 'Midi Through' [type=kernel] 0 'Midi Through Port-0' client 20: 'VMini' [type=kernel] 0 'VMini MIDI 1 ' 1 'VMini MIDI 2 ' client 128: 'FLUID Synth (1628)' [type=user] 0 'Synth input port (1628:0)'
Hier ist es wichtig, dass wir uns die Nummern der Tastatur- und Sequenzer-Clients merken und sie dann mit dem folgenden Befehl verbinden:
aconnect 20:0 128:0
Jetzt können wir das Yamaha-Klavier spielen (dies ist das Standardinstrument). Lesen Sie das
Fluidsynth- Handbuch. Dort gibt es viele interessante Befehle, zum Beispiel, um das Instrument auf Schlagzeug oder Bläser
umzustellen , den Hall- oder Chorus-Wert einzustellen.
Machen wir unseren Software-Synthesizer bequem. Um die Tastatur nicht jedes Mal manuell mit dem Sequenzer zu verbinden, schreiben wir einen einfachen Dämon, der dies beim Start automatisch tut.
cat > /etc/init.d/fluidsynth << EOF #!/bin/bash ### BEGIN INIT INFO # Provides: fluidsynth # Required-Start: $all # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Fluidsynth deamon to play via MIDI-keyboard ### END INIT INFO startDaemon() { sleep 30s && fluidsynth -i -s -a alsa -g 3 --load-config=/home/osmc/midi-router >/var/log/fluidsynth & sleep 60s && aconnect 20:0 128:0 & } stopDaemon() { pkill -9 fluidsynth &> /dev/null } restartDaemon() { stopDaemon startDaemon } case "$1" in start) startDaemon ;; stop) stopDaemon ;; restart) restartDaemon ;; status) ;; *) startDaemon esac exit 0 EOF
Registrieren Sie den Daemon für die automatische Ausführung:
chmod 755 /etc/init.d/fluidsynth update-rc.d fluidsynth defaults
Bitte beachten Sie, dass jetzt beim Start die Konfigurationsdatei (/ home / osmc / midi-router) mit den Befehlen, die unsere Tastatur in einen echten Synthesizer verwandeln, an den Sequenzer übertragen wird.
Hier ist das Ding. Jede Taste und Drehung auf der Tastatur sendet bestimmte Ereignisse mit einer eigenen Nummer. Soweit ich weiß, gibt es keine besonderen Standards, daher macht jeder Hersteller, was er will. Ich möchte zum Beispiel, dass die quadratischen Tasten Schlagzeug spielen, die restlichen Tasten Klavier spielen, die Regler Lautstärke, Hall und Chorus regeln.
Daher muss ich die Ereigniscodes von der Tastatur verschiedenen Instrumenten und die Codes von den Ziehpunkten den Codes zuordnen, die der Sequenzer versteht. In fluidsynth erfolgt dies mit einem Router. Diese Befehle sind in der Konfigurationsdatei enthalten.
Hier ist ein Beispiel meiner Konfigurationsdatei mit Kommentaren zu deren Funktionsweise.
cat > /home/osmc/midi-router << EOF # , - load /usr/share/sounds/sf2/FluidR3_GM.sf2 load /home/osmc/241-Drums.SF2 # select 1 2 128 0 select 2 1 0 0 # 0 # router_begin note router_chan 0 0 0 1 router_par1 36 48 1 0 router_end # router_begin note router_chan 0 0 0 2 router_par1 0 35 1 0 router_end router_begin note router_chan 0 0 0 2 router_par1 49 255 1 0 router_end # , , # fluidsynth router_begin cc router_chan 0 0 0 2 router_par1 14 14 0 98 router_end router_begin cc router_chan 0 0 0 2 router_par1 15 15 0 11 router_end router_begin cc router_chan 0 0 0 2 router_par1 16 16 0 91 router_end router_begin cc router_chan 0 0 0 2 router_par1 17 17 0 93 router_end # 0, # # cc 0 7 0 EOF
Um herauszufinden, welche Codes Ihr Gerät generiert, müssen Sie dieses Dienstprogramm verwenden:
aseqdump -p 20:0
Sie hört und zeigt Ereignisse über das MIDI-Keyboard auf der Konsole an. Drücken Sie die Taste oder drehen Sie den Knopf und Sie sehen den Typ, den Kanal und den Ereigniscode. Sie können Ihr Keyboard so programmieren, wie Sie es möchten, und nicht so, wie es sich die Ingenieure ausgedacht haben, die den jeweiligen Synthesizer entwickelt haben. Vielen Dank an die Entwickler von fluidsynth, alsa, SoundFont2, Raspberry und V-Mini.
Übrigens spiegelt sich dieses Thema mit DIY-Synthesizern in mehreren Erfindungen wider, die ich zum Studium empfehle:
ein- und
zweimal .