kramann.info
© Guido Kramann

Login: Passwort:










3.11.8 Verwendung eines Soft Sequencers

3.11.8 Using a soft sequencer (EN google-translate)

3.11.8 Korzystanie z miękkiego sekwencera (PL google-translate)

MIDI ist ein Datenprotokoll für den Datenaustausch zwischen elektronischen Musikinstrumenten. Es ist bereits relativ alt. Heute würde man statt dessen eher OSC verwenden. Jedoch ist es sehr sehr verbreitet. In der vorliegenden Linux Distribution ist es möglich einen Soft Sequencer zu starten, der über MIDI Befehle von Processing aus gesteuert werden kann. Der Sequencer kann mit verschiedenen verschiedenen Soundfonts gestartet werden. Die Soundfonts beinhalten Klänge echter Musikinstrumente als Samples.

MIDI is a data protocol for data exchange between electronic musical instruments. It is already relatively old. Today, you would rather use OSC instead. However, it is very common. In this Linux distribution it is possible to start a soft sequencer which can be controlled via MIDI commands from Processing. The sequencer can be started with different soundfonts. The soundfonts include sounds of real musical instruments as samples.

MIDI jest protokołem danych do wymiany danych między elektronicznymi instrumentami muzycznymi. Jest już stosunkowo stary. Dzisiaj wolisz raczej używać OSC. Jest to jednak bardzo powszechne. W tej dystrybucji Linuksa można uruchomić miękki sekwencer, który można kontrolować za pomocą poleceń MIDI z Processing. Sekwenser można uruchomić z różnymi dźwiękami. Soundfonts zawierają dźwięki prawdziwych instrumentów muzycznych jako próbki.

Für das weiter gehende Studium der MIDI Befehle sei hier auf andere Webseiten verwiesen:

For further study of the MIDI commands, please refer to other websites:

Aby dowiedzieć się więcej o poleceniach MIDI, zapoznaj się z innymi stronami internetowymi:

https://www.hdm-stuttgart.de/~curdt/MIDI_Smierzewski.pdf
https://de.wikipedia.org/wiki/Musical_Instrument_Digital_Interface

Im Zusammenhang des Kurses ist wichtig folgendes zu wissen:

In the context of the course, it is important to know the following:

W kontekście kursu ważne jest, aby wiedzieć, co następuje:

Der Note-On Befehl

The note-on command

Polecenie nuty

Die verschiedenen verfügbaren Klänge sind mit verschiedenen Kanälen verknüpft. Eine Übersicht über die Abfolge der Klänge eines Soundfonts kann man sich am besten mit MuseScore verschaffen, indem man dort eine Mididatei öffnet und dazu einen Soundfont (Synthesizer). Dann kann man über den Mixer die vorliegende Komposition mit den verschiedenen Klängen spielen lassen.

The different available sounds are linked to different channels. An overview of the sequence of the sounds of a soundfont can best be obtained with MuseScore by: you open a midi file and a soundfont (synthesizer). Then you can use the mixer to play the composition with the different sounds.

Różne dostępne dźwięki są powiązane z różnymi kanałami. Przegląd sekwencji dźwięków soundfont można najlepiej uzyskać dzięki MuseScore: otworzysz plik midi i soundfont (syntezator). Następnie możesz użyć miksera do odtwarzania kompozycji z różnymi dźwiękami.

Neben dem Klang kann noch die Tonhöhe und die Lautstärke festgelegt werden. Beide können Werte zwischen 0 und 127 annehmen. Dabei steht 60 für die Tonhöhe c1. Die Zahlen entsprechen ansonsten Halbtonschritten in der temperierten Tonskala. Nicht alle Tonhöhen können bei jedem Soundfont-Kanal gespielt werden. Jedes reale Musikinstrument hat einen begrenzten Tonumfang.

In addition to the sound, the pitch and the volume can be set. Both can take values ​​between 0 and 127. 60 stands for the pitch c1. The numbers otherwise correspond to semitone steps in the tempered tone scale. Not all pitches can be played on any Soundfont channel. Every real musical instrument has a limited range.

Oprócz dźwięku można ustawić wysokość i głośność. Oba mogą przyjmować wartości od 0 do 127. 60 oznacza pitch c1. Liczby w inny sposób odpowiadają półtonom w skali hartowanego tonu. Nie wszystkie dźwięki można odtwarzać na dowolnym kanale Soundfont. Każdy prawdziwy instrument muzyczny ma ograniczony zasięg.

Vor- und Nachteile

Advantages and disadvantages

Zalety i wady

Der Vorteil bei der Verwendung des Soft Sequencers liegt in der Einfachheit der Befehle, über den er von Processing aus gesteuert werden kann.

The advantage of using the Soft Sequencer is in the simplicity of the commands through which it can be controlled by Processing.

Zaletą korzystania z Soft Sequencer jest w prostocie poleceń, przez które może być kontrolowany przez przetwarzanie.

