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/23 04:32]
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.
  
-To dis-connectright-click on either the sender or the receiver and select **Disconnect**.+[{{ seqmidi.jpg | MIDI to MIDIAudio to Audio}}]
  
-===== Making Meaningful Connections =====+To disconnect, right-click on either the sender or the receiver and select **Disconnect**.
  
-Linux audio has two faces: one is the standard, low-level hardware recognition (and basic control) ASLA, and the other is the high-level, real-time performance,​ infinitely routable JACK server. You cannot connect an ALSA device to a JACK device. It //looks// like you should be able to, but if an application is not programmed to recognise or use JACK as a 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.+===== Audio Connections =====
  
-Additionally,​ MIDI of course does not send audio signals at allso purple devices cannot connect ​to any other device except other purple devicesThis seems uselessbut 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 otherwisethat your computer has access ​to is not uncommon.+If you are new to audio productionyou might wonder how you know what should get connected ​to whatUltimatelythat is entirely up to youbut a common starting point is that all nodes that make sounds ​(a DAW with synth plugins, soft synths, samplers, drum machinesshould get plugged into the ''​system playback''​ node. If you have two speakers on your desk, then 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.
  
-The MIDI signal you care about is embedded in each device; the system ​itself has at least one MIDI output port, and this can be routed to one or more of the devices as long as that device accepts MIDINot all devices do accept MIDI (for examplean effect unit may or may not have any use for MIDI), but most do.+A common variation on this is that certain audio nodes get pulled from ''​system ​playback''​ and plugged first into an effects filter (reverb, EQ, 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.
  
-Programme within the receiving application what MIDI channel in that MIDI stream it is listening for.+==== MIDI Connections ====
  
 +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>​
 +$ jackd -R -d alsa -X seq
 +</​code>​
 +
 +With ''​seq'',​ MIDI captured by your system is available throughout JACK.
 +
 +If you are using a MIDI controller connected to your computer (that is, not a virtual keyboard, but a 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.
 +
 +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. 
 +
 +[{{ midi2midi.jpg | Send MIDI to the ALSA Midi Through to make it available to JACK. }}]
 +
 +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 81: 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|]]