Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
patchage [2015/06/24 03:55]
slackermedia
patchage [2021/06/03 19:48] (current)
Line 1: Line 1:
-[[{arrowp.png|border:​0;​background:​none;​width:​0;​display:​inline-block;​position:​absolute;​top:​0;​left:​0;​}opencolorio|]] 
  
-[[{arrown.png|border:​0;​background:​none;​width:​0;​display:​inline-block;​position:​absolute;​top:​0;​margin-left:​2.5em;​}qjackctl|]] 
  
 ====== Patchage ====== ====== Patchage ======
Line 57: Line 55:
 Patchage starts in a disconnected state. To connect to a running JACK session, use the **System** menu → **Connect to JACK**. Patchage starts in a disconnected state. To connect to a running JACK session, use the **System** menu → **Connect to JACK**.
  
-Patchage'​s environment is determined by the running audio systems on your computer. If you have JACK running, then when you connect to it, Patchage will create nodes for each JACK port that you have configured. This means that if you are using ''​SEQ''​ as your MIDI sequencer ​(which you should probably be doing, unless you have a setup that requires something more complex), then JACK ports appear with both MIDI and JACK Audio ports available to you as routable ​objects. ​Everything is colour coded: ​JACK ports are green, ALSA ports are red, and MIDI ports are purpleIf you are colour-blind,​ you can re-assign colours by clicking on the boxes next to their labels in the top menu bar.+Patchage'​s environment is determined by the running audio systems on your computer. If you have JACK running, then when you connect to it, Patchage will create nodes for each JACK port on each JACK device ​you have configured. This means that if you are using ''​seq''​ as your MIDI sequencer, then JACK ports appear with both MIDI and JACK Audio ports available to you as route-able ​objects. ​ 
 + 
 +The different protocols for MIDI are colour coded: ​ 
 + 
 +  * Audio ports are green 
 +  * JACK MIDI ports are red 
 +  * ALSA MIDI ports are purple 
 + 
 +<WRAP tip> 
 +If you are colour-blind,​ you can re-assign colours by clicking on the boxes next to their labels in the top menu bar
 +</​WRAP>​ 
 + 
 +Each node has significant alignment: a port meeting the left edge of a node is an //input// port, and a port meeting the right edge of a node is an //output// port. You cannot connect output to output or input to input.  
 + 
 +You cannot connect two ports of differing colour categories, because those two systems do not connect at a lower level. They are presented in one screen because you may need to manipulate them in tandem, but never together.
  
 To connect two devices, just click and drag from one to another. As you drag, a "​cable"​ follows your mouse to the destination port. As long as you drag to a valid port, the cable "plugs in" to the device and the objects are routed. To connect two devices, just click and drag from one to another. As you drag, a "​cable"​ follows your mouse to the destination port. As long as you drag to a valid port, the cable "plugs in" to the device and the objects are routed.
 +
 +[{{ seqmidi.jpg | MIDI to MIDI, Audio to Audio. }}]
  
 To disconnect, right-click on either the sender or the receiver and select **Disconnect**. To disconnect, right-click on either the sender or the receiver and select **Disconnect**.
  
-===== Making Meaningful ​Connections =====+===== Audio Connections =====
  
-Remember, Linux audio and MIDI have two sides of their respective coins: one is the standardlow-level hardware recognition ​(and basic control) ALSAand the other is the high-levelreal-time performantinfinitely routable JACK serverYou cannot connect a device programmed for access to only ALSA to a JACK device. It //looks// like you should be able toand you will probably ​try to, but if an application is not programmed ​to recognise or use JACK as framework, then no amount of dragging a virtual cable onto a virtual device node is going to make sound being sent to ALSA emerge from JACK. It just cannot happen; computers don'​t ​bend that way.+If you are new to audio production, you might wonder how you know what should get connected to what. Ultimately, that is entirely up to youbut a common starting point is that all nodes that make sounds ​(a DAW with synth pluginssoft synthssamplersdrum machines) should get plugged into the ''​system playback''​ nodeIf you have two speakers on your deskthen the ports you want to plug into are probably ​''​1''​ and ''​2''​. If you aren't sending your audio output ​to a speaker, then you won'​t ​be able to hear it.
  
-Additionally,​ MIDI of course does not send audio signals at allso purple devices cannot connect to any other device except to other purple devices. This seems useless, but it is meaningful since MIDI hardware can be wired together in many different ways to either deliver MIDI data or pass MIDI data through to another deviceso connecting MIDI devices independently ​of the singular MIDI input (virtual or otherwise) ​that your computer has access to is not uncommon.+A common variation on this is that certain ​audio nodes get pulled from ''​system playback''​ and plugged first into an effects filter (reverbEQ, delay, gate, and other things provided by [[jackapps|Jack Rack]] ​or [[calf]])and then the output ​of that effect gets plugged into ''​system playback''​. If you want to avoid using stand-alone racks, use effects within ​your DAW or synth.
  
-==== MIDI Output ​====+==== MIDI Connections ​====
  
