relpipe-data/examples-jack-ports.xml
author František Kučera <franta-hg@frantovo.cz>
Mon, 21 Feb 2022 00:43:11 +0100
branchv_0
changeset 329 5bc2bb8b7946
parent 317 fce3d6290c40
permissions -rw-r--r--
Release v0.18
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
317
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     1
<stránka
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     2
	xmlns="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/strana"
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     3
	xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro">
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     4
	
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     5
	<nadpis>Working with JACK ports</nadpis>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     6
	<perex>list ports and connections, connect and disconnect ports, both MIDI and audio</perex>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     7
	<m:pořadí-příkladu>04400</m:pořadí-příkladu>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     8
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     9
	<text xmlns="http://www.w3.org/1999/xhtml">
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    10
		
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    11
		<p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    12
			A powerful audio system called <a href="https://jackaudio.org/">JACK</a> allows us to
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    13
			build pipelines consisting of audio interfaces, players, recorders, filters and effects…
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    14
			and route sound streams (both PCM and MIDI) through them.
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    15
			MIDI messages can come from keyboards or other hardware MIDI controllers or from MIDI players and other software.
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    16
		</p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    17
		
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    18
		<p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    19
			In JACK, we have <em>clients</em> (applications) and they have <em>ports</em> (input and output channels).
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    20
			The JACK graph consists of connections between input and output ports.
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    21
			There might be multiple connections from or to a single port – singals are then replicated or combined.
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    22
			Obviously, we can connect MIDI ports only to other MIDI ports and PCM/audio ports only to other ports of the same kind.
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    23
			However there can be applications with both kinds of ports that e.g. translate MIDI signal to audio signal (synthesizers).
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    24
		</p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    25
		
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    26
		<m:img src="img/jack-connections-2.png"/>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    27
		
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    28
		<p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    29
			The JACK <em>daemon</em> is responsible for maintaining the graph and transmitting the messages.
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    30
			Clients connect to the <em>daemon</em>.
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    31
		</p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    32
		
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    33
		<p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    34
			Since <m:a href="release-v0.17">v0.17</m:a>, we can list the ports using the <code>relpipe-in-jack</code> command:
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    35
		</p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    36
		
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    37
		<m:pre jazyk="bash"><![CDATA[relpipe-in-jack --list-ports true --list-midi-messages false | relpipe-out-tabular]]></m:pre>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    38
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    39
		<p>and see it as a relation:</p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    40
		
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    41
		<pre><![CDATA[port:
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    42
 ╭───────────────────────────────────┬───────────────┬─────────────────┬──────────────────┬────────────────────┬────────────────────┬────────────────┬────────────────┬─────────────────────────╮
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    43
 │ name                     (string) │ uuid (string) │ input (boolean) │ output (boolean) │ physical (boolean) │ terminal (boolean) │ mine (boolean) │ midi (boolean) │ type           (string) │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    44
 ├───────────────────────────────────┼───────────────┼─────────────────┼──────────────────┼────────────────────┼────────────────────┼────────────────┼────────────────┼─────────────────────────┤
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    45
 │ system:capture_1                  │               │           false │             true │               true │               true │          false │          false │ 32 bit float mono audio │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    46
 │ system:capture_2                  │               │           false │             true │               true │               true │          false │          false │ 32 bit float mono audio │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    47
 │ system:playback_1                 │               │            true │            false │               true │               true │          false │          false │ 32 bit float mono audio │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    48
 │ system:playback_2                 │               │            true │            false │               true │               true │          false │          false │ 32 bit float mono audio │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    49
 │ j2a_bridge:playback               │               │            true │            false │              false │              false │          false │           true │ 8 bit raw midi          │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    50
 │ relpipe-in-jack_processed:midi-in │               │            true │            false │              false │              false │          false │           true │ 8 bit raw midi          │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    51
 │ relpipe-out-jack:midi-out         │               │           false │             true │              false │              false │          false │           true │ 8 bit raw midi          │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    52
 │ a2j_bridge:capture                │               │           false │             true │              false │              false │          false │           true │ 8 bit raw midi          │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    53
 │ yoshimi:left                      │               │           false │             true │              false │              false │          false │          false │ 32 bit float mono audio │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    54
 │ yoshimi:right                     │               │           false │             true │              false │              false │          false │          false │ 32 bit float mono audio │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    55
 │ yoshimi:midi in                   │               │            true │            false │              false │              false │          false │           true │ 8 bit raw midi          │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    56
 │ Qtractor:Master/in_1              │               │            true │            false │              false │              false │          false │          false │ 32 bit float mono audio │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    57
 │ Qtractor:Master/in_2              │               │            true │            false │              false │              false │          false │          false │ 32 bit float mono audio │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    58
 │ Qtractor:Master/out_1             │               │           false │             true │              false │              false │          false │          false │ 32 bit float mono audio │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    59
 │ Qtractor:Master/out_2             │               │           false │             true │              false │              false │          false │          false │ 32 bit float mono audio │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    60
 │ qmidiarp:in                       │               │            true │            false │              false │              false │          false │           true │ 8 bit raw midi          │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    61
 │ qmidiarp:out 1                    │               │           false │             true │              false │              false │          false │           true │ 8 bit raw midi          │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    62
 │ qmidiarp:out 2                    │               │           false │             true │              false │              false │          false │           true │ 8 bit raw midi          │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    63
 │ jack-keyboard:midi_out            │               │           false │             true │              false │              false │          false │           true │ 8 bit raw midi          │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    64
 │ jack-keyboard:midi_in             │               │            true │            false │              false │              false │          false │           true │ 8 bit raw midi          │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    65
 │ relpipe-in-jack_original:midi-in  │               │            true │            false │              false │              false │          false │           true │ 8 bit raw midi          │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    66
 │ relpipe-in-jack:midi-in           │               │            true │            false │              false │              false │           true │           true │ 8 bit raw midi          │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    67
 ╰───────────────────────────────────┴───────────────┴─────────────────┴──────────────────┴────────────────────┴────────────────────┴────────────────┴────────────────┴─────────────────────────╯
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    68
Record count: 22]]></pre>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    69
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    70
		<p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    71
			Port names are prefixed with the names of clients.
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    72
			We see the port direction in the <code>input</code> and <code>output</code> attributes
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    73
			and can distinguish MIDI and audio ports by the value of the <code>midi</code> attribute.
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    74
		</p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    75
		
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    76
		<p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    77
			We can also list the connections using the <code>--list-connections true</code> option:
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    78
		</p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    79
		
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    80
		<pre><![CDATA[connection:
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    81
 ╭────────────────┬───────────────────────────┬───────────────────────────────────╮
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    82
 │ event (string) │ source_port      (string) │ destination_port         (string) │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    83
 ├────────────────┼───────────────────────────┼───────────────────────────────────┤
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    84
 │ connect        │ system:capture_1          │ Qtractor:Master/in_1              │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    85
 │ connect        │ system:capture_2          │ Qtractor:Master/in_2              │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    86
 │ connect        │ relpipe-out-jack:midi-out │ qmidiarp:in                       │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    87
 │ connect        │ relpipe-out-jack:midi-out │ relpipe-in-jack_original:midi-in  │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    88
 │ connect        │ yoshimi:left              │ system:playback_1                 │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    89
 │ connect        │ yoshimi:right             │ system:playback_2                 │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    90
 │ connect        │ Qtractor:Master/out_1     │ system:playback_1                 │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    91
 │ connect        │ Qtractor:Master/out_2     │ system:playback_2                 │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    92
 │ connect        │ qmidiarp:out 1            │ yoshimi:midi in                   │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    93
 │ connect        │ qmidiarp:out 1            │ relpipe-in-jack_processed:midi-in │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    94
 │ connect        │ jack-keyboard:midi_out    │ qmidiarp:in                       │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    95
 │ connect        │ jack-keyboard:midi_out    │ relpipe-in-jack_original:midi-in  │
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    96
 ╰────────────────┴───────────────────────────┴───────────────────────────────────╯
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    97
Record count: 12]]></pre>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    98
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    99
		<p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   100
			Instead of formatting as a table, we can direct this relation into a file and later recreate the saved connections:
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   101
		</p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   102
		
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   103
		<m:pre jazyk="bash"><![CDATA[relpipe-in-jack --list-connections true --list-midi-messages false > connections.rp
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   104
cat connections.rp | relpipe-out-jack --required-connections 0]]></m:pre>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   105
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   106
		<p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   107
			If we want to store the connections in a human readable format in order to be able to edit them,
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   108
			we should add e.g. <code>relpipe-out-csv</code> (or XML, or Recfile) stage before redirecting the stream to the file
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   109
			and add <code>relpipe-in-csv</code> etc. stage to the second pipeline.
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   110
		</p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   111
		
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   112
		<pre><![CDATA["event","source_port","destination_port"
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   113
"connect","system:capture_1","Qtractor:Master/in_1"
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   114
"connect","system:capture_2","Qtractor:Master/in_2"
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   115
"connect","relpipe-out-jack:midi-out","qmidiarp:in"
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   116
"connect","relpipe-out-jack:midi-out","relpipe-in-jack_original:midi-in"
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   117
"connect","yoshimi:left","system:playback_1"
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   118
"connect","yoshimi:right","system:playback_2"
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   119
"connect","Qtractor:Master/out_1","system:playback_1"
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   120
"connect","Qtractor:Master/out_2","system:playback_2"
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   121
"connect","qmidiarp:out 1","yoshimi:midi in"
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   122
"connect","qmidiarp:out 1","relpipe-in-jack_processed:midi-in"
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   123
"connect","jack-keyboard:midi_out","qmidiarp:in"
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   124
"connect","jack-keyboard:midi_out","relpipe-in-jack_original:midi-in"]]></pre>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   125
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   126
		
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   127
		<p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   128
			Or we can write the file by hand and just send it to the JACK output module:
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   129
		</p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   130
		
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   131
		<m:pre jazyk="bash"><![CDATA[cat connections.csv | relpipe-in-csv | relpipe-out-jack --required-connections 0]]></m:pre>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   132
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   133
		<p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   134
			The primary purpose of the <code>relpipe-out-jack</code> is sending MIDI messages.
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   135
			And because it does not make much sense to send them nowhere, it waits for at least one connection.
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   136
			But if we are not sending any messages and are using this tool just to connect or disconnect the ports,
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   137
			we should set <code>--required-connections 0</code>.
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   138
		</p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   139
		
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   140
		<p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   141
			We can also connect or disconnect particular ports specified on the command line:
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   142
		</p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   143
		
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   144
		<m:pre jazyk="bash"><![CDATA[relpipe-in-jack --connect-ports "a2j_bridge:capture" "qmidiarp:in" --list-midi-messages false]]></m:pre>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   145
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   146
		<p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   147
			The primary purpose of the <code>relpipe-in-jack</code> command is monitoring the MIDI commands.
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   148
			If we want just to connect or disconnect some ports, we can disable monitoring by setting <code>--list-midi-messages false</code>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   149
			and the command will return immediately.
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   150
		</p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   151
		
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   152
		<p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   153
			The port names are suggested by the Bash-completion, so we do not have to memorize them.
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   154
			Because these names contain the colon, we should use quotes (otherwise the Bash-completion may be confused).
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   155
		</p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   156
		
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   157
		<p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   158
			Disconnecting works the same way – just use the <code>--disconnect-ports</code> option
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   159
			or specify the <code>disconnect</code> command in the <code>event</code> attribute.
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   160
		</p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   161
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   162
		<p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   163
			Note: there are sophisticated GUI tools focused on working with the JACK graph
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   164
			like <a href="https://qjackctl.sourceforge.io/">QjackCtl</a> or <a href="https://kx.studio/Applications:Claudia">KXStudio/Claudia</a>.
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   165
			But sometimes it is useful to have a simple CLI tool for this job.
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   166
		</p>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   167
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   168
	</text>
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   169
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
   170
</stránka>