Psycle has support for MIDI input events, which provides two features: enter data into the patterns and control Psycle in realtime.
MIDI messages can come from other software using a virtual MIDI device or from a MIDI keyboard or controller.
MIDI note on/off messages
can be mapped to any generator and instrument across all 16 MIDI channels. Selecting the instrument allows to use it with the Sampler or other machines that use the auxiliary column.
The parameters of Psycle Plug-ins and VST instruments and effects can be controlled by using MIDI continous controller (CC) messages.
This is the basic configuration. Select your midi device as the input into Psycle (find this in Psycle settings -> Input/Output tab). Sometimes there will be more than one port for your hardware, such as a MIDI through port and/or a data port.
Also, set the input method as Immediate, so that you don't need to worry about clocks and configuration.
Finally, set the options to select the generator and instrument to the way that better fits your usage. (find this in Psycle settings -> MIDI Controllers tab).
Note: Psycle does not autorefresh the list, so when you connect an USB MIDI device, you will need to reopen Psycle.
This is fairly easy once you understand the concept behind. You will need to setup what is known as a
Virtual MIDI port. This is a software emulated MIDI input/output port (yes, a port which does both!).
You will need software such as LoopBe or MIDI Yoke to create this virtual port.
If using Vista or Windows 7, I recommend using LoopBe, since it is more up-to-date. MIDI Yoke should work fine in Windows XP and offers more ports for free.
[MIDI Sequencer Out] -> [Virtual MIDI Output Port] and [Virtual MIDI Input Port] -> [Psycle MIDI In]
Select the main input device from one of those available in the Input device listbox. It should match the
output MIDI device of your MIDI sequencer.
Then, select the input method Synchronized with MIDI clock.
If you are using a separate device for MIDI Sync (see later for details) then you can select this from the Sync Device listbox,
although if you plan to send a MIDI sync clock through the same device as the main input device then you can leave this as Same as Input device.
If you wish to alter the MIDI headroom available for MIDI input (see later for details) then you can do so by entering a value
directly or by using the spin buttons to quickly increment/decrement the current value.
Finally, don't forget to setup the way to select the generator and instrument (find this in Psycle settings -> MIDI controllers tab)
Yes, in sequenced mode, the MIDI input can replace the pattern in sending the data. This data is buffered and played relative to the timestamp that it belongs to.
Yes. Psycle's MIDI support includes time syncronisation code. This allows fairly stable and usable syncronisation between Psycle generated audio and that generated by other synth/MIDI modules. You will need to set the latencies properly, or offset your non-Psycle MIDI/Audio tracks (in your sequencer) to align with the Psycle generator audio, but as long as you send some MIDI sync codes (or emulated sync) to Psycle you should keep the sync between the sequencer and Psycle. This is usually referred to as Transmit MIDI Start/Continue/Stop clock
Some sequencers (CakeWalk included) allow you to send a MIDI Sync Start code when playback is start from any point in the song (not just the very beginning). This is usually referred to as Use Start, never Continue or similar. If your sequencer has this facility it is recommed that you enable this in order to force Psycle to resync with the audio engine every time sequencer playback is initiated.
For the most part, the answer is No.
When the pattern view is active, MIDI input is always inmediate instead of synchronized.
Also, there is no synchronization between the midi clock and the tracker position (nor does it listen to the BPM, if present)
Said that, MIDI does work while Psycle is playing, so it can be used for live playback to play notes and control parameters with a MIDI keyboard and or controller.
A MIDI monitor is provided which allows to see the current state of Psycle's MIDI interface. The dialog is shown below with a short explanation of all values:
Yes, it is possible using the record in realtime button in the toolbar. This button will start recording when pressed,
and will stop when pressed again. It records all the audio that Psycle itself outputs.
Alternatively, there is also the possibility to use a virtual soundcard or use the feature to record what is playing if the soundcard supports it.
If your sequencer does not support outputing a MIDI clock, then you can use three controllers to simulate a clock using a standard MIDI track. Place a CC 121 as the first event in the song (preferably leaving a bar gap between it and the next midi event). Then every regular interval (say 1/16th of a bar) place a CC 122. You can send these events through any channel and setting a generator/instrument map is not required. Finally, to stop all sound, place a CC 124 right at the end of your song.
Do not forget to send a midi clock start if using the Synchronized mode. No message will be played until this is done.
The different audiodrivers have different implementations to get MIDI synchronization. Wasapi is sample accurate, Waveout and Directsound depend on drivers and ASIO is block accurate.
Directsound and Waveout accuracy depend on the Operating System and soundcard drivers, and ASIO accuracy is not better because the position is only updated when producing audio.
Set the midi headroom and number of audio buffers/size to the
lowest bearable value when working on a particular song (to make things
easier to work with). If you experience the occasional glitch then this
is not a problem - you are only working on the tune - sync should still
be regained within a few milliseconds.
Once you are ready to mix down
your song then set the midi headroom and audio settings to larger
values (adjust midi sequencer time offsets to take account of this with
regards to the other non-Psycle tracks) for this final mix - in order
to reduce the probability of rogue system MIDI latency or Psycle audio
"drop-outs" during this mix down.
If you mute a Psycle-controlling track in your sequencer and the current generator does not accept note-off messages, then you can (sometimes) press the main Psycle STOP button in to stop all notes and then let the MIDI restart all the others (appart from the track you wanted to mute of course).
For more interesting ways of setting controllers, get a program called CC-Mouse. This little application lets you control two parameters at a time using the mouse. Feed the output of this program into a virtual MIDI port and then through into your sequencer. You can then make smooth sweeps (of say a cut-off) using the mouse and record them in your sequencer!
Currently the main limitations of the MIDI input offered
by Psycle are relating to the delay in the MIDI getting into Psycle
(through Microsoft Windows) and, in a way, any audio engine drop-outs.
Audio engine drop-outs are nothing to do with the MIDI interface, and
can usually be rectified (or made much better) by increasing the number
of audio buffers and/or the size of these buffers.
To account for delays
in MIDI messages getting to Psycle the amount of midi
headroom (in milliseconds) is user-configurable. If you are experiencing a lot of
lost messages and/or poor syncronisation then try increasing this value.
The default is 0 milliseconds, but on slower systems or systems that
are running a lot of heavy-duty applications concurrently with Psycle,
it may be wise to increase this value. This will increase the audio
latency, but MIDI will be more stable and predictable.
PsycleMIDIChart.TXT(raw text)
The parameters of Psycle Plug-ins & VST machines
(both Generators and effects) can be mapped via MIDI using the Controllers 126 & 127.
They are used together as a "compound controller" to set up a link between any
free controller (CC 1-120) and a generator
parameter on the channel. For example, to map CC 32 to the channel's generator parameter
15 use:
CC 126, DATA 32 (followed by)
CC 127, DATA 15
It is usually not wise to map recognised MIDI controllers (e.g. Volume is CC 7) to generator
parameters, although mapping CC 7 to a generator's Master Volume
parameter does make perfect sense!
Note 1: The values of Psycle generators are displayed
in Hexadecimal (e.g. 0F in hex is 15 in decimal/sequencer).
Note 2: This only works in synchronized mode.
Note 3: These mappings take precedence to the ones setup in the MIDI Controllers tab in Psycle settings.
'Note Off' messages in synchronized mode can be disabled per MIDI channel using Controller 125, (a value different than zero enables it).
To use effects such as the GoaSlicer you will need to have a track sending tick-sync controllers to give the sync usually provided by the tracker. This is very easy, simply send (any channel, any patch, ...) a Controller 123, DATA 127 on every 1/16th note to simulate the typical required sync. In sequencers such as CakeWalk, you can simply create one bar of this sync pattern and then set the Loop parameter to some high value to ensure this pattern is sent every bar.
Make sure the internal tempo of Psycle matches that of your MIDI sequencer.