Nachteilig gegenüber den bisher eingeführten Klangerzeugungsmethoden ist, dass diese Technik nur auf dem PC funktioniert und nicht auf einem Android Gerät.

A disadvantage compared to the previously introduced sound generation methods is that this technology works only on the PC and not on an Android device.

Wadą w porównaniu do wcześniej wprowadzonych metod generowania dźwięku jest to, że ta technologia działa tylko na komputerze, a nie na urządzeniu z systemem Android.

Ein Nachteil ist auch, dass die Übertragung von Midi Befehlen häufig fehlerhaft erfolgt. Dies führt dann unter anderem dazu, dass ein angespielter Ton nicht mehr ausgeschaltet wird.

Another disadvantage is that the transmission Of Midi commands is often done incorrectly. This then leads among other things to a played sound is not turned off.

Inną wadą jest to, że transmisja Polecenia Midi są często wykonywane niepoprawnie. To prowadzi między innymi do odtwarzany dźwięk nie jest wyłączony.

Ein einfaches Experiment

A simple experiment

Prosty eksperyment

Ein Soft Sequencer wird mit einem Soundfont als Service gestartet und einige Töne werden damit von einem Processing Programm aus gespielt.

A soft sequencer is started with a soundfont as a service and some sounds are played by a processing program.

Soft sequencer jest uruchamiany z soundfont jako usługa i niektóre dźwięki są odtwarzane przez program przetwarzający.

1) Starten des Soft Sequencers FLUIDSYNTH
1) Starten des Soft Sequencers FLUIDSYNTH
1) Starten des Soft Sequencer FLUIDSYNTH

1-1 Öffnen Sie ein Terminal und geben Sie nacheinander die folgenden Befehle ein. Beenden Sie jeden Befehl mit ENTER: (Sie können die Befehle einfach von dieser Seite kopieren und in die Konsole einfügen.)

1-1 Open a terminal and enter the following commands in succession. End each command with ENTER: (You can simply copy the commands from this page and paste them into the console.)

1-1 Otwórz terminal i wprowadź kolejno następujące polecenia. Zakończ każde polecenie przez ENTER: (Możesz po prostu skopiować polecenia z tej strony i wkleić je do konsoli.)

  • sudo modprobe snd-virmidi
  • sudo fluidsynth -is -a alsa -m alsa_seq -r 48000 "/home/fhbstud/system/soundfonts/schlagphon.sf2"

1-2 Kontrolle: Öffnen Sie ein zweites Terminal und geben Sie dort ein:

1-2 Control: Open a second terminal and enter there:

1-2 Sterowanie: Otwórz drugi terminal i tam wprowadź:

  • aconnect -o

Folgendes sollte zu sehen sein:

The following should be seen:

Powinno być widoczne:

client 14: 'Midi Through' [type=kernel]
    0 'Midi Through Port-0'
client 24: 'Virtual Raw MIDI 2-0' [type=kernel]
    0 'VirMIDI 2-0     '
client 25: 'Virtual Raw MIDI 2-1' [type=kernel]
    0 'VirMIDI 2-1     '
client 26: 'Virtual Raw MIDI 2-2' [type=kernel]
    0 'VirMIDI 2-2     '
client 27: 'Virtual Raw MIDI 2-3' [type=kernel]
    0 'VirMIDI 2-3     '
client 128: 'TiMidity' [type=user]
    0 'TiMidity port 0 '
    1 'TiMidity port 1 '
    2 'TiMidity port 2 '
    3 'TiMidity port 3 '
client 129: 'FLUID Synth (2988)' [type=user]
    0 'Synth input port (2988:0)'

Code 3.11.8-1: Result on Terminal

1-3 Geben Sie nun in dem zuletzt geöffneten Terminal folgenden Befehl ein:

1-3 Now enter the following command in the last open terminal:

1-3 Teraz wprowadź ostatnie polecenie w ostatnim otwartym terminalu:

  • sudo aconnect 24:0 129:0

129 ist dabei der Port von Fluidsynth. Er wird mit dem kleinsten virtuellen Midi Port verbunden, hier 24.

129 is the port of Fluidsynth. It is connected to the smallest virtual Midi port, here 2

129 jest portem Fluidsynth. Jest podłączony do najmniejszego wirtualnego portu Midi, tutaj 2

1-4 Verwenden Sie am besten Kopfhörer. Gehen Sie auf das Lautsprechersymbol und öffnen Sie Sound settings. Drehen Sie bei Output Devices die Lautstärke hoch.

1-4 It is best to use headphones. Go to the speaker icon and open Sound settings. Turn up the volume of Output Devices.

1-4 Najlepiej używać słuchawek. Przejdź do ikony głośnika i otwórz Ustawienia dźwięku. Zwiększ głośność urządzeń wyjściowych.

Verwendung von Capella
Use of capella
Wykorzystanie capella

