Logic Pro User Guide
- Welcome
-
- What is Logic Pro?
- Logic Pro project basics
- Use menu commands and key commands in Logic Pro
- Use the complete set of Logic Pro features
- Undo and redo edits
- Manage Logic Pro content
- How to get help
-
- Projects overview
- Create projects
- Open projects
- Save projects
- Delete projects
-
- Play a project
- Set the playhead position
- Control playback with the transport buttons
- Use transport shortcut menus
- Use transport key commands
- Customize the control bar
- Change the LCD display mode in Logic Pro
- Monitor and reset MIDI events
- Use the cycle area
- Use the Chase Events function
- Use Apple Remote to control Logic Pro
- Use Logic Remote to control Logic Pro projects
- Preview projects in the Finder
- Close projects
- View project information
-
- Overview
-
- Before recording software instruments
- Play software instruments
- Record software instruments
- Record additional software instrument takes
- Overdub software instrument recordings
- Spot erase software instrument recordings
- Use Note Repeat
- Record to multiple software instrument tracks
- Replace software instrument recordings
- Record multiple MIDI devices to multiple tracks
- Record software instruments and audio simultaneously
- Use step input recording techniques
- Use the metronome
-
- Arranging overview
-
- Regions overview
- Select regions
- Select parts of regions
- Cut, copy, and paste regions
- Move regions
- Add or remove gaps
- Delay region playback
- Loop regions
- Repeat regions
- Resize regions
- Mute and solo regions
- Time stretch regions
- Reverse audio regions
- Split regions
- Demix MIDI regions
- Join regions
- Create regions in the Tracks area
- Change the gain of audio regions in the Tracks area in Logic Pro
- Normalize audio regions in the Tracks area
- Create aliases of MIDI regions
- Convert repeated MIDI regions to loops
- Change the color of regions
- Convert audio regions to samples for a sampler instrument
- Rename regions
- Delete regions
- Create groove templates
-
- Overview
-
- Add notes
- Select notes
- Snap items to the grid
- Move notes
- Copy notes
- Change the pitch of notes
- Resize notes
- Edit note velocity
- Quantize the timing of notes
- Quantize the pitch of notes
- Change note articulations
- Lock the position of events
- Mute notes
- Change note color
- View note labels
- Delete notes
- Time stretch notes
- View multiple MIDI regions
- Split chords
- Automation/MIDI area in the Piano Roll Editor
- Open other editors
-
- Logic Pro advanced editors overview
-
- Audio File Editor overview
- Play audio files in the Audio File Editor
- Navigate audio files in the Audio File Editor
-
- Audio File Editor edit commands
- Edit audio files with transient markers
- Use the Audio File Editor Pencil tool
- Trim or silence audio files
- Remove DC offset
- Set audio file levels
- Normalize audio files
- Fade audio files
- Reverse audio and invert phase
- Audio File Editor Loop commands
- Undo Audio File Editor edits
- Backup audio files
- Use an external sample editor
-
- Mixing overview
- Set channel strip input formats
- Set channel strip pan or balance positions
- Mute and solo channel strips
-
- Plug-ins overview
- Add, remove, move, and copy plug-ins
- Insert a plug-in on a track using drag and drop
- Activate plug-ins on inactive channels
- Use the Channel EQ
- Work in the plug-in window
- Work with plug-in settings
- Work with plug-in latencies
- Work with Audio Units plug-ins in Logic Pro
- Support for ARA 2 compatible plug-ins
- Use MPE with software instruments
- Use the Plug-in Manager
- Work with channel strip settings
- Surround panning
- Use the I/O Labels window
- Undo and redo Mixer and plug-in adjustments
-
- Smart Controls overview
- Show Smart Controls for master effects
- Choose a Smart Control layout
- Automatic MIDI controller assignment
- Map screen controls automatically
- Map screen controls
- Edit mapping parameters
- Use parameter mapping graphs
- Open the plug-in window for a screen control
- Rename a screen control
- Use articulation IDs to change articulations
- Assign hardware controls to screen controls
- Compare Smart Control edits with saved settings
- Use the Arpeggiator
- Automate screen control movements
-
- Live Loops overview
- Start and stop cells
- Work with Live Loops cells
- Change loop settings for cells
- How the Live Loops grid and Tracks area interact
- Edit cells
- Edit scenes
- Work in the Cell Editor
- Bounce cells
- Record a Live Loops performance
- Change Live Loops grid settings
- Control Live Loops with other devices
-
- Global changes overview
-
- Tempo overview
-
- Smart Tempo overview
- Use free tempo recording in Logic Pro
- Choose the Project Tempo mode
- Choose the Flex & Follow setting
- Use Smart Tempo with multitrack audio
- Work in the Smart Tempo Editor
- Improve the tempo analysis using hints in Logic Pro
- Correct tempo analysis results using beat markers in Logic Pro
- Protect Smart Tempo edits by locking a range
- Match audio recordings to the project tempo
- Match the tempo to an audio region
- Use audio file tempo information
- Record tempo changes
- Use the Tempo Interpreter
- Use the tempo fader
- Control project volume
-
- Overview
- Add notes
-
- Part box overview
- View score symbols
- Select score symbols
- Add notes and rests
- Add notes and symbols to multiple regions
- Add key and time signature changes
- Change the clef sign
- Add dynamic marks, slurs, and crescendi
- Change note heads
- Add symbols to notes
- Add trills, ornaments, and tremolo symbols
- Add sustain pedal markings
- Add chord symbols
- Add chord grids and tablature symbols
- Add bar lines, repeats, and coda signs
- Add page and line break symbols
-
- Select notes
- Move and copy notes
- Change note pitch, duration, and velocity
- Change note articulations
- Quantize the timing of notes
- Restrict note input to the current key
- Control how ties are displayed
- Add and edit tuplets
- Override display quantization using tuplets
- Add grace notes and independent notes
- Delete notes
- Use automation in the Score Editor
-
- Staff styles overview
- Assign staff styles to tracks
- Staff Style window
- Create and duplicate staff styles
- Edit staff styles
- Edit staff, voice, and assign parameters
- Add and delete staffs or voices in the Staff Style window in Logic Pro
- Copy staffs or voices in the Staff Style window in Logic Pro
- Copy staff styles between projects
- Delete staff styles
- Assign notes to voices and staffs
- Display polyphonic parts on separate staffs
- Change the staff assignment of score symbols
- Beam notes across staffs
- Use mapped staff styles for drum notation
- Predefined staff styles
- Share a score
-
-
- Key commands overview
- Browse, import, and save key commands
- Assign key commands
- Copy and print key commands
-
- Global Commands
- Global Control Surfaces Commands
- Various Windows
- Windows Showing Audio Files
- Main Window Tracks and Various Editors
- Various Editors
- Views Showing Time Ruler
- Views Showing Automation
- Main Window Tracks
- Live Loops Grid
- Mixer
- MIDI Environment
- Piano Roll
- Score Editor
- Event Editor
- Step Editor
- Step Sequencer
- Project Audio
- Audio File Editor
- Smart Tempo Editor
- Library
- Sampler
- Drum Machine Designer
- Step Input Keyboard
- Smart Controls
- Tool Menu
- Control Surface Install Window
- Touch Bar shortcuts
-
-
- Working with your control surface
- Connect control surfaces
- Add a control surface to Logic Pro
- Automatic assignment for USB MIDI controllers
- Grouping control surfaces
- Control Surfaces settings overview
- Modal dialog display
- Tips for using your control surface
- Supported control surfaces
- Software and firmware for Logic Pro
-
-
- Environment overview
- Common object parameters
- Customize the Environment
-
-
- Fader objects overview
- Use fader objects
- Play back fader movements
- Work with object groups
- Fader styles
- Fader functions: MIDI events
- Fader functions: range, value as
- Fader functions: filter
- Vector fader
- Special faders overview
- Cable switchers
- Meta event faders
- SysEx faders
- Work with SysEx messages
- Special functions
- Ornament objects
- MMC record buttons
- Keyboard objects
- Monitor objects
- Channel splitter object
- Physical input objects
- Physical input objects
- MIDI click objects
-
-
- Use MIDI plug-ins
-
- Arpeggiator overview
- Arpeggiator control parameters
- Note order parameters overview
- Note order variations
- Note order inversions
- Arpeggiator pattern parameters overview
- Use Live mode
- Use Grid mode
- Arpeggiator options parameters
- Arpeggiator keyboard parameters
- Use keyboard parameters
- Assign controllers
- Modifier controls
- Note Repeater controls
- Randomizer controls
-
- Use the Scripter
- Use the Script Editor
- Scripter API overview
- MIDI processing functions overview
- HandleMIDI function
- ProcessMIDI function
- GetParameter function
- SetParameter function
- ParameterChanged function
- Reset function
- JavaScript objects overview
- Use the JavaScript Event object
- Use the JavaScript TimingInfo object
- Use the Trace object
- Use the MIDI event beatPos property
- Use the JavaScript MIDI object
- Create Scripter controls
- Transposer MIDI plug-in controls
- Record MIDI to Track
-
-
- Alchemy overview
- Alchemy interface overview
- Alchemy Name bar
- Alchemy file locations
-
- Alchemy source overview
- Source master controls
- Import browser
- Source subpage controls
- Source filter controls
- Source filter use tips
- Source elements overview
- Additive element controls
- Additive element effects
- Spectral element controls
- Spectral element effects
- Pitch correction controls
- Formant filter controls
- Granular element controls
- Sampler element controls
- VA element controls
- Source modulations
- Morph controls
- Alchemy master voice section
- Alchemy Extended parameters
-
- Sculpture overview
- Sculpture interface
- Global parameters
- Amplitude envelope parameters
- Use the Waveshaper
- Filter parameters
- Output parameters
- Use surround range and diversity
- Define MIDI controllers
- Extended parameters
-
-
- Ultrabeat overview
- Ultrabeat interface
- Synthesizer section overview
- Filter section controls
- Distortion circuit controls
- Glossary
- Copyright
Use the JavaScript Event object in Logic Pro
When the HandleMIDI function is called, an Event object represents one MIDI event and implements several methods you can call in your script.
The Event object is not instantiated directly, but is a prototype for the following event-specific methods, properties, and types.
Tip: You can use the JavaScript “new” keyword to generate a new instance of an Event object of any type.
Event methods
-
Event.send(): Send the event.
Event.sendAfterMilliseconds(number ms): Send the event after the specified value has elapsed (can be an integer or a floating point number).
Event.sendAtBeat(number beat): Send the event at a specific beat (floating point number) in the host timeline.
Event.sendAfterBeats(number beat): As above, but uses the beat value as a delay in beats from the current position.
Event.trace(): Print the event to the plug-in console. See Use the Trace object.
Event.toString(): Returns a String representation of the event.
Event properties
Event.toarticulationID(integer number): Sets the articulation ID from 0–254.
Event.channel(number): Set MIDI channel 1 to 16.
Event.beatPos: Retrieves the event’s exact beat position.
Event types
The Event object is a prototype for the following event types. All event types inherit the methods and channel properties described above.
The event types and their properties are passed to HandleMIDI as follows:
NoteOn.pitch(integer number): Pitch from 1–127.
NoteOn.velocity(integer number): Velocity from 0–127. A velocity value of 0 is interpreted as a note off event, not a note on.
NoteOff.pitch(integer number): Pitch from 1–127.
NoteOff.velocity(integer number): Velocity from 0–127.
PolyPressure.pitch(integer number): Pitch from 1–127.
PolyPressure.value(integer number): Define a pressure value from 0–127.
ControlChange.number(integer number): Controller number from 0–127.
ControlChange.value(integer number): Controller value from 0–127.
ProgramChange.number(integer number): Program change number from 0–127.
ChannelPressure.value(integer number): Aftertouch value from 0–127.
PitchBend.value(integer number): 14-bit pitch bend value from -8192–8191. A value of 0 is center.
TargetEvent.target(string): Create user definable MIDI CC messages or control plug-in parameters.
TargetEvent.value(float): Sets the target value.
Load the corresponding Tutorial setting to view the script in the Script Editor. This will help you to understand the syntax structure and layout of code and comments. See Use the Script Editor.
Tutorial script 7: Event Creation
In Logic Pro, this example replaces every received MIDI event with a modulation control change message.
Text following /* shows comments that explain the JavaScript code.
Tip: You can use the JavaScript “new” keyword to generate a new instance of an Event object of any type.
function HandleMIDI() {
var cc = new ControlChange; /* make a new control change message */
cc.number = 1; /* set it to controller 1 (modulation) */
cc.value = 100; /* set the value */
cc.send(); /* send the event */
cc.trace(); /* print the event to the console */
}
Tutorial script 8: Event Modification
In Logic Pro, this example replaces every received MIDI event with a C3 note on/off. The example also uses the NeedsTimingInfo variable. See Use the JavaScript TimingInfo object.
Text following /* shows comments that explain the JavaScript code.
Tip: You can use the JavaScript “new” keyword to generate a new instance of an Event object of any type.
var NeedsTimingInfo = true; /* needed for .sendAfterBeats() to work */
function HandleMIDI() {
var on = new NoteOn; /* make a new note on */
on.pitch = 60; /* set its pitch to C3 */
on.send(); /* send the note */
var off = new NoteOff(on); /* make a note off using the note on to initialize its pitch value (to C3) */
off.sendAfterBeats(1); /* send a note off one beat later */
}
Tutorial script 15: Control Plug-ins
In Logic Pro, you can create user-definable MIDI CC messages, or you can control plug-in parameters. TargetEvent reads the parameter to be modified from a menu where the user can select a destination MIDI CC. Alternately, you can use the Learn Plug-in Parameter feature to assign any plug-in parameter inserted after (below) Scripter in the same channel strip. The chosen destination is saved with the plug-in setting.
Text following /* shows comments that explain the JavaScript code.
Tip: You can use the JavaScript “new” keyword to generate a new instance of an Event object of any type.
TargetEvent properties:
TargetEvent.target(string) /* Name of target menu entry */
TargetEvent.value(float) /* Value of set Target from 0.0 to 1.0 */
The code shown below controls any plug-in parameter with the modwheel. To test the function in Tutorial script 15, insert any plug-in or software instrument on the same channel and run the script. Choose Learn plug-in parameter in the menu, then click any plug-in parameter to control it with the modwheel.
To create a menu for the modwheel target, name the menu entry and set it to a “target” type.
var PluginParameters = [
/* parameter 0 */
{
name:"Modwheel Target",
type:"target"
}];
HandleMIDI is called every time Scripter receives a MIDI event in Tutorial script 15. The code shown below remaps the modulation wheel to the target chosen in the menu.
function HandleMIDI(incomingEvent)
{
/* remap modulation to target selected in menu and
check for incoming CC event with number 1 (Modwheel) */
if ((incomingEvent instanceof ControlChange) && (incomingEvent.number == 1))
{
var newEvent = new TargetEvent(); /* create new Target event */
newEvent.target = "Modwheel Target"; /* name the menu entry to be used by this event */
newEvent.value = incomingEvent.value / 127; /* rescale from 0..127 to 0.0...1.0 */
newEvent.send(); /* send the event */
} else
{
/* send all other events */
incomingEvent.send();
};
};
Download the guides:
Logic Pro User Guide: Apple Books | PDF
Logic Pro Instruments: Apple Books | PDF
Logic Pro Effects: Apple Books | PDF