1 #include "skin/legacy/tooltips.h"
2
3 #include "moc_tooltips.cpp"
4
Tooltips()5 Tooltips::Tooltips() {
6 addStandardTooltips();
7 }
8
~Tooltips()9 Tooltips::~Tooltips() {
10 }
11
tooltipForId(const QString & id) const12 QString Tooltips::tooltipForId(const QString& id) const {
13 // We always add a separator at the end.
14 QString joined = m_tooltips.value(id, QStringList()).join(tooltipSeparator());
15 if (joined.length() > 0) {
16 joined += tooltipSeparator();
17 }
18 return joined;
19 }
20
tooltipSeparator() const21 QString Tooltips::tooltipSeparator() const {
22 return "\n";
23 }
24
add(const QString & id)25 QList<QString>& Tooltips::add(const QString& id) {
26 return m_tooltips[id];
27 }
28
addStandardTooltips()29 void Tooltips::addStandardTooltips() {
30 QString dropTracksHere = tr("Drop tracks from library, external file manager, or other decks/samplers here.");
31 QString dragItem = tr("Drag this item to other decks/samplers, to crates and playlist or to external file manager.");
32 QString trackProperties = tr("Opens the track properties editor");
33 QString trackMenu = tr("Opens the track context menu.");
34 QString resetToDefault = tr("Reset to default value.");
35 QString leftClick = tr("Left-click");
36 QString rightClick = tr("Right-click");
37 QString doubleClick = tr("Double-click");
38 QString scrollWheel = tr("Scroll-wheel");
39 QString shift = tr("Shift-key");
40 QString loopActive = "(" + tr("loop active") + ")";
41 QString loopInactive = "(" + tr("loop inactive") + ")";
42 QString effectsWithinUnit = tr("Effects within the chain must be enabled to hear them.");
43
44 add("waveform_overview")
45 << tr("Waveform Overview")
46 << tr("Shows information about the track currently loaded in this deck.") << "\n"
47 << tr("Left click to jump around in the track.")
48 << tr("Right click hotcues to edit their labels and colors.")
49 << tr("Right click anywhere else to show the time at that point.")
50 << dropTracksHere;
51
52 QString scratchMouse = tr("Use the mouse to scratch, spin-back or throw tracks.");
53 add("waveform_display")
54 << tr("Waveform Display")
55 << tr("Shows the loaded track's waveform near the playback position.")
56 << QString("%1: %2").arg(leftClick, scratchMouse)
57 << QString("%1: %2").arg(rightClick, tr("Drag with mouse to make temporary pitch adjustments."))
58 << QString("%1: %2").arg(scrollWheel, tr("Scroll to change the waveform zoom level."))
59 << dropTracksHere;
60
61 add("waveform_zoom_up")
62 << tr("Waveform Zoom Out");
63
64 add("waveform_zoom_down")
65 << tr("Waveform Zoom In");
66
67 add("waveform_zoom_set_default")
68 << tr("Waveform Zoom")
69 << QString("%1").arg(resetToDefault);
70
71 add("spinny")
72 << tr("Spinning Vinyl")
73 << tr("Rotates during playback and shows the position of a track.")
74 << scratchMouse
75 << tr("Right click to show cover art of loaded track.")
76 << dropTracksHere
77 << tr("If Vinyl control is enabled, displays time-coded vinyl signal quality (see Preferences -> Vinyl Control).");
78
79 add("big_spinny_coverart")
80 << tr("Big Spinny/Cover Art")
81 << tr("Show a big version of the Spinny or track cover art if enabled.");
82
83 add("pregain")
84 << tr("Gain")
85 << tr("Adjusts the pre-fader gain of the track (to avoid clipping).")
86 << QString("%1: %2").arg(rightClick, resetToDefault);
87
88 QString clippingHelp = tr("(too loud for the hardware and is being distorted).");
89 add("channel_PeakIndicator")
90 << tr("Channel Peak Indicator")
91 << tr("Indicates when the signal on the channel is clipping,")
92 << clippingHelp;
93
94 add("channel_PeakIndicatorL")
95 << tr("Channel L Peak Indicator")
96 << tr("Indicates when the left signal on the channel is clipping,")
97 << clippingHelp;
98
99 add("channel_PeakIndicatorR")
100 << tr("Channel R Peak Indicator")
101 << tr("Indicates when the right signal on the channel is clipping,")
102 << clippingHelp;
103
104 add("master_PeakIndicator")
105 << tr("Master Peak Indicator")
106 << tr("Indicates when the signal on the master output is clipping,")
107 << clippingHelp;
108
109 add("master_PeakIndicatorL")
110 << tr("Master L Peak Indicator")
111 << tr("Indicates when the left signal on the master output is clipping,")
112 << clippingHelp;
113
114 add("master_PeakIndicatorR")
115 << tr("Master R Peak Indicator")
116 << tr("Indicates when the right signal on the master output is clipping,")
117 << clippingHelp;
118
119 add("channel_VuMeter")
120 << tr("Channel Volume Meter")
121 << tr("Shows the current channel volume.");
122
123 add("channel_VuMeterL")
124 << tr("Channel L Volume Meter")
125 << tr("Shows the current channel volume for the left channel.");
126
127 add("channel_VuMeterR")
128 << tr("Channel R Volume Meter")
129 << tr("Shows the current channel volume for the right channel.");
130
131 add("microphone_VuMeter")
132 << tr("Microphone Volume Meter")
133 << tr("Shows the current microphone volume.");
134
135 add("microphone_PeakIndicator")
136 << tr("Microphone Peak Indicator")
137 << tr("Indicates when the signal on the microphone is clipping,")
138 << clippingHelp;
139
140 add("auxiliary_VuMeter")
141 << tr("Auxiliary Volume Meter")
142 << tr("Shows the current auxiliary volume.");
143
144 add("auxiliary_PeakIndicator")
145 << tr("Auxiliary Peak Indicator")
146 << tr("Indicates when the signal on the auxiliary is clipping,")
147 << clippingHelp;
148
149 add("sampler_VuMeter")
150 << tr("Sampler Volume Meter")
151 << tr("Shows the current sampler volume.");
152
153 add("sampler_PeakIndicator")
154 << tr("Sampler Peak Indicator")
155 << tr("Indicates when the signal on the sampler is clipping,")
156 << clippingHelp;
157
158 add("preview_VuMeter")
159 << tr("Preview Deck Volume Meter")
160 << tr("Shows the current Preview Deck volume.");
161
162 add("preview_PeakIndicator")
163 << tr("Preview Deck Peak Indicator")
164 << tr("Indicates when the signal on the Preview Deck is clipping,")
165 << clippingHelp;
166
167 add("master_VuMeterL")
168 << tr("Master Channel L Volume Meter")
169 << tr("Shows the current master volume for the left channel.");
170
171 add("master_VuMeterR")
172 << tr("Master Channel R Volume Meter")
173 << tr("Shows the current master volume for the right channel.");
174
175 add("channel_volume")
176 << tr("Volume Control")
177 << tr("Adjusts the volume of the selected channel.")
178 << QString("%1: %2").arg(rightClick, resetToDefault);
179
180 // Legacy control.
181 add("master_volume")
182 << tr("Master Volume")
183 << tr("Adjusts the master output volume.")
184 << QString("%1: %2").arg(rightClick, resetToDefault);
185
186 add("master_gain")
187 << tr("Master Gain")
188 << tr("Adjusts the master output gain.")
189 << QString("%1: %2").arg(rightClick, resetToDefault);
190
191 add("booth_gain")
192 << tr("Booth Gain")
193 << tr("Adjusts the booth output gain.")
194 << QString("%1: %2").arg(rightClick, resetToDefault);
195
196 add("crossfader")
197 << tr("Crossfader")
198 << tr("Determines the master output by fading between the left and right channels.")
199 << QString("%1: %2").arg(rightClick, resetToDefault)
200 << tr("Change the crossfader curve in Preferences -> Crossfader");
201
202 add("balance")
203 << tr("Balance")
204 << tr("Adjusts the left/right channel balance on the master output.")
205 << QString("%1: %2").arg(rightClick, resetToDefault);
206
207 // Legacy control.
208 add("headphone_volume")
209 << tr("Headphone Volume")
210 << tr("Adjusts the headphone output volume.")
211 << QString("%1: %2").arg(rightClick, resetToDefault);
212
213 add("headphone_gain")
214 << tr("Headphone Gain")
215 << tr("Adjusts the headphone output gain.")
216 << QString("%1: %2").arg(rightClick, resetToDefault);
217
218 add("headMix")
219 << tr("Headphone Mix")
220 << tr("Crossfades the headphone output between the master mix and cueing (PFL or Pre-Fader Listening) signal.")
221 << QString("%1: %2").arg(rightClick, resetToDefault);
222
223 add("headSplit")
224 << tr("Headphone Split Cue")
225 << tr("If activated, the master signal plays in the right channel, while the cueing signal "
226 "plays in the left channel.")
227 << tr("Adjust the Headphone Mix so in the left channel is not the pure cueing signal.");
228
229 add("orientation")
230 << tr("Crossfader Orientation")
231 << tr("Set the channel's crossfader orientation.")
232 << tr("Either to the left side of crossfader, to the right side or to the center (unaffected by crossfader)");
233
234 add("show_microphone")
235 << tr("Microphone")
236 << tr("Show/hide the Microphone section.");
237
238 add("show_samplers")
239 << tr("Sampler")
240 << tr("Show/hide the Sampler section.");
241
242 add("show_vinylcontrol")
243 << tr("Vinyl Control")
244 << tr("Show/hide the Vinyl Control section.")
245 << tr("Activate Vinyl Control from the Menu -> Options.");
246
247 add("show_previewdeck")
248 << tr("Preview Deck")
249 << tr("Show/hide the Preview deck.");
250
251 add("show_coverart")
252 << tr("Cover Art")
253 << tr("Show/hide Cover Art.");
254
255 add("show_library_coverart")
256 << tr("Cover Art")
257 << tr("Show/hide Cover Art of the selected track in the library.");
258
259 add("toggle_4decks")
260 << tr("Toggle 4 Decks")
261 << tr("Switches between showing 2 decks and 4 decks.");
262
263 add("show_waveforms")
264 << tr("Show/hide the scrolling waveforms");
265
266 add("show_beatgrid_controls")
267 << tr("Show/hide the beatgrid controls section");
268
269 add("show_library")
270 << tr("Show Library")
271 << tr("Show or hide the track library.");
272
273 add("show_effects")
274 << tr("Show Effects")
275 << tr("Show or hide the effects.");
276
277 add("maximize_library")
278 << tr("Maximize Library")
279 << tr("Hide all skin sections except the decks to have more screen space for the track library.");
280
281 add("show_mixer")
282 << tr("Toggle Mixer")
283 << tr("Show or hide the mixer.");
284
285 add("show_vumeters")
286 << tr("Volume Meters")
287 << tr("Show/hide volume meters for channels and master output.");
288
289 add("microphone_volume")
290 << tr("Microphone Volume")
291 << tr("Adjusts the microphone volume.")
292 << QString("%1: %2").arg(rightClick, resetToDefault);
293
294 add("microphone_pregain")
295 << tr("Microphone Gain")
296 << tr("Adjusts the pre-fader microphone gain.")
297 << QString("%1: %2").arg(rightClick, resetToDefault);
298
299 add("auxiliary_pregain")
300 << tr("Auxiliary Gain")
301 << tr("Adjusts the pre-fader auxiliary gain.")
302 << QString("%1: %2").arg(rightClick, resetToDefault);
303
304 add("microphone_talkover")
305 << tr("Microphone Talk-Over")
306 << tr("Hold-to-talk or short click for latching to")
307 << tr("mix microphone input into the master output.");
308
309 add("talkover_duck_mode")
310 << tr("Microphone Talkover Mode")
311 << tr("Off: Do not reduce music volume")
312 << tr("Auto: Automatically reduce music volume when microphone volume rises above threshold.")
313 << tr("Manual: Reduce music volume by a fixed amount set by the Strength knob.")
314 << tr("Adjust the amount the music volume is reduced with the Strength knob.");
315
316 add("talkover_duck_strength")
317 << tr("Microphone Talkover Ducking Strength")
318 << tr("Adjust the amount the music volume is reduced with the Strength knob.")
319 << tr("Behavior depends on Microphone Talkover Mode:")
320 << tr("Off: Does nothing")
321 << tr("Auto: Sets how much to reduce the music volume when the volume of active microphones rises above threshold.")
322 << tr("Manual: Sets how much to reduce the music volume, when talkover is activated regardless of volume of microphone inputs.");
323
324 QString changeAmount = tr("Change the step-size in the Preferences -> Interface menu.");
325 add("rate_perm_up_rate_perm_up_small")
326 << tr("Raise Pitch")
327 << QString("%1: %2").arg(leftClick, tr("Sets the pitch higher."))
328 << QString("%1: %2").arg(rightClick, tr("Sets the pitch higher in small steps."))
329 << changeAmount;
330
331 add("rate_perm_down_rate_perm_down_small")
332 << tr("Lower Pitch")
333 << QString("%1: %2").arg(leftClick, tr("Sets the pitch lower."))
334 << QString("%1: %2").arg(rightClick, tr("Sets the pitch lower in small steps."))
335 << changeAmount;
336
337 add("rate_temp_up_rate_temp_up_small")
338 << tr("Raise Pitch Temporary (Nudge)")
339 << QString("%1: %2").arg(leftClick, tr("Holds the pitch higher while active."))
340 << QString("%1: %2").arg(rightClick, tr("Holds the pitch higher (small amount) while active."))
341 << changeAmount;
342
343 add("rate_temp_down_rate_temp_down_small")
344 << tr("Lower Pitch Temporary (Nudge)")
345 << QString("%1: %2").arg(leftClick, tr("Holds the pitch lower while active."))
346 << QString("%1: %2").arg(rightClick, tr("Holds the pitch lower (small amount) while active."))
347 << changeAmount;
348
349 add("filterLow")
350 << tr("Low EQ")
351 << tr("Adjusts the gain of the low EQ filter.")
352 << QString("%1: %2").arg(rightClick, resetToDefault);
353
354 add("filterMid")
355 << tr("Mid EQ")
356 << tr("Adjusts the gain of the mid EQ filter.")
357 << QString("%1: %2").arg(rightClick, resetToDefault);
358
359 add("filterHigh")
360 << tr("High EQ")
361 << tr("Adjusts the gain of the high EQ filter.")
362 << QString("%1: %2").arg(rightClick, resetToDefault);
363
364 QString eqKillLatch = tr("Hold-to-kill or short click for latching.");
365 add("filterHighKill")
366 << tr("High EQ Kill")
367 << tr("Holds the gain of the high EQ to zero while active.")
368 << eqKillLatch;
369
370 add("filterMidKill")
371 << tr("Mid EQ Kill")
372 << tr("Holds the gain of the mid EQ to zero while active.")
373 << eqKillLatch;
374
375 add("filterLowKill")
376 << tr("Low EQ Kill")
377 << tr("Holds the gain of the low EQ to zero while active.")
378 << eqKillLatch;
379
380 QString tempoDisplay = tr("Displays the tempo of the loaded track in BPM (beats per minute).");
381 add("visual_bpm")
382 << tr("Tempo")
383 << tempoDisplay;
384
385 add("visual_key")
386 //: The musical key of a track
387 << tr("Key")
388 << tr("Displays the current musical key of the loaded track after pitch shifting.");
389
390 add("bpm_tap")
391 << tr("BPM Tap")
392 << tr("When tapped repeatedly, adjusts the BPM to match the tapped BPM.");
393
394 add("beats_adjust_slower")
395 << tr("Adjust BPM Down")
396 << tr("When tapped, adjusts the average BPM down by a small amount.");
397
398 add("beats_adjust_faster")
399 << tr("Adjust BPM Up")
400 << tr("When tapped, adjusts the average BPM up by a small amount.");
401
402 add("beats_translate_earlier")
403 << tr("Adjust Beats Earlier")
404 << tr("When tapped, moves the beatgrid left by a small amount.");
405
406 add("beats_translate_later")
407 << tr("Adjust Beats Later")
408 << tr("When tapped, moves the beatgrid right by a small amount.");
409
410 add("beats_translate_curpos")
411 << tr("Adjust Beatgrid")
412 << QString("%1: %2").arg(leftClick, tr("Adjust beatgrid so the closest beat is aligned with the current play position."))
413 << QString("%1: %2").arg(rightClick, tr("Adjust beatgrid to match another playing deck."));
414
415 add("beats_translate_match_alignment")
416 << tr("Adjust Beatgrid")
417 << tr("Adjust beatgrid to match another playing deck.");
418
419 //this is a special case, in some skins we might display a transparent png for bpm_tap on top of visual_bpm
420 add("bpm_tap_visual_bpm")
421 << tr("Tempo and BPM Tap")
422 << tempoDisplay
423 << tr("When tapped repeatedly, adjusts the BPM to match the tapped BPM.");
424
425 add("shift_cues_earlier")
426 << tr("Shift cues earlier")
427 << tr("Shift cues imported from Serato or Rekordbox if they are slightly off time.")
428 << tr("Left click: shift 10 milliseconds earlier")
429 << tr("Right click: shift 1 millisecond earlier");
430
431 add("shift_cues_later")
432 << tr("Shift cues later")
433 << tr("Shift cues imported from Serato or Rekordbox if they are slightly off time.")
434 << tr("Left click: shift 10 milliseconds later")
435 << tr("Right click: shift 1 millisecond later");
436
437 add("show_spinny")
438 << tr("Spinning Vinyl")
439 << tr("Show/hide the spinning vinyl section.");
440
441 add("keylock")
442 << tr("Keylock")
443 << tr("Prevents the pitch from changing when the rate changes.")
444 << tr("Toggling keylock during playback may result in a momentary audio glitch.");
445
446 add("hotcue_toggle")
447 <<tr("Changes the number of hotcue buttons displayed in the deck");
448
449 // Show Rate Control
450 add("rate_toggle")
451 <<tr("Toggle visibility of Rate Control");
452
453 // Used in cue/hotcue/loop tooltips below.
454 QString quantizeSnap = tr("If quantize is enabled, snaps to the nearest beat.");
455 add("quantize")
456 << tr("Quantize")
457 << tr("Toggles quantization.")
458 << tr("Loops and cues snap to the nearest beat when quantization is enabled.");
459
460 // Reverse and reverseroll (censor)
461 add("reverse")
462 << tr("Reverse")
463 << QString("%1: %2").arg(leftClick, tr("Reverses track playback during regular playback."))
464 << QString("%1: %2").arg(rightClick, tr("Puts a track into reverse while being held (Censor)."))
465 << tr("Playback continues where the track would have been if it had not been temporarily reversed.");
466
467 // Currently used for samplers
468 add("play_start")
469 << tr("Play/Pause")
470 << QString("%1: %2").arg(leftClick, tr("Starts playing from the beginning of the track."))
471 << QString("%1: %2").arg(rightClick, tr("Jumps to the beginning of the track and stops."));
472
473 QString whilePlaying = tr("(while playing)");
474 QString whileStopped = tr("(while stopped)");
475 QString whilePreviewing = tr("(while previewing)");
476 QString cueSet = tr("Places a cue point at the current position on the waveform.");
477 QString cueWhilePlaying = tr("Stops track at cue point, OR go to cue point and play after release (CUP mode).");
478 QString cueWhileStopped = tr("Set cue point (Pioneer/Mixxx/Numark mode), set cue point and play after release (CUP mode) "
479 "OR preview from it (Denon mode).");
480 QString cueHint = tr("Hint: Change the default cue mode in Preferences -> Interface.");
481 QString latchingPlay = tr("Is latching the playing state.");
482
483 // Currently used for decks
484 add("play_cue_set")
485 << tr("Play/Pause")
486 << QString("%1: %2").arg(leftClick, tr("Plays or pauses the track."))
487 << QString("%1 %2: %3").arg(leftClick, whilePreviewing, latchingPlay)
488 << QString("%1: %2").arg(rightClick, cueSet);
489
490 // Currently used for minimal decks
491 add("play_cue_default")
492 << tr("Play/Pause")
493 << QString("%1: %2").arg(leftClick, tr("Plays or pauses the track."))
494 << QString("%1 %2: %3").arg(rightClick, whilePlaying, cueWhilePlaying)
495 << QString("%1 %2: %3").arg(rightClick, whileStopped, cueWhileStopped)
496 << cueHint
497 << quantizeSnap;
498 add("cue_default_cue_gotoandstop")
499 << tr("Cue")
500 << QString("%1 %2: %3").arg(leftClick, whilePlaying, cueWhilePlaying)
501 << QString("%1 %2: %3").arg(leftClick, whileStopped, cueWhileStopped)
502 << cueHint
503 << quantizeSnap
504 << QString("%1: %2").arg(rightClick, tr("Seeks the track to the cue point and stops."))
505 << QString("%1 %2: %3").arg(rightClick, whilePreviewing, latchingPlay);
506 add("cue_gotoandplay_cue_default")
507 << tr("Play")
508 << QString("%1: %2").arg(leftClick, tr("Plays track from the cue point."))
509 << QString("%1 %2: %3").arg(rightClick, whilePlaying, cueWhilePlaying)
510 << QString("%1 %2: %3").arg(rightClick, whileStopped, cueWhileStopped)
511 << cueHint
512 << quantizeSnap;
513
514 add("pfl")
515 << tr("Headphone")
516 << tr("Sends the selected channel's audio to the headphone output, "
517 "selected in Preferences -> Sound Hardware.");
518
519 add("mute")
520 << tr("Mute")
521 << tr("Mutes the selected channel's audio in the master output.");
522
523 add("master_enable")
524 << tr("Master enable")
525 << tr("Hold or short click for latching to "
526 "mix this input into the master output.");
527
528 add("back_start")
529 << tr("Fast Rewind")
530 << QString("%1: %2").arg(leftClick, tr("Fast rewind through the track."))
531 << QString("%1: %2").arg(rightClick, tr("Jumps to the beginning of the track."));
532
533 add("fwd_end")
534 << tr("Fast Forward")
535 << QString("%1: %2").arg(leftClick, tr("Fast forward through the track."))
536 << QString("%1: %2").arg(rightClick, tr("Jumps to the end of the track."));
537
538 // Ghetto-Sync (TM)
539 add("beatsync_beatsync_tempo")
540 << tr("Old Synchronize")
541 << tr("(This skin should be updated to use Master Sync!)")
542 << QString("%1: %2").arg(leftClick, tr("Syncs the tempo (BPM) and phase to that of the other track, "
543 "if BPM is detected on both."))
544 << QString("%1: %2").arg(rightClick, tr("Syncs the tempo (BPM) to that of the other track, "
545 "if BPM is detected on both."))
546 << tr("Syncs to the first deck (in numerical order) that is playing a track and has a BPM.")
547 << tr("If no deck is playing, syncs to the first deck that has a BPM.")
548 << tr("Decks can't sync to samplers and samplers can only sync to decks.");
549
550 // Awesome-Sync (TM)
551 add("sync_enabled")
552 << tr("Enable Master Sync")
553 << tr("Tap to sync the tempo to other playing tracks or the master clock.")
554 << tr("Hold for at least a second to enable sync lock for this deck.")
555 << tr("Decks with sync locked will all play at the same tempo, and decks that also have "
556 "quantize enabled will always have their beats lined up.");
557
558 // TODO(owen): find a better phrase for "the other deck"
559 add("sync_reset_key")
560 << tr("Sync and Reset Key")
561 << QString("%1: %2").arg(leftClick, tr("Sets the pitch to a key that allows a harmonic transition "
562 "from the other track. Requires a detected key on both involved decks."))
563 << QString("%1: %2").arg(rightClick, tr("Resets the key to the original track key."));
564
565 add("sync_master")
566 << tr("Enable Sync Clock Master")
567 << tr("When enabled, this device will serve as the master clock for all other decks.");
568
569 add("rate")
570 << tr("Speed Control")
571 << tr("Changes the track playback speed (affects both the tempo and the pitch). If keylock is enabled, only the tempo is affected.")
572 << QString("%1: %2").arg(rightClick, resetToDefault);
573
574 add("pitch")
575 << tr("Pitch Control")
576 << tr("Changes the track pitch independent of the tempo.")
577 << QString("%1: %2").arg(rightClick, resetToDefault);
578
579 add("pitch_up")
580 << tr("Pitch Control")
581 << tr("Changes the track pitch independent of the tempo.")
582 << QString("%1: %2").arg(leftClick, tr("Increases the pitch by one semitone."))
583 << QString("%1: %2").arg(rightClick, tr("Increases the pitch by 10 cents."));
584
585 add("pitch_down")
586 << tr("Pitch Control")
587 << tr("Changes the track pitch independent of the tempo.")
588 << QString("%1: %2").arg(leftClick, tr("Decreases the pitch by one semitone."))
589 << QString("%1: %2").arg(rightClick, tr("Decreases the pitch by 10 cents."));
590
591 add("pitch_adjust")
592 << tr("Pitch Adjust")
593 << tr("Adjust the pitch in addition to the speed slider pitch.")
594 << QString("%1: %2").arg(rightClick, resetToDefault);
595
596
597 add("rate_display")
598 << tr("Pitch Rate")
599 << tr("Displays the current playback rate of the track.");
600
601 add("rate_range_display")
602 << tr("Tempo Range Display")
603 << tr("Displays the current range of the tempo slider.");
604
605 add("repeat")
606 << tr("Repeat")
607 << tr("When active the track will repeat if you go past the end or reverse before the start.");
608
609 add("eject")
610 << tr("Eject")
611 << tr("Ejects track from the player.");
612
613 add("hotcue") << tr("Hotcue")
614 << QString("%1: %2").arg(leftClick,
615 tr("If hotcue is set, jumps to the hotcue."))
616 << tr("If hotcue is not set, sets the hotcue to the current "
617 "play position.")
618 << quantizeSnap
619 << QString("%1: %2").arg(rightClick,
620 tr("Opens a menu to clear hotcues or edit their "
621 "labels and colors."))
622 << QString("%1 + %2: %3")
623 .arg(rightClick,
624 shift,
625 tr("Delete selected hotcue."));
626
627 // Status displays and toggle buttons
628 add("toggle_recording")
629 << tr("Record Mix")
630 << tr("Toggle mix recording.");
631
632 // Status displays and toggle buttons
633 add("recording_duration")
634 << tr("Recording Duration")
635 << tr("Displays the duration of the running recording.");
636
637 // For legacy reasons also add tooltips for "shoutcast_enabled".
638 for (const char* key : {"shoutcast_enabled", "broadcast_enabled"}) {
639 add(key)
640 << tr("Enable Live Broadcasting")
641 << tr("Stream your mix over the Internet.")
642 << tr("Provides visual feedback for Live Broadcasting status:")
643 << tr("disabled, connecting, connected, failure.");
644 }
645
646 // AutoDJ status indicator
647 add("autodj_status")
648 << tr("Auto DJ is active");
649
650 add("passthrough_enabled")
651 << tr("Enable Passthrough")
652 << tr("When enabled, the deck directly plays the audio arriving on the vinyl input.");
653
654 add("vinylcontrol_enabled")
655 << tr("Enable Vinyl Control")
656 << tr("When disabled, the track is controlled by Mixxx playback controls.")
657 << tr("When enabled, the track responds to external vinyl control.");
658
659 add("vinylcontrol_status")
660 << tr("Vinyl Status")
661 << tr("Provides visual feedback for vinyl control status:")
662 << tr("Green for control enabled.")
663 << tr("Blinking yellow for when the needle reaches the end of the record.")
664 << tr("Blue for passthrough enabled.");
665
666 add("vinylcontrol_mode")
667 << tr("Vinyl Control Mode")
668 << tr("Absolute mode - track position equals needle position and speed.")
669 << tr("Relative mode - track speed equals needle speed regardless of needle position.")
670 << tr("Constant mode - track speed equals last known-steady speed regardless of needle input.");
671
672 add("vinylcontrol_cueing")
673 << tr("Vinyl Cueing Mode")
674 << tr("Determines how cue points are treated in vinyl control Relative mode:")
675 << tr("Off - Cue points ignored.")
676 << tr("One Cue - If needle is dropped after the cue point, track will seek to that cue point.")
677 << tr("Hot Cue - Track will seek to nearest previous hotcue point.");
678
679 add("loop_in")
680 << tr("Loop-In Marker")
681 << QString("%1: %2").arg(leftClick + " " + loopInactive,
682 tr("Sets the track Loop-In Marker to the current play position."))
683 << quantizeSnap
684 << QString("%1: %2").arg(leftClick + " " + loopActive,
685 tr("Press and hold to move Loop-In Marker."))
686 << QString("%1: %2").arg(rightClick, tr("Jump to Loop-In Marker."));
687
688 add("loop_out")
689 << tr("Loop-Out Marker")
690 << QString("%1: %2").arg(leftClick + " " + loopInactive,
691 tr("Sets the track Loop-Out Marker to the current play position."))
692 << quantizeSnap
693 << QString("%1: %2").arg(leftClick + " " + loopActive,
694 tr("Press and hold to move Loop-Out Marker."))
695 << QString("%1: %2").arg(rightClick, tr("Jump to Loop-Out Marker."));
696
697 add("loop_halve")
698 << tr("Loop Halve")
699 << tr("Halves the current loop's length by moving the end marker.")
700 << tr("Deck immediately loops if past the new endpoint.");
701
702 add("loop_double")
703 << tr("Loop Double")
704 << tr("Doubles the current loop's length by moving the end marker.");
705
706 add("beatloop_size")
707 << tr("Beatloop Size")
708 << tr("Select the size of the loop in beats to set with the Beatloop button.")
709 << tr("Changing this resizes the loop if the loop already matches this size.");
710
711 add("beatloop_halve")
712 << tr("Halve the size of an existing beatloop, or halve the size of the next beatloop set with the Beatloop button.");
713
714 add("beatloop_double")
715 << tr("Double the size of an existing beatloop, or double the size of the next beatloop set with the Beatloop button.");
716
717 //beatloop and beatlooproll
718 add("beatloop_activate")
719 << tr("Beatloop")
720 << QString("%1: %2").arg(leftClick, tr("Start a loop over the set number of beats."))
721 << quantizeSnap
722 << QString("%1: %2").arg(rightClick, tr("Temporarily enable a rolling loop over the set number of beats."))
723 << tr("Playback will resume where the track would have been if it had not entered the loop.");
724
725 add("beatjump_size")
726 << tr("Beatjump/Loop Move Size")
727 << tr("Select the number of beats to jump or move the loop with the Beatjump Forward/Backward buttons.");
728
729 add("beatjump_forward")
730 << tr("Beatjump Forward")
731 << QString("%1: %2").arg(leftClick + " " + loopInactive, tr("Jump forward by the set number of beats."))
732 << QString("%1: %2").arg(leftClick + " " + loopActive, tr("Move the loop forward by the set number of beats."))
733 << QString("%1: %2").arg(rightClick + " " + loopInactive, tr("Jump forward by 1 beat."))
734 << QString("%1: %2").arg(rightClick + " " + loopActive, tr("Move the loop forward by 1 beat."));
735
736 add("beatjump_backward")
737 << tr("Beatjump Backward")
738 << QString("%1: %2").arg(leftClick + " " + loopInactive, tr("Jump backward by the set number of beats."))
739 << QString("%1: %2").arg(leftClick + " " + loopActive, tr("Move the loop backward by the set number of beats."))
740 << QString("%1: %2").arg(rightClick + " " + loopInactive, tr("Jump backward by 1 beat."))
741 << QString("%1: %2").arg(rightClick + " " + loopActive, tr("Move the loop backward by 1 beat."));
742
743 add("loop_exit")
744 << tr("Loop Exit")
745 << tr("Turns the current loop off.")
746 << tr("Works only if Loop-In and Loop-Out marker are set.");
747
748 add("reloop_toggle")
749 << tr("Reloop")
750 << QString("%1: %2").arg(leftClick, tr("Toggles the current loop on or off."))
751 << tr("If the loop is ahead of the current position, looping will start when the loop is reached.")
752 << tr("Works only if Loop-In and Loop-Out Marker are set.")
753 << QString("%1: %2").arg(rightClick, tr("Enable loop, jump to Loop-In Marker, and stop playback."));
754
755 add("slip_mode")
756 << tr("Slip Mode")
757 << tr("When active, the playback continues muted in the background during a loop, reverse, scratch etc.")
758 << tr("Once disabled, the audible playback will resume where the track would have been.");
759
760 add("track_time")
761 << tr("Track Time")
762 << tr("Displays the elapsed and/or remaining time of the track loaded.")
763 << tr("Click to toggle between time elapsed/remaining time/both.")
764 << tr("Hint: Change the time format in Preferences -> Decks.");
765
766 add("track_duration")
767 << tr("Track Duration")
768 << tr("Displays the duration of the loaded track.");
769
770 QString trackTags = tr("Information is loaded from the track's metadata tags.");
771 add("track_artist")
772 << tr("Track Artist")
773 << tr("Displays the artist of the loaded track.")
774 << trackTags + "\n"
775 << dropTracksHere
776 << dragItem
777 << QString("%1: %2").arg(doubleClick, trackProperties)
778 << QString("%1: %2").arg(rightClick, trackMenu);
779
780 add("track_title")
781 << tr("Track Title")
782 << tr("Displays the title of the loaded track.")
783 << trackTags + "\n"
784 << dropTracksHere
785 << dragItem
786 << QString("%1: %2").arg(doubleClick, trackProperties)
787 << QString("%1: %2").arg(rightClick, trackMenu);
788
789 add("track_album")
790 << tr("Track Album")
791 << tr("Displays the album name of the loaded track.")
792 << trackTags + "\n"
793 << dropTracksHere
794 << dragItem
795 << QString("%1: %2").arg(doubleClick, trackProperties)
796 << QString("%1: %2").arg(rightClick, trackMenu);
797
798 add("track_key")
799 //: The musical key of a track
800 << tr("Track Key")
801 << tr("Displays the musical key of the loaded track.")
802 << trackTags;
803
804 add("text")
805 << tr("Track Artist/Title")
806 << tr("Displays the artist and title of the loaded track.")
807 << trackTags + "\n"
808 << dropTracksHere
809 << dragItem
810 << QString("%1: %2").arg(doubleClick, trackProperties)
811 << QString("%1: %2").arg(rightClick, trackMenu);
812
813 add("time")
814 << tr("Clock")
815 << tr("Displays the current time.");
816
817 add("audio_latency_usage")
818 << tr("Audio Latency Usage Meter")
819 << tr("Displays the fraction of latency used for audio processing.")
820 << tr("A high value indicates that audible glitches are likely.")
821 << tr("Do not enable keylock, effects or additional decks in this situation.");
822
823 add("audio_latency_overload")
824 << tr("Audio Latency Overload Indicator")
825 << tr("Indicates that the audio buffer is too small to do all audio processing.");
826
827 add("coverart")
828 << tr("Cover Art")
829 << tr("Displays cover artwork of the loaded track.")
830 << QString("%1: %2").arg(
831 leftClick, tr("Opens separate artwork viewer."))
832 << QString("%1: %2").arg(rightClick,
833 tr("Displays options for editing cover artwork.")) +
834 "\n"
835 << dropTracksHere << dragItem;
836
837 add("starrating")
838 << tr("Star Rating")
839 << tr("Assign ratings to individual tracks by clicking the stars.");
840
841 // Intro & outro cues
842 add("show_intro_outro_cues")
843 << tr("Show/hide intro & outro markers and associated buttons.");
844
845 add("intro_start")
846 << tr("Intro Start Marker")
847 << QString("%1: %2").arg(leftClick, tr("If marker is set, jumps to the marker."))
848 << tr("If marker is not set, sets the marker to the current play position.")
849 << quantizeSnap
850 << QString("%1: %2").arg(rightClick, tr("If marker is set, clears the marker."));
851
852 add("intro_end")
853 << tr("Intro End Marker")
854 << QString("%1: %2").arg(leftClick, tr("If marker is set, jumps to the marker."))
855 << tr("If marker is not set, sets the marker to the current play position.")
856 << quantizeSnap
857 << QString("%1: %2").arg(rightClick, tr("If marker is set, clears the marker."));
858
859 add("outro_start")
860 << tr("Outro Start Marker")
861 << QString("%1: %2").arg(leftClick, tr("If marker is set, jumps to the marker."))
862 << tr("If marker is not set, sets the marker to the current play position.")
863 << quantizeSnap
864 << QString("%1: %2").arg(rightClick, tr("If marker is set, clears the marker."));
865
866 add("outro_end")
867 << tr("Outro End Marker")
868 << QString("%1: %2").arg(leftClick, tr("If marker is set, jumps to the marker."))
869 << tr("If marker is not set, sets the marker to the current play position.")
870 << quantizeSnap
871 << QString("%1: %2").arg(rightClick, tr("If marker is set, clears the marker."));
872
873 // Effect Unit Controls
874 add("EffectUnit_clear")
875 << tr("Clear Unit")
876 << tr("Clear effect unit.");
877
878 add("EffectUnit_show_parameters")
879 << tr("Show Effect Parameters")
880 << tr("Show/hide parameters for effects in this unit.");
881
882 add("EffectUnit_enabled")
883 << tr("Toggle Unit")
884 << tr("Enable or disable this whole effect unit.");
885 add("EffectUnit_mix")
886 << tr("Mix")
887 << tr("Adjust the mixing of the dry (input) signal with the wet (output) signal of the effect unit")
888 << tr("D/W mode: Crossfade between dry and wet")
889 << tr("D+W mode: Add wet to dry")
890 << QString("%1: %2").arg(rightClick, resetToDefault);
891
892 add("EffectUnit_mix_mode")
893 << tr("Mix Mode")
894 << tr("Adjust how the dry (input) signal is mixed with the wet (output) signal of the effect unit") + "\n"
895 << tr("Dry/Wet mode (crossed lines): Mix knob crossfades between dry and wet\n"
896 "Use this to change the sound of the track with EQ and filter effects.") + "\n"
897 << tr("Dry+Wet mode (flat dry line): Mix knob adds wet to dry\n"
898 "Use this to change only the effected (wet) signal with EQ and filter effects.");
899
900 add("EffectUnit_super1")
901 << tr("Super Knob")
902 << tr("Controls the Meta Knob of all effects in this unit together.")
903 << QString("%1: %2").arg(rightClick, resetToDefault);
904
905 add("EffectUnit_next_chain")
906 << tr("Next Chain")
907 << tr("Load next effect chain preset into this effect unit.");
908
909 add("EffectUnit_prev_chain")
910 << tr("Previous Chain")
911 << tr("Load previous effect chain preset into this effect unit.");
912
913 add("EffectUnit_chain_selector")
914 << tr("Next/Previous Chain")
915 << tr("Load next or previous effect chain preset into this effect unit.");
916
917 add("EffectUnit_group_enabled")
918 << tr("Assign Effect Unit")
919 << tr("Assign this effect unit to the channel output.")
920 << effectsWithinUnit;
921
922 add("EffectUnit_headphones_enabled")
923 << tr("Assign Effect Unit")
924 << tr("Route the headphone channel through this effect unit.")
925 << effectsWithinUnit;
926
927 add("EffectUnit_master_enabled")
928 << tr("Assign Effect Unit")
929 << tr("Route the master mix through this effect unit.")
930 << effectsWithinUnit;
931
932 add("EffectUnit_BusLeft_enabled")
933 << tr("Assign Effect Unit")
934 << tr("Route the left crossfader bus through this effect unit.")
935 << effectsWithinUnit;
936
937 add("EffectUnit_BusRight_enabled")
938 << tr("Assign Effect Unit")
939 << tr("Route the right crossfader bus through this effect unit.")
940 << effectsWithinUnit;
941
942 add("EffectUnit_deck_enabled")
943 << tr("Assign Effect Unit")
944 << tr("Route this deck through the indicated effect unit.")
945 << effectsWithinUnit;
946
947 add("EffectUnit_sampler_enabled")
948 << tr("Assign Effect Unit")
949 << tr("Route this sampler through the indicated effect unit.")
950 << effectsWithinUnit;
951
952 add("EffectUnit_microphone_enabled")
953 << tr("Assign Effect Unit")
954 << tr("Route this microphone through the indicated effect unit.")
955 << effectsWithinUnit;
956
957 add("EffectUnit_auxiliary_enabled")
958 << tr("Assign Effect Unit")
959 << tr("Route this auxiliary input through the indicated effect unit.")
960 << effectsWithinUnit;
961
962 // Effect Slot Controls
963 add("EffectSlot_clear")
964 << tr("Clear")
965 << tr("Clear the current effect.");
966
967 add("EffectSlot_enabled")
968 << tr("Enable Effect")
969 << tr("The effect unit must also be assigned to a deck or other sound source to hear the effect.");
970
971 add("EffectSlot_next_effect")
972 << tr("Next")
973 << tr("Switch to the next effect.");
974
975 add("EffectSlot_prev_effect")
976 << tr("Previous")
977 << tr("Switch to the previous effect.");
978
979 add("EffectSlot_effect_selector")
980 << tr("Next or Previous")
981 << tr("Switch to either the next or previous effect.");
982
983 add("EffectSlot_metaknob")
984 << tr("Meta Knob")
985 << tr("Controls linked parameters of this effect")
986 << QString("%1: %2").arg(rightClick, resetToDefault);
987
988 add("EffectSlot_focus")
989 << tr("Effect Focus Button")
990 << QString("%1: %2").arg(leftClick, tr("Focuses this effect."))
991 << QString("%1: %2").arg(rightClick, tr("Unfocuses this effect."))
992 << tr("Refer to the web page on the Mixxx wiki for your controller for more information.");
993
994 add("EffectSlot_parameter")
995 << tr("Effect Parameter")
996 << tr("Adjusts a parameter of the effect.")
997 << QString("%1: %2").arg(rightClick, resetToDefault);
998
999 add("EffectSlot_parameter_link_type")
1000 << tr("Meta Knob Link")
1001 << tr("Set how this parameter is linked to the effect's Meta Knob.")
1002 << tr("Inactive: parameter not linked")
1003 << tr("Active: parameter moves with Meta Knob")
1004 << tr("Left side active: parameter moves with left half of Meta Knob turn")
1005 << tr("Right side active: parameter moves with right half of Meta Knob turn")
1006 << tr("Left and right side active: parameter moves across range with half of Meta Knob turn and back with the other half");
1007
1008 add("EffectSlot_parameter_inversion")
1009 << tr("Meta Knob Link Inversion")
1010 << tr("Inverts the direction this parameter moves when turning the effect's Meta Knob.");
1011
1012 add("EffectSlot_button_parameter")
1013 << tr("Equalizer Parameter Kill")
1014 << tr("Holds the gain of the EQ to zero while active.")
1015 << eqKillLatch;
1016
1017 // Quick Effect Rack Controls
1018 add("QuickEffectRack_super1")
1019 << tr("Quick Effect Super Knob")
1020 << tr("Quick Effect Super Knob (control linked effect parameters).")
1021 << QString("%1: %2").arg(rightClick, resetToDefault)
1022 << tr("Hint: Change the default Quick Effect mode in Preferences -> Equalizers.");
1023
1024 add("QuickEffectRack_enabled")
1025 << tr("Toggle")
1026 << tr("Toggle the current effect.")
1027 << eqKillLatch;
1028
1029 // Equalizer Rack Controls
1030 add("EqualizerRack_effect_parameter")
1031 << tr("Equalizer Parameter")
1032 << tr("Adjusts the gain of the EQ filter.")
1033 << QString("%1: %2").arg(rightClick, resetToDefault)
1034 << tr("Hint: Change the default EQ mode in Preferences -> Equalizers.");
1035
1036 add("EqualizerRack_effect_button_parameter")
1037 << tr("Equalizer Parameter Kill")
1038 << tr("Holds the gain of the EQ to zero while active.")
1039 << eqKillLatch;
1040
1041 add("skin_settings")
1042 << tr("Skin Settings Menu")
1043 << tr("Show/hide skin settings menu");
1044
1045 // Sampler Bank Controls
1046 add("SaveSamplerBank")
1047 << tr("Save Sampler Bank")
1048 << tr("Save the collection of samples loaded in the samplers.");
1049
1050 add("LoadSamplerBank")
1051 << tr("Load Sampler Bank")
1052 << tr("Load a previously saved collection of samples into the samplers.");
1053
1054 add("configure_input")
1055 << tr("Select and configure a hardware device for this input");
1056
1057 }
1058