Auch von Capella aus kann der Soft Sequencer jetzt verwendet werden. Wichtig ist dabei bei Optionen->Ausgabe "Synth input port (2988:0)" zu verwenden:

Also from Capella the soft sequencer can be used now.

Również z Capelli można teraz użyć miękkiego sekwencera.

Fluidsynth und Capella.

Bild 3.11.8-1: Fluidsynth und Capella.

2) Entwurf und Start eines einfachen Processing Programms
2) Design and start a simple processing program
2) Zaprojektuj i uruchom prosty program obróbki

Es wird die Bibliothek TheMidibus in Processing verwendet. Anhand der mitgelieferten Beispiele und der Referenz kann man die Möglichkeiten von TheMidibus kennen lernen. Das nachfolgende Beispiel ist eine angepaßte Version eines solchen Beispiels:

The library TheMidibus is used in processing. Based on the supplied examples and the reference you can get to know the possibilities of TheMidibus. The following example is a customized version of such an example:

Biblioteka TheMidibus jest używana do przetwarzania. Na podstawie dostarczonych przykładów i referencji można poznać możliwości TheMidibus. Poniższy przykład jest dostosowaną wersją takiego przykładu:

ACHTUNG: Schon bei der Programmierung sollte man, wie hier über das Drücken der SPACE Taste, eine Möglichkeit einbauen, um alle Stimmen auszuschalten. Erst danach sollte man das Programm anhalten, um zu vermeiden, dass Töne eingeschaltet bleiben. Wird dies nicht beachtet, kann es sein, dass nur noch ein Neustart des Computers hilft. Auch eine zu rasche Folge an Tönen oder das Setzen zu vieler Töne gleichzeitig, kann zu fehlerhaften Midiübertragungen führen.

ATTENTION: Already during programming you should as shown here by pressing the SPACE key, install a way to turn off all voices. Only then should you stop the program to avoid that sounds remain switched on. If this is not observed, it may be that only a restart of the computer helps. Even too fast a sequence of tones or setting too many sounds at the same time can lead to erroneous midi transmissions.

UWAGA: Już podczas programowania powinieneś jak pokazano tutaj, naciskając klawisz SPACE, zainstaluj sposób, aby wyłączyć wszystkie głosy. Tylko wtedy należy zatrzymać program, aby uniknąć pozostawienia włączonych dźwięków. Jeśli nie zostanie to zaobserwowane, może pomóc tylko ponowne uruchomienie komputera. Nawet zbyt szybka sekwencja dźwięków lub ustawienie zbyt wielu dźwięków w tym samym czasie może prowadzić do wadliwych transmisji midi.

import themidibus.*; //Import the library

MidiBus myBus; // The MidiBus

boolean ACTIVE = true;

void setup() 
{
  size(400, 400);
  background(0);

  MidiBus.list(); // List all available Midi devices on STDOUT. This will show each device's index and name.

  // Either you can
  //                   Parent In Out
  //                     |    |  |
  myBus = new MidiBus(this,  -1, 1); // Create a new MidiBus using the device index to select the Midi input and output devices respectively.
}

//Again: Chaos function ;-)
float r = 3.94;
float y_old = 0.56;
float y_new = 0.0;
int value=0;

public int nextValue()
{
  y_new = r*y_old*(1.0 - y_old);
  y_old = y_new;
  return (int)(100.0*y_new);    
}

void draw() 
{
  
  
  if(ACTIVE==false)
  {
      myBus.clearAll();
      background(0,255,0);
      return;
  }
  background(255,0,0);
  
  int channel = nextValue()%5;
  int pitch = 48 + nextValue()%49;
  int velocity = 50 + 10*(nextValue()%5);

  myBus.sendNoteOn(channel, pitch, velocity); // Send a Midi noteOn
  delay(100);
  myBus.sendNoteOff(channel, pitch, velocity); // Send a Midi nodeOff
  delay(100);
}

void delay(int time) 
{
  int current = millis();
  while(millis () < current+time)
  {
      Thread.yield();
  }    
}

void keyPressed() 
{
  if (key == ' ') 
  {
      ACTIVE = false;
  }
}

Code 3.11.8-2: miditest

miditest.zip -- sketch folder
Übung
exercise
ćwiczenie

Versuchen Sie auf der Grundlage des obigen Midi Programms eine algorithmische Komposition umzusetzen, die das Prinzip von drumming 4 von Steve Reich umsetzt. Berücksichtigen Sie dabei auch Kontrapunkt Regeln.

Based on the above Midi program, try to implement an algorithmic composition that implements the principle of drumming 4 by Steve Reich. Consider also counterpoint rules.

W oparciu o powyższy program Midi spróbuj zaimplementować algorytmiczną kompozycję, która implementuje zasadę gry na perkusji 4 Steve'a Reicha. Rozważ także zasady kontrapunktu.

https://www.youtube.com/watch?v=rwrboGBPSc4