Audacity
3.0.3
src
Experimental.h
Go to the documentation of this file.
1
/**********************************************************************
2
3
Audacity: A Digital Audio Editor
4
5
Experimental.h
6
7
Dominic Mazzoni
8
James Crook
9
10
Used for #includes and #defines for experimental features.
11
12
When the features become mainstream the #include files will
13
move out of here and into the files which need them. The
14
#defines will then be retired.
15
16
17
18
JKC: This file solves a problem of how to avoid forking the
19
code base when working on NEW features e.g:
20
- Additional displays in Audacity
21
- Modular architecture.
22
Add #defines in here for the NEW features, and make your code
23
conditional on those #defines.
24
25
All the #defines are positive, i.e., when defined,
26
they enable the feature.
27
28
**********************************************************************/
29
30
#ifndef __EXPERIMENTAL__
31
#define __EXPERIMENTAL__
32
33
#ifndef __AUDACITY_H__
34
// Audacity.h is needed for the USE_* macros
35
#error Must include Audacity.h before Experimental.h
36
#endif
37
38
// ACH 08 Jan 2014
39
// EQ accelerated code
40
//#define EXPERIMENTAL_EQ_SSE_THREADED
41
42
// LLL, 09 Nov 2013:
43
// Allow all WASAPI devices, not just loopback
44
#define EXPERIMENTAL_FULL_WASAPI
45
46
// JKC (effect by Norm C, 02 Oct 2013)
47
#define EXPERIMENTAL_SCIENCE_FILTERS
48
49
// JKC an experiement to work around bug 2709
50
// disabled.
51
//define EXPERIMENTAL_CEE_NUMBERS_OPTION
52
53
// LLL, 01 Oct 2013:
54
// NEW key assignment view for preferences
55
#define EXPERIMENTAL_KEY_VIEW
56
57
// feature to link audio tracks to a label track
58
#define EXPERIMENTAL_SYNC_LOCK
59
60
// DA: Enables dark audacity theme and customisations.
61
//#define EXPERIMENTAL_DA
62
63
// These CFG macros allow easy distinction between Audacity and DA defaults.
64
#ifdef EXPERIMENTAL_DA
65
#define CFG_A( x )
66
#define CFG_DA( x ) x
67
#else
68
#define CFG_A( x ) x
69
#define CFG_DA( x )
70
#endif
71
72
73
// Define this so that sync-lock tiles shine through spectrogram.
74
// The spectrogram pastes a bitmap over the tiles.
75
// This makes it use alpha blending, most transparent where least intense.
76
#define EXPERIMENTAL_SPECTROGRAM_OVERLAY
77
78
// Define this so that sync-lock tiles shine through note/MIDI track.
79
// The note track then relies on the same code for drawing background as
80
// Wavetrack, and draws its notes and lines over the top.
81
#define EXPERIMENTAL_NOTETRACK_OVERLAY
82
83
// Define this, and the option to zoom to half wave is added in the VZoom menu.
84
// Also we go to half wave on collapse, full wave on restore.
85
#define EXPERIMENTAL_HALF_WAVE
86
87
// EXPERIMENTAL_THEMING is mostly mainstream now.
88
// the define is still present to mark out old code before theming, that we might
89
// conceivably need.
90
// TODO: Agree on and then tidy this code.
91
#define EXPERIMENTAL_THEMING
92
93
//August 2009 - Theming not locked down enough for a stable release.
94
// This turns on the Theme panel in Prefs dialog. It is independent of EXPERIMENTAL_THEMING.
95
//#define EXPERIMENTAL_THEME_PREFS
96
97
// This shows the zoom toggle button on the edit toolbar.
98
#define EXPERIMENTAL_ZOOM_TOGGLE_BUTTON
99
100
//#define EXPERIMENTAL_ROLL_UP_DIALOG
101
//#define EXPERIMENTAL_RIGHT_ALIGNED_TEXTBOXES
102
//#define EXPERIMENTAL_VOICE_DETECTION
103
104
// Effect categorisation. Adds support for arranging effects in categories
105
// and displaying those categories as submenus in the Effect menu.
106
// This was a 2008 GSoC project that was making good progress at the half-way point
107
// but then the student didn't contribute after that. It needs a bit of work to finish it off.
108
// As a minimum, if this is turned on for a release,
109
// it should have an easy mechanism to disable it at run-time, such as a menu item or a pref,
110
// preferably disabled until other work is done. Martyn 22/12/2008.
111
//
112
113
// JKC Apr 2015, Menu item to manage effects.
114
#define EXPERIMENTAL_EFFECT_MANAGEMENT
115
116
// Andreas Micheler, 20.Nov 2007:
117
// A spectrumLogF-like view mode with notes quantization.
118
// Just select the "Find Notes" checkbox in the spectrum prefs
119
// to activate it instead of the Spectrum log(f) mode.
120
//#define EXPERIMENTAL_FIND_NOTES
121
122
// AM, 22.Nov 2007:
123
// A Frequency Grid for the Spectrum Log(f) & Find Notes modes
124
//#define EXPERIMENTAL_FFT_Y_GRID
125
126
// Andy Coder, 03.Mar 2009:
127
// Allow keyboard seeking before initial playback position
128
//#define EXPERIMENTAL_SEEK_BEHIND_CURSOR
129
130
// Paul Licameli (PRL) 5 Oct 2014
131
#define EXPERIMENTAL_SPECTRAL_EDITING
132
133
// Paul Licameli (PRL) 29 Nov 2014
134
// #define EXPERIMENTAL_IMPROVED_SEEKING
135
136
//#define EXPERIMENTAL_MIDI_IN
137
138
// RBD, 1 Sep 2008
139
// Enables MIDI Output of NoteTrack (MIDI) data during playback
140
// USE_MIDI must be defined in order for EXPERIMENTAL_MIDI_OUT to work
141
#ifdef USE_MIDI
142
#define EXPERIMENTAL_MIDI_OUT
143
#endif
144
// JKC, 17 Aug 2017
145
// Enables the MIDI note stretching feature, which currently
146
// a) Is broken on Linux (Bug 1646)
147
// b) Crashes with Sync-Lock (Bug 1719)
148
// c) Needs UI design review.
149
//#define EXPERIMENTAL_MIDI_STRETCHING
150
151
// USE_MIDI must be defined in order for EXPERIMENTAL_SCOREALIGN to work
152
//#define EXPERIMENTAL_SCOREALIGN
153
154
//If you want any of these files, ask JKC. They are not
155
//yet checked in to Audacity SVN as of 12-Feb-2010
156
#ifdef EXPERIMENTAL_NOTEBOOK
157
#include "widgets/GuiFactory.h"
158
#include "widgets/APanel.h"
159
extern
void
AddPages(
AudacityProject
* pProj, GuiFactory & Factory, wxNotebook * pNotebook );
160
#endif
161
162
#ifdef EXPERIMENTAL_NYQUIST_INSPECTOR
163
#include "NyquistAdapter.h"
164
#endif
165
166
#if USE_PORTMIXER
167
//Automatically tries to find an acceptable input volume
168
//#define EXPERIMENTAL_AUTOMATED_INPUT_LEVEL_ADJUSTMENT
169
#endif
170
171
// Module prefs provides a panel in prefs where users can choose which modules
172
// to enable.
173
#define EXPERIMENTAL_MODULE_PREFS
174
175
// Define to allow realtime processing in Audacity effects that have been converted.
176
#define EXPERIMENTAL_REALTIME_AUDACITY_EFFECTS
177
178
// Define to include the effects rack (such as it is).
179
//#define EXPERIMENTAL_EFFECTS_RACK
180
181
// Define to make the meters look like a row of LEDs
182
//#define EXPERIMENTAL_METER_LED_STYLE
183
184
// Define to enable the device change handler
185
//#define EXPERIMENTAL_DEVICE_CHANGE_HANDLER
186
187
// Define for NEW noise reduction effect from Paul Licameli.
188
#define EXPERIMENTAL_NOISE_REDUCTION
189
190
// Define to enable Nyquist audio clip boundary control (Steve Daulton Dec 2014)
191
#define EXPERIMENTAL_NYQUIST_SPLIT_CONTROL
192
193
// Paul Licameli (PRL) 16 Apr 2015
194
// Support for scrubbing in the AudioIO engine, without calls to it
195
#define EXPERIMENTAL_SCRUBBING_SUPPORT
196
#ifdef EXPERIMENTAL_SCRUBBING_SUPPORT
197
// The following enable parts of the scrubbing user interface.
198
#define EXPERIMENTAL_SCRUBBING_BASIC
199
#ifdef EXPERIMENTAL_SCRUBBING_BASIC
200
#define EXPERIMENTAL_SCRUBBING_SCROLL_WHEEL
201
#endif
202
#endif
203
204
// Paul Licameli (PRL) 24 May 2015
205
// Allow scrolling up to one half of a screenful beyond either end of the project,
206
// if you turn on the appropriate Tracks preference.
207
// This allows smooth-scrolling scrub to work more reasonably at the ends.
208
#define EXPERIMENTAL_SCROLLING_LIMITS
209
210
// Paul Licameli (PRL) 28 May 2015
211
// Draw negative numbers on the time ruler in a different color, when
212
// scrolling past zero is enabled. Perhaps that lessens confusion.
213
#define EXPERIMENTAL_TWO_TONE_TIME_RULER
214
215
#ifndef IN_RC
216
// Define to include crash reporting
217
#define EXPERIMENTAL_CRASH_REPORT
218
#ifdef EXPERIMENTAL_CRASH_REPORT
219
#include <wx/setup.h>
// for wxUSE* macros
220
#if !defined(wxUSE_DEBUGREPORT) || !wxUSE_DEBUGREPORT
221
#undef EXPERIMENTAL_CRASH_REPORT
222
#endif
223
#endif
224
#endif
225
226
// Paul Licameli (PRL) 31 May 2015
227
// Zero-padding factor for spectrograms can smooth the display of spectrograms by
228
// interpolating in frequency domain.
229
#define EXPERIMENTAL_ZERO_PADDED_SPECTROGRAMS
230
231
// PRL 11 Jul 2017
232
// Highlight more things in TrackPanel when the mouse moves over them,
233
// using deliberately ugly pens and brushes until there is better cooperation
234
// with themes
235
//#define EXPERIMENTAL_TRACK_PANEL_HIGHLIGHTING
236
237
// Paul Licameli (PRL) 28 Dec 2017
238
// Easy drag-and-drop to add Nyquist, LADSPA, and VST plug-ins
239
// #define EXPERIMENTAL_DRAG_DROP_PLUG_INS
240
241
// PRL 5 Jan 2018
242
// Easy change of keystroke bindings for menu items
243
#define EXPERIMENTAL_EASY_CHANGE_KEY_BINDINGS
244
245
// PRL 1 Jun 2018
246
#define EXPERIMENTAL_PUNCH_AND_ROLL
247
248
// PRL 31 July 2018
249
#define EXPERIMENTAL_DRAGGABLE_PLAY_HEAD
250
251
// Jonatã Bolzan Loss 31 Dec 2019
252
#define EXPERIMENTAL_TIMER_TOOLBAR
253
254
#endif
AudacityProject
The top-level handle to an Audacity project. It serves as a source of events that other objects can b...
Definition:
Project.h:112
Generated by
1.9.0