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 04:22]
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.
  
-==== Audio Connections ====+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.
  
-So the question you might ask is what gets connected to what? That is, of course, entirely up to you, but a common starting point is all nodes that make sounds (a DAW with synth plugins, soft synths, samplers, drum machines) should 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''​.+==== MIDI Connections ====
  
-A common variation on this is that certain audio nodes get pulled from ''​system playback''​ and plugged first into an effects filter (reverbEQdelaygate, et cetera), and then the output of that effect gets plugged into ''​system playback''​.+MIDIof coursedoes not send audio signals at allit sends digital signals which trigger [usually] audio.
  
-==== MIDI Output ==== +<WRAP tip> 
- +To get the most out of MIDI, read all about it in the [[midi|MIDI]] appendix. 
-MIDI, of course, does not send audio signals at all, so 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 device, so connecting MIDI devices independently of the singular ​MIDI input (virtual or otherwise) that your computer has access to is not uncommon.+</​WRAP>​
  
-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.+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. The important concept to remember is that everything broadcasts everything, so you must set the synth (or synth track, if the synth is just a plugin to a monolithic DAW) to only listen for a specific channel+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
  
-==== MIDI Input ====+[{{ midi2midi.jpg | Send MIDI to the ALSA Midi Through to make it available to JACK. }}]
  
-A common use-case for MIDI in computer music is to use an external hardware ​controller (such as a USB keyboardas the hardware front-end 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//.+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.
  
-MIDI input is exactly the same as MIDI output, except the other way roundFor the MIDI data to get into your JACK environment, you must connect the MIDI port from your ''​system capture''​ node and pipe it to devices expecting to receive ​MIDI data. Press some keys on your controllerand you should hear //some// intrument play, as long as something is listening on a MIDI channel. (Often, external controllers send an omni signalit sends all signals on all channels.}+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** portsIn the virtual ​MIDI world, there is no such limitationso 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&#​41to any number of virtual devices.
  
-Through ​your DAW or in the software synth, ​you can usually associate an input channel with incoming ​MIDI (basically filtering the MIDI stream at the door). Play the sequence you want to record or play, and you're once again making music+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 (redoutput port of **System Capture**This can be sent to any other node with a (red) MIDI In port.
  
-Once your sequence has been recorded into some MIDI file or MIDI region ​in a DAW, the controller'​s signal is no longer neededYou can unplug your controller and +<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 belongThese 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 107: 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|]]