-To get the most out of MIDI, read all about it in the [[midi|MIDI]] appendix, and launch ​''​jackd'' ​set to use the ''​seq''​ MIDI driver.+MIDI, of course, does not send audio signals at all, it sends digital signals which trigger [usually] audio. 
 + 
 +<WRAP tip> 
 +To get the most out of MIDI, read all about it in the [[midi|MIDI]] appendix
 +</​WRAP>​ 
 + 
 +You should have launched ​''​jackd'' ​such that it uses the ''​seq''​ MIDI driver; for example:
  
 <​code>​ <​code>​
-$ jackd -X seq+$ jackd -R -d alsa -X seq
 </​code>​ </​code>​
  
-As explained in the [[midi|MIDI]] appendix, a sequencer's default behaviour is to send //all// MIDI data over the MIDI data streamso JACK will only spawn one MIDI port for each device because one MIDI port is all any device needs to receive any MIDI channel it is listening for. JACK-aware MIDI ports are red by default and exist in a node named for the process to which they belong. These are the MIDI ports you want to use.+With ''​seq'​', MIDI captured by your system ​is available throughout ​JACK.
  
-It is generally safe to ignore, or even hide, the raw ALSA MIDI ports (purple by default). You will probably ​not use these portsunless you have very complex ​MIDI setup that requires wiring behind ​the scenes. Usually, that's not the case.+If you are using a MIDI controller connected to your computer ​(that is, not a virtual keyboardbut physical device on your desk) then you must connect the MIDI data being delivered by that controller to the **MIDI Thru** port of your system.
  
-Unlike ​hardware setup, you do not need to daisy-chain your virtual ​MIDI devices; multiple "​cables"​ can be plugged into your sequencer'​s ​MIDI port, extending ​to multiple devices.+Do this by dragging-and-dropping ​a virtual ​cable from the (purple) output of your MIDI controller ​to the (purple) input of the MIDI Thru node
  
-A common use-case for MIDI in computer music is to use an external hardware controller (such as a USB keyboard) as the hardware frontend ​to software synths. This is particularly useful for trained pianists, who want to be able to play notes into the computer and have each touch recorded so that they can use a live performance as the basis for MIDI composition. This introduces a new data type to the setup: MIDI //input//.+[{{ midi2midi.jpg | Send MIDI to the ALSA Midi Through ​to make it available ​to JACK}}]
  
-==== MIDI Input ====+This connection ensures that MIDI signals from your controller are echoed into your JACK system by way of the ''​seq''​ driver, which bridges ALSA MIDI (the subsystem receiving MIDI signals through USB) and JACK MIDI.
  
 +On real world hardware, it would be expensive and bulky to have a dozen **MIDI Out** ports, so devices are daisy-chained from **MIDI Thru** ports to **MIDI In** ports. In the virtual MIDI world, there is no such limitation, so you can run as many cables as you want from your MIDI device &#​40;​your controller and&#​47;​or the DAW or sequencer you are using to trigger MIDI events&#​41;​ to any number of virtual devices.
  
 +The source of MIDI events for your controller is bridged from the (purple) **ALSA Thru** port into your **System Capture** node (you can think of it as a Line In or Mic In, but for MIDI), so MIDI events are sent from the (red) output port of **System Capture**. This can be sent to any other node with a (red) MIDI In port.
 +
 +<WRAP important>​
 +JACK only spawns one MIDI port for each device because one MIDI port is all any device needs to receive any MIDI channel it is listening for. JACK-aware MIDI ports are red by default and exist in a node named for the process to which they belong. These are the MIDI ports you want to use.
 +</​WRAP>​
 +
 +The routing is relatively simple from a high level application like Patchage; connect a MIDI source (like your USB controller, or a DAW or sequencer into which you have written MIDI data in, for instance, the piano roll editor) to something that can be triggered by MIDI (such as a synth or sampler). Then route the //audio// output of that instrument to your **System Playback** port. Play a sequence and you should hear the instruments playing along.
 +
 +The catch is that the instruments must be told what MIDI channel they should listen to. This is not done in Patchage, but in the instrument (synth, sampler, DAW plugin, etc) itself.
 +
 +For example, if you have two instances of [[synths|Yoshimi]] open, each receiving MIDI data from your controller or from your DAW, then both of them are probably set to MIDI channel 1. This is probably not what you want, unless you really do want the two to play in unison. Setting one to Channel 1 and the other to Channel 2, for example, will split their response to those two signals, and play separate parts (assuming you have set your DAW to broadcast Channels 1 and 2).
 +
 +See the documentation for the application of your choice here on Slackermedia to learn how to set which MIDI channel is broadcast and/or responded to when received.
 +
 +Read the [[midi|MIDI]] appendix for more information on MIDI in general.
  
 <WRAP tip> <WRAP tip>
Line 94: Line 130:
 </​WRAP>​ </​WRAP>​
  
 +<WRAP centeralign>​
 +<wrap fa>​[[opencolorio|R]]</​wrap>​ <wrap fa>​[[start|S]]</​wrap>​ <wrap fa>​[[planter|Q]]</​wrap>​
 +</​WRAP>​
  
-====================== 
- 
-[[{arrown.png|border:​0;​background:​none;​width:​0;​display:​inline-block;​float:​right;​}qjackctl|]][[{arrowp.png|border:​0;​background:​none;​width:​0;​float:​right;​}opencolorio|]]