Rubber Band DSP: Make it possible to disable it
And disable it by default in new installations, otherwise leave the setting alone. The disablement setting is shared with the engine setting, so the default should not really change anything, except for new installs. Also, the time/pitch shifting dialog disables itself and displays an obvious notice button, which opens the Rubber Band settings. Signed-off-by: Christopher Snowhill <kode54@gmail.com>
This commit is contained in:
parent
5e4dd125dd
commit
afd2ca2e2a
18 changed files with 272 additions and 79 deletions
|
@ -108,6 +108,9 @@
|
|||
- (void)showPathSuggester;
|
||||
+ (void)globalShowPathSuggester;
|
||||
|
||||
- (IBAction)showRubberbandSettings:(id)sender;
|
||||
- (void)globalShowRubberbandSettings;
|
||||
|
||||
- (IBAction)checkForUpdates:(id)sender;
|
||||
|
||||
@property NSWindow *mainWindow;
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#import "PlaylistEntry.h"
|
||||
#import "PlaylistLoader.h"
|
||||
#import "PlaylistView.h"
|
||||
#import "RubberbandEngineTransformer.h"
|
||||
#import "SQLiteStore.h"
|
||||
#import "SandboxBroker.h"
|
||||
#import "SpotlightWindowController.h"
|
||||
|
@ -89,6 +90,14 @@ static AppController *kAppController = nil;
|
|||
NSValueTransformer *numberHertzToStringTransformer = [[NumberHertzToStringTransformer alloc] init];
|
||||
[NSValueTransformer setValueTransformer:numberHertzToStringTransformer
|
||||
forName:@"NumberHertzToStringTransformer"];
|
||||
|
||||
NSValueTransformer *rubberbandEngineEnabledTransformer = [[RubberbandEngineEnabledTransformer alloc] init];
|
||||
[NSValueTransformer setValueTransformer:rubberbandEngineEnabledTransformer
|
||||
forName:@"RubberbandEngineEnabledTransformer"];
|
||||
|
||||
NSValueTransformer *rubberbandEngineHiddenTransformer = [[RubberbandEngineHiddenTransformer alloc] init];
|
||||
[NSValueTransformer setValueTransformer:rubberbandEngineHiddenTransformer
|
||||
forName:@"RubberbandEngineHiddenTransformer"];
|
||||
}
|
||||
- (id)init {
|
||||
self = [super init];
|
||||
|
@ -826,6 +835,14 @@ static AppController *kAppController = nil;
|
|||
[kAppController showPathSuggester];
|
||||
}
|
||||
|
||||
- (void)showRubberbandSettings:(id)sender {
|
||||
[preferencesController showRubberbandSettings:sender];
|
||||
}
|
||||
|
||||
+ (void)globalShowRubberbandSettings {
|
||||
[kAppController showRubberbandSettings:kAppController];
|
||||
}
|
||||
|
||||
- (IBAction)checkForUpdates:(id)sender {
|
||||
[[SparkleBridge sharedStandardUpdaterController] checkForUpdates:[[NSApplication sharedApplication] delegate]];
|
||||
}
|
||||
|
|
|
@ -100,7 +100,7 @@ NSString *CogPlaybackDidStopNotificiation = @"CogPlaybackDidStopNotificiation";
|
|||
@"volumeLimit": @(YES),
|
||||
@"enableHrtf": @(NO),
|
||||
@"enableHeadTracking": @(NO),
|
||||
@"rubberbandEngine": @"faster",
|
||||
/*@"rubberbandEngine": @"faster",*/
|
||||
@"rubberbandTransients": @"crisp",
|
||||
@"rubberbandDetector": @"compound",
|
||||
@"rubberbandPhase": @"laminar",
|
||||
|
|
|
@ -16,6 +16,8 @@
|
|||
static void * kDSPRubberbandNodeContext = &kDSPRubberbandNodeContext;
|
||||
|
||||
@implementation DSPRubberbandNode {
|
||||
BOOL enableRubberband;
|
||||
|
||||
RubberBandState ts;
|
||||
RubberBandOptions tslastoptions, tsnewoptions;
|
||||
size_t blockSize, toDrop, samplesBuffered, tschannels;
|
||||
|
@ -44,6 +46,8 @@ static void * kDSPRubberbandNodeContext = &kDSPRubberbandNodeContext;
|
|||
self = [super initWithController:c previous:p latency:latency];
|
||||
if(self) {
|
||||
NSUserDefaults *defaults = [[NSUserDefaultsController sharedUserDefaultsController] defaults];
|
||||
enableRubberband = ![[defaults stringForKey:@"rubberbandEngine"] isEqualToString:@"disabled"];
|
||||
|
||||
pitch = [defaults doubleForKey:@"pitch"];
|
||||
tempo = [defaults doubleForKey:@"tempo"];
|
||||
|
||||
|
@ -106,7 +110,9 @@ static void * kDSPRubberbandNodeContext = &kDSPRubberbandNodeContext;
|
|||
tempo = [defaults doubleForKey:@"tempo"];
|
||||
tsapplynewoptions = YES;
|
||||
} else if([[keyPath substringToIndex:17] isEqualToString:@"values.rubberband"]) {
|
||||
if(ts) {
|
||||
NSUserDefaults *defaults = [[NSUserDefaultsController sharedUserDefaultsController] defaults];
|
||||
enableRubberband = ![[defaults stringForKey:@"rubberbandEngine"] isEqualToString:@"disabled"];
|
||||
if(enableRubberband && ts) {
|
||||
RubberBandOptions options = [self getRubberbandOptions];
|
||||
RubberBandOptions changed = options ^ tslastoptions;
|
||||
if(changed) {
|
||||
|
@ -348,7 +354,9 @@ static void * kDSPRubberbandNodeContext = &kDSPRubberbandNodeContext;
|
|||
[self writeChunk:chunk];
|
||||
chunk = nil;
|
||||
}
|
||||
if(tsrestartengine) {
|
||||
if(!enableRubberband && ts) {
|
||||
[self fullShutdown];
|
||||
} else if(tsrestartengine) {
|
||||
[self fullShutdown];
|
||||
} else if(tsapplynewoptions) {
|
||||
[self partialInit];
|
||||
|
@ -373,7 +381,8 @@ static void * kDSPRubberbandNodeContext = &kDSPRubberbandNodeContext;
|
|||
return nil;
|
||||
}
|
||||
|
||||
if(!ts || memcmp(&inputFormat, &lastInputFormat, sizeof(inputFormat)) != 0 ||
|
||||
if((enableRubberband && !ts) ||
|
||||
memcmp(&inputFormat, &lastInputFormat, sizeof(inputFormat)) != 0 ||
|
||||
inputChannelConfig != lastInputChannelConfig) {
|
||||
lastInputFormat = inputFormat;
|
||||
lastInputChannelConfig = inputChannelConfig;
|
||||
|
@ -384,6 +393,11 @@ static void * kDSPRubberbandNodeContext = &kDSPRubberbandNodeContext;
|
|||
}
|
||||
}
|
||||
|
||||
if(!ts) {
|
||||
processEntered = NO;
|
||||
return [self readChunk:4096];
|
||||
}
|
||||
|
||||
size_t samplesToProcess = rubberband_get_samples_required(ts);
|
||||
if(samplesToProcess > blockSize)
|
||||
samplesToProcess = blockSize;
|
||||
|
|
|
@ -21,27 +21,27 @@
|
|||
<rect key="screenRect" x="0.0" y="0.0" width="1920" height="1055"/>
|
||||
<value key="minSize" type="size" width="750" height="200"/>
|
||||
<stackView key="contentView" distribution="equalSpacing" orientation="vertical" alignment="centerX" spacing="0.0" misplaced="YES" detachesHiddenViews="YES" id="2">
|
||||
<rect key="frame" x="0.0" y="0.0" width="1263" height="400"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="1281" height="400"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<splitView dividerStyle="thin" vertical="YES" translatesAutoresizingMaskIntoConstraints="NO" id="2123">
|
||||
<rect key="frame" x="0.0" y="334" width="1276" height="66"/>
|
||||
<rect key="frame" x="0.0" y="350" width="1274" height="50"/>
|
||||
<subviews>
|
||||
<scrollView fixedFrame="YES" borderType="none" autohidesScrollers="YES" horizontalLineScroll="24" horizontalPageScroll="0.0" verticalLineScroll="24" verticalPageScroll="0.0" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" id="206" userLabel="Scroll View - Playlist View">
|
||||
<rect key="frame" x="0.0" y="0.0" width="1276" height="66"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="1291" height="50"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<clipView key="contentView" drawsBackground="NO" copiesOnScroll="NO" id="KWC-Ti-8KY">
|
||||
<rect key="frame" x="0.0" y="0.0" width="1276" height="66"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="1291" height="50"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<tableView focusRingType="none" verticalHuggingPriority="750" allowsExpansionToolTips="YES" alternatingRowBackgroundColors="YES" autosaveName="Playlist" rowHeight="18" headerView="1517" viewBased="YES" id="207" customClass="PlaylistView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="1276" height="49"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="1291" height="33"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<size key="intercellSpacing" width="3" height="6"/>
|
||||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
|
||||
<tableColumns>
|
||||
<tableColumn identifier="index" editable="NO" width="62" minWidth="28" maxWidth="64" id="209">
|
||||
<tableColumn identifier="index" editable="NO" width="64" minWidth="28" maxWidth="64" id="209">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="right" title="#">
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" white="0.33333299" alpha="1" colorSpace="calibratedWhite"/>
|
||||
|
@ -54,11 +54,11 @@
|
|||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="5N3-SP-Y8z">
|
||||
<rect key="frame" x="11" y="3" width="67" height="18"/>
|
||||
<rect key="frame" x="11" y="3" width="69" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField focusRingType="none" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="w5u-JQ-3Hf">
|
||||
<rect key="frame" x="0.0" y="1" width="67" height="16"/>
|
||||
<rect key="frame" x="0.0" y="1" width="69" height="16"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" alignment="right" title="Table View Cell" id="FMU-QZ-NdQ">
|
||||
<font key="font" usesAppearanceFont="YES"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
|
@ -95,7 +95,7 @@
|
|||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="Vw5-xt-0vG">
|
||||
<rect key="frame" x="81" y="3" width="20" height="17"/>
|
||||
<rect key="frame" x="83" y="3" width="20" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ERj-i9-caa">
|
||||
|
@ -127,7 +127,7 @@
|
|||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
</tableColumn>
|
||||
<tableColumn identifier="rating" editable="NO" width="114" minWidth="48" maxWidth="128" id="208" userLabel="Rating">
|
||||
<tableColumn identifier="rating" editable="NO" width="116" minWidth="48" maxWidth="128" id="208" userLabel="Rating">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left" title="Rating">
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" white="0.33333299" alpha="1" colorSpace="calibratedWhite"/>
|
||||
|
@ -141,11 +141,11 @@
|
|||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="ZCP-Dx-UBV">
|
||||
<rect key="frame" x="104" y="3" width="114" height="18"/>
|
||||
<rect key="frame" x="106" y="3" width="116" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="exY-Bg-Mjm">
|
||||
<rect key="frame" x="0.0" y="1" width="114" height="16"/>
|
||||
<rect key="frame" x="0.0" y="1" width="116" height="16"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="sdo-Sm-KPH">
|
||||
<font key="font" usesAppearanceFont="YES"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
|
@ -171,7 +171,7 @@
|
|||
</binding>
|
||||
</connections>
|
||||
</tableColumn>
|
||||
<tableColumn identifier="title" editable="NO" width="177" minWidth="96" maxWidth="1024" id="XBr-ec-D81">
|
||||
<tableColumn identifier="title" editable="NO" width="179" minWidth="96" maxWidth="1024" id="XBr-ec-D81">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left" title="Title">
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" white="0.33333299" alpha="1" colorSpace="calibratedWhite"/>
|
||||
|
@ -185,11 +185,11 @@
|
|||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="ZHl-H1-IIC">
|
||||
<rect key="frame" x="221" y="3" width="177" height="18"/>
|
||||
<rect key="frame" x="225" y="3" width="179" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="dQP-wC-mba">
|
||||
<rect key="frame" x="0.0" y="1" width="177" height="16"/>
|
||||
<rect key="frame" x="0.0" y="1" width="179" height="16"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="VVx-99-roJ">
|
||||
<font key="font" usesAppearanceFont="YES"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
|
@ -259,7 +259,7 @@
|
|||
<binding destination="1689" name="fontSize" keyPath="values.fontSize" id="dJs-UO-m5r"/>
|
||||
</connections>
|
||||
</tableColumn>
|
||||
<tableColumn identifier="artist" editable="NO" width="200" minWidth="96" maxWidth="1024" id="391">
|
||||
<tableColumn identifier="artist" editable="NO" width="202" minWidth="96" maxWidth="1024" id="391">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left" title="Artist">
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||
|
@ -273,11 +273,11 @@
|
|||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="gpC-Oe-Rog">
|
||||
<rect key="frame" x="401" y="3" width="200" height="18"/>
|
||||
<rect key="frame" x="407" y="3" width="202" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="1WK-qN-Mgj">
|
||||
<rect key="frame" x="0.0" y="1" width="200" height="16"/>
|
||||
<rect key="frame" x="0.0" y="1" width="202" height="16"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="71l-3L-S3g">
|
||||
<font key="font" usesAppearanceFont="YES"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
|
@ -347,7 +347,7 @@
|
|||
</binding>
|
||||
</connections>
|
||||
</tableColumn>
|
||||
<tableColumn identifier="album" editable="NO" width="200" minWidth="96" maxWidth="1024" id="806">
|
||||
<tableColumn identifier="album" editable="NO" width="202" minWidth="96" maxWidth="1024" id="806">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left" title="Album">
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||
|
@ -361,11 +361,11 @@
|
|||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="1ed-gX-bct">
|
||||
<rect key="frame" x="604" y="3" width="200" height="18"/>
|
||||
<rect key="frame" x="612" y="3" width="202" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="nEt-s5-vRX">
|
||||
<rect key="frame" x="0.0" y="1" width="200" height="16"/>
|
||||
<rect key="frame" x="0.0" y="1" width="202" height="16"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="moV-3G-GpB">
|
||||
<font key="font" usesAppearanceFont="YES"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
|
@ -391,7 +391,7 @@
|
|||
</binding>
|
||||
</connections>
|
||||
</tableColumn>
|
||||
<tableColumn identifier="length" editable="NO" width="94" minWidth="43.62012" maxWidth="96" id="807">
|
||||
<tableColumn identifier="length" editable="NO" width="95" minWidth="43.62012" maxWidth="96" id="807">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="right" title="Length">
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||
|
@ -404,11 +404,11 @@
|
|||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="hhB-nv-e78">
|
||||
<rect key="frame" x="807" y="3" width="94" height="18"/>
|
||||
<rect key="frame" x="817" y="3" width="95" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="tHy-sM-HDB">
|
||||
<rect key="frame" x="0.0" y="1" width="94" height="16"/>
|
||||
<rect key="frame" x="0.0" y="1" width="95" height="16"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="Igo-5f-yim">
|
||||
<font key="font" usesAppearanceFont="YES"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
|
@ -435,7 +435,7 @@
|
|||
<binding destination="1689" name="fontSize" keyPath="values.fontSize" id="1919"/>
|
||||
</connections>
|
||||
</tableColumn>
|
||||
<tableColumn identifier="year" editable="NO" width="94" minWidth="42" maxWidth="96" id="848">
|
||||
<tableColumn identifier="year" editable="NO" width="95" minWidth="42" maxWidth="96" id="848">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="right" title="Year">
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||
|
@ -448,11 +448,11 @@
|
|||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="q93-oh-i5T">
|
||||
<rect key="frame" x="904" y="3" width="94" height="18"/>
|
||||
<rect key="frame" x="915" y="3" width="95" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="bOi-LI-TDx">
|
||||
<rect key="frame" x="0.0" y="1" width="94" height="16"/>
|
||||
<rect key="frame" x="0.0" y="1" width="95" height="16"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="C2Q-qG-dwX">
|
||||
<font key="font" usesAppearanceFont="YES"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
|
@ -475,7 +475,7 @@
|
|||
<binding destination="1689" name="fontSize" keyPath="values.fontSize" id="1921"/>
|
||||
</connections>
|
||||
</tableColumn>
|
||||
<tableColumn identifier="genre" editable="NO" width="113" minWidth="32" maxWidth="512" id="849">
|
||||
<tableColumn identifier="genre" editable="NO" width="114" minWidth="32" maxWidth="512" id="849">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left" title="Genre">
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||
|
@ -489,11 +489,11 @@
|
|||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="rRl-p9-Awr">
|
||||
<rect key="frame" x="1001" y="3" width="113" height="18"/>
|
||||
<rect key="frame" x="1013" y="3" width="114" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="yW6-2w-6mN">
|
||||
<rect key="frame" x="0.0" y="1" width="113" height="16"/>
|
||||
<rect key="frame" x="0.0" y="1" width="114" height="16"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="js2-sT-U4M">
|
||||
<font key="font" usesAppearanceFont="YES"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
|
@ -516,7 +516,7 @@
|
|||
<binding destination="1689" name="fontSize" keyPath="values.fontSize" id="1922"/>
|
||||
</connections>
|
||||
</tableColumn>
|
||||
<tableColumn identifier="track" editable="NO" width="70" minWidth="24" maxWidth="72" id="850">
|
||||
<tableColumn identifier="track" editable="NO" width="71" minWidth="24" maxWidth="72" id="850">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="right" title="№">
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||
|
@ -529,11 +529,11 @@
|
|||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="hgh-VE-5kl">
|
||||
<rect key="frame" x="1117" y="3" width="70" height="18"/>
|
||||
<rect key="frame" x="1130" y="3" width="71" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="yEY-MI-d3o">
|
||||
<rect key="frame" x="0.0" y="1" width="70" height="16"/>
|
||||
<rect key="frame" x="0.0" y="1" width="71" height="16"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="tus-lr-RhS">
|
||||
<font key="font" usesAppearanceFont="YES"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
|
@ -556,7 +556,7 @@
|
|||
<binding destination="1689" name="fontSize" keyPath="values.fontSize" id="1923"/>
|
||||
</connections>
|
||||
</tableColumn>
|
||||
<tableColumn identifier="playcount" editable="NO" width="70" minWidth="24" maxWidth="72" id="1g1-Th-emL" userLabel="Play Count">
|
||||
<tableColumn identifier="playcount" editable="NO" width="71" minWidth="24" maxWidth="72" id="1g1-Th-emL" userLabel="Play Count">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="right" title="Play Count">
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||
|
@ -569,11 +569,11 @@
|
|||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="aED-2V-LLM">
|
||||
<rect key="frame" x="1190" y="3" width="74" height="18"/>
|
||||
<rect key="frame" x="1204" y="3" width="75" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="tYz-2J-JRx">
|
||||
<rect key="frame" x="0.0" y="1" width="74" height="16"/>
|
||||
<rect key="frame" x="0.0" y="1" width="75" height="16"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="HJL-T1-ufx">
|
||||
<font key="font" usesAppearanceFont="YES"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
|
@ -592,12 +592,12 @@
|
|||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
<connections>
|
||||
<binding destination="1689" name="fontSize" keyPath="values.fontSize" id="iAQ-bR-gvW"/>
|
||||
<binding destination="218" name="value" keyPath="arrangedObjects.playCount" id="6s9-cV-iYx">
|
||||
<dictionary key="options">
|
||||
<bool key="NSConditionallySetsEditable" value="YES"/>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="1689" name="fontSize" keyPath="values.fontSize" id="iAQ-bR-gvW"/>
|
||||
</connections>
|
||||
</tableColumn>
|
||||
<tableColumn identifier="path" editable="NO" width="64" minWidth="32" maxWidth="2048" hidden="YES" id="1712">
|
||||
|
@ -892,7 +892,7 @@
|
|||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
<tableHeaderView key="headerView" wantsLayer="YES" id="1517">
|
||||
<rect key="frame" x="0.0" y="0.0" width="1276" height="17"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="1291" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</tableHeaderView>
|
||||
</scrollView>
|
||||
|
@ -905,7 +905,7 @@
|
|||
</connections>
|
||||
</splitView>
|
||||
<textField focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="778">
|
||||
<rect key="frame" x="508" y="4" width="261" height="14"/>
|
||||
<rect key="frame" x="507" y="4" width="261" height="14"/>
|
||||
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" alignment="center" title="Total Duration: 00 hours 00 minutes 00 seconds" bezelStyle="round" id="1473">
|
||||
<font key="font" metaFont="controlContent" size="11"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
|
@ -2661,6 +2661,11 @@ Gw
|
|||
<sliderCell key="cell" controlSize="small" continuous="YES" state="on" alignment="left" maxValue="100" doubleValue="40.824829049999998" tickMarkPosition="left" sliderType="linear" id="vTw-tV-W5R"/>
|
||||
<connections>
|
||||
<action selector="changePitch:" target="705" id="bZt-zY-tjg"/>
|
||||
<binding destination="1689" name="enabled" keyPath="values.rubberbandEngine" id="3Kk-ix-XCv">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">RubberbandEngineEnabledTransformer</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<outlet property="_TempoSlider" destination="stI-oD-51s" id="HMq-pE-Ssc"/>
|
||||
</connections>
|
||||
</slider>
|
||||
|
@ -2673,6 +2678,11 @@ Gw
|
|||
</buttonCell>
|
||||
<connections>
|
||||
<action selector="pressLock:" target="Ta5-Ik-jh9" id="HnF-AC-arz"/>
|
||||
<binding destination="1689" name="enabled" keyPath="values.rubberbandEngine" id="BUK-i6-qzt">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">RubberbandEngineEnabledTransformer</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
</connections>
|
||||
</button>
|
||||
<slider horizontalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="stI-oD-51s" userLabel="Tempo Slider" customClass="TempoSlider">
|
||||
|
@ -2681,6 +2691,11 @@ Gw
|
|||
<sliderCell key="cell" controlSize="small" continuous="YES" alignment="left" maxValue="100" doubleValue="40.824829049999998" tickMarkPosition="left" sliderType="linear" id="94j-7B-a8j"/>
|
||||
<connections>
|
||||
<action selector="changeTempo:" target="705" id="8xu-Dm-ceG"/>
|
||||
<binding destination="1689" name="enabled" keyPath="values.rubberbandEngine" id="eRW-kg-FQc">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">RubberbandEngineEnabledTransformer</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<outlet property="_PitchSlider" destination="6P4-yi-9TK" id="QaV-cx-2wf"/>
|
||||
</connections>
|
||||
</slider>
|
||||
|
@ -2693,10 +2708,31 @@ Gw
|
|||
</buttonCell>
|
||||
<connections>
|
||||
<action selector="pressReset:" target="Ta5-Ik-jh9" id="zoi-N3-teA"/>
|
||||
<binding destination="1689" name="enabled" keyPath="values.rubberbandEngine" id="GU1-d5-uWi">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">RubberbandEngineEnabledTransformer</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
</connections>
|
||||
</button>
|
||||
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="yQh-Rt-nJL" userLabel="Notice">
|
||||
<rect key="frame" x="0.0" y="57" width="66" height="27"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="push" title="⚠️" bezelStyle="rounded" alignment="center" controlSize="small" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="XV7-Re-I9u">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<action selector="showRubberbandSettings:" target="226" id="zqd-7k-1f0"/>
|
||||
<binding destination="1689" name="hidden" keyPath="values.rubberbandEngine" id="BoK-zT-W4T">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">RubberbandEngineHiddenTransformer</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<point key="canvasLocation" x="965" y="12"/>
|
||||
<point key="canvasLocation" x="964.5" y="12"/>
|
||||
</customView>
|
||||
<customObject id="1675" customClass="SpotlightWindowController">
|
||||
<connections>
|
||||
|
|
|
@ -163,6 +163,7 @@
|
|||
839B837F286D7F8D00F529EE /* NumberHertzToStringTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 839B837E286D7F8D00F529EE /* NumberHertzToStringTransformer.swift */; };
|
||||
839DA7CF274A2D4C001B18E5 /* NSDictionary+Merge.m in Sources */ = {isa = PBXBuildFile; fileRef = 839DA7CE274A2D4C001B18E5 /* NSDictionary+Merge.m */; };
|
||||
839E56F52879625100DFB5F4 /* SADIE_D02-96000.mhr in Resources */ = {isa = PBXBuildFile; fileRef = 839E56F12879625100DFB5F4 /* SADIE_D02-96000.mhr */; };
|
||||
839E876E2D5DA0AC00A13526 /* RubberbandEngineTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 839E876D2D5DA0AC00A13526 /* RubberbandEngineTransformer.m */; };
|
||||
83A360B220E4E81D00192DAB /* Flac.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8303A30C20E4E3D000951EF8 /* Flac.bundle */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
83A3B734283AE89000CC6593 /* ColorToValueTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 83A3B72F283AE6AA00CC6593 /* ColorToValueTransformer.m */; };
|
||||
83AA7D04279EBCA900087AA4 /* libavcodec.61.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 83AA7D00279EBC8200087AA4 /* libavcodec.61.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
||||
|
@ -1005,6 +1006,8 @@
|
|||
839DA7CE274A2D4C001B18E5 /* NSDictionary+Merge.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDictionary+Merge.m"; sourceTree = "<group>"; };
|
||||
839E3B53286595D700880EA2 /* GeneralPane.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GeneralPane.h; path = Preferences/Preferences/GeneralPane.h; sourceTree = "<group>"; };
|
||||
839E56F12879625100DFB5F4 /* SADIE_D02-96000.mhr */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SADIE_D02-96000.mhr"; sourceTree = "<group>"; };
|
||||
839E876C2D5DA0AC00A13526 /* RubberbandEngineTransformer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RubberbandEngineTransformer.h; path = Preferences/Preferences/RubberbandEngineTransformer.h; sourceTree = "<group>"; };
|
||||
839E876D2D5DA0AC00A13526 /* RubberbandEngineTransformer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = RubberbandEngineTransformer.m; path = Preferences/Preferences/RubberbandEngineTransformer.m; sourceTree = "<group>"; };
|
||||
83A3B72F283AE6AA00CC6593 /* ColorToValueTransformer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = ColorToValueTransformer.m; path = Preferences/Preferences/ColorToValueTransformer.m; sourceTree = "<group>"; };
|
||||
83A3B733283AE6AA00CC6593 /* ColorToValueTransformer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ColorToValueTransformer.h; path = Preferences/Preferences/ColorToValueTransformer.h; sourceTree = "<group>"; };
|
||||
83AA7D00279EBC8200087AA4 /* libavcodec.61.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libavcodec.61.dylib; path = ThirdParty/ffmpeg/lib/libavcodec.61.dylib; sourceTree = "<group>"; };
|
||||
|
@ -1413,6 +1416,8 @@
|
|||
17E0D5F60F520F42005B6FED /* Transformers */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
839E876C2D5DA0AC00A13526 /* RubberbandEngineTransformer.h */,
|
||||
839E876D2D5DA0AC00A13526 /* RubberbandEngineTransformer.m */,
|
||||
83A3B733283AE6AA00CC6593 /* ColorToValueTransformer.h */,
|
||||
83A3B72F283AE6AA00CC6593 /* ColorToValueTransformer.m */,
|
||||
17E0D6120F520F87005B6FED /* FontSizetoLineHeightTransformer.h */,
|
||||
|
@ -2565,6 +2570,7 @@
|
|||
838A337D2D06C14200D0D770 /* TempoSlider.m in Sources */,
|
||||
838A337E2D06C14200D0D770 /* PitchSlider.m in Sources */,
|
||||
838A33832D06CF4100D0D770 /* SpectrumViewCG.m in Sources */,
|
||||
839E876E2D5DA0AC00A13526 /* RubberbandEngineTransformer.m in Sources */,
|
||||
838A33842D06CF4100D0D770 /* SpectrumWindowController.m in Sources */,
|
||||
83B61E2829A82A0200CD0580 /* LyricsWindowController.m in Sources */,
|
||||
56462EB20D634206000AB68C /* SpotlightPlaylistController.m in Sources */,
|
||||
|
|
|
@ -16,8 +16,8 @@
|
|||
<outlet property="notificationsView" destination="U4w-jw-ca5" id="wVJ-GH-A21"/>
|
||||
<outlet property="outputPane" destination="57" id="75"/>
|
||||
<outlet property="playlistView" destination="231" id="244"/>
|
||||
<outlet property="updatesView" destination="50" id="99"/>
|
||||
<outlet property="rubberbandPane" destination="l4Y-NE-ezS" id="XTA-io-tov"/>
|
||||
<outlet property="updatesView" destination="50" id="99"/>
|
||||
</connections>
|
||||
</customObject>
|
||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||
|
@ -1212,9 +1212,9 @@
|
|||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="52" name="enabled" keyPath="values.rubberbandEngine" id="Kbb-Jr-kQr">
|
||||
<binding destination="52" name="enabled" keyPath="values.rubberbandEngine" id="WpV-AO-w2c">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">RubberbandEngineTransformer</string>
|
||||
<string key="NSValueTransformerName">RubberbandEngineR3Transformer</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
</connections>
|
||||
|
@ -1237,9 +1237,9 @@
|
|||
<binding destination="rD7-3H-4FM" name="content" keyPath="arrangedObjects" id="vf7-6E-9v5"/>
|
||||
<binding destination="rD7-3H-4FM" name="contentValues" keyPath="arrangedObjects.name" previousBinding="M9I-iY-Wej" id="O0z-2y-UPl"/>
|
||||
<binding destination="rD7-3H-4FM" name="contentObjects" keyPath="arrangedObjects.preference" previousBinding="vf7-6E-9v5" id="M9I-iY-Wej"/>
|
||||
<binding destination="52" name="enabled" keyPath="values.rubberbandEngine" id="pYS-w5-uyT">
|
||||
<binding destination="52" name="enabled" keyPath="values.rubberbandEngine" id="sRp-Zg-Fij">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">RubberbandEngineTransformer</string>
|
||||
<string key="NSValueTransformerName">RubberbandEngineR3Transformer</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="52" name="selectedObject" keyPath="values.rubberbandTransients" previousBinding="O0z-2y-UPl" id="KLB-xJ-rb9"/>
|
||||
|
@ -1254,9 +1254,9 @@
|
|||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="52" name="enabled" keyPath="values.rubberbandEngine" id="Yam-2c-Ktt">
|
||||
<binding destination="52" name="enabled" keyPath="values.rubberbandEngine" id="6jW-SO-QOk">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">RubberbandEngineTransformer</string>
|
||||
<string key="NSValueTransformerName">RubberbandEngineR3Transformer</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
</connections>
|
||||
|
@ -1279,9 +1279,9 @@
|
|||
<binding destination="0rf-6O-MPh" name="content" keyPath="arrangedObjects" id="1Lg-gE-DdG"/>
|
||||
<binding destination="0rf-6O-MPh" name="contentValues" keyPath="arrangedObjects.name" previousBinding="37N-3K-rq6" id="kLx-xv-a24"/>
|
||||
<binding destination="0rf-6O-MPh" name="contentObjects" keyPath="arrangedObjects.preference" previousBinding="1Lg-gE-DdG" id="37N-3K-rq6"/>
|
||||
<binding destination="52" name="enabled" keyPath="values.rubberbandEngine" id="0Qr-w7-JMe">
|
||||
<binding destination="52" name="enabled" keyPath="values.rubberbandEngine" id="YLJ-Qx-vXy">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">RubberbandEngineTransformer</string>
|
||||
<string key="NSValueTransformerName">RubberbandEngineR3Transformer</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="52" name="selectedObject" keyPath="values.rubberbandDetector" previousBinding="kLx-xv-a24" id="MQw-g6-ogU"/>
|
||||
|
@ -1296,9 +1296,9 @@
|
|||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="52" name="enabled" keyPath="values.rubberbandEngine" id="hqe-Xx-oDX">
|
||||
<binding destination="52" name="enabled" keyPath="values.rubberbandEngine" id="Woj-HJ-niS">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">RubberbandEngineTransformer</string>
|
||||
<string key="NSValueTransformerName">RubberbandEngineR3Transformer</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
</connections>
|
||||
|
@ -1321,9 +1321,9 @@
|
|||
<binding destination="XkG-oY-ZCw" name="content" keyPath="arrangedObjects" id="15P-mE-WZ7"/>
|
||||
<binding destination="XkG-oY-ZCw" name="contentValues" keyPath="arrangedObjects.name" previousBinding="iRN-4y-psG" id="VjJ-5K-hbu"/>
|
||||
<binding destination="XkG-oY-ZCw" name="contentObjects" keyPath="arrangedObjects.preference" previousBinding="15P-mE-WZ7" id="iRN-4y-psG"/>
|
||||
<binding destination="52" name="enabled" keyPath="values.rubberbandEngine" id="olc-Zu-jtV">
|
||||
<binding destination="52" name="enabled" keyPath="values.rubberbandEngine" id="h5e-kZ-s0v">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">RubberbandEngineTransformer</string>
|
||||
<string key="NSValueTransformerName">RubberbandEngineR3Transformer</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="52" name="selectedObject" keyPath="values.rubberbandPhase" previousBinding="VjJ-5K-hbu" id="e13-ei-jMs"/>
|
||||
|
@ -1337,6 +1337,13 @@
|
|||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="52" name="enabled" keyPath="values.rubberbandEngine" id="6f6-M1-n3d">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">RubberbandEngineEnabledTransformer</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
</connections>
|
||||
</textField>
|
||||
<popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="9g3-eD-m8o" userLabel="Rubberband Window Size">
|
||||
<rect key="frame" x="186" y="112" width="164" height="25"/>
|
||||
|
@ -1356,6 +1363,11 @@
|
|||
<binding destination="qKv-dH-ulp" name="content" keyPath="arrangedObjects" id="Wph-cL-g56"/>
|
||||
<binding destination="qKv-dH-ulp" name="contentValues" keyPath="arrangedObjects.name" previousBinding="RHw-Gv-iI0" id="NOc-zw-E5B"/>
|
||||
<binding destination="qKv-dH-ulp" name="contentObjects" keyPath="arrangedObjects.preference" previousBinding="Wph-cL-g56" id="RHw-Gv-iI0"/>
|
||||
<binding destination="52" name="enabled" keyPath="values.rubberbandEngine" id="CuA-Yi-XqB">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">RubberbandEngineEnabledTransformer</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="52" name="selectedObject" keyPath="values.rubberbandWindow" previousBinding="NOc-zw-E5B" id="jO4-fL-0ka"/>
|
||||
</connections>
|
||||
</popUpButton>
|
||||
|
@ -1368,9 +1380,9 @@
|
|||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="52" name="enabled" keyPath="values.rubberbandEngine" id="Shn-JN-4nI">
|
||||
<binding destination="52" name="enabled" keyPath="values.rubberbandEngine" id="949-Ha-vsM">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">RubberbandEngineTransformer</string>
|
||||
<string key="NSValueTransformerName">RubberbandEngineR3Transformer</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
</connections>
|
||||
|
@ -1393,9 +1405,9 @@
|
|||
<binding destination="7qK-HD-YRC" name="content" keyPath="arrangedObjects" id="glT-yT-Xy1"/>
|
||||
<binding destination="7qK-HD-YRC" name="contentValues" keyPath="arrangedObjects.name" previousBinding="R8g-75-OWT" id="OtE-O8-meo"/>
|
||||
<binding destination="7qK-HD-YRC" name="contentObjects" keyPath="arrangedObjects.preference" previousBinding="glT-yT-Xy1" id="R8g-75-OWT"/>
|
||||
<binding destination="52" name="enabled" keyPath="values.rubberbandEngine" id="q0n-WG-Xis">
|
||||
<binding destination="52" name="enabled" keyPath="values.rubberbandEngine" id="J82-Il-BcJ">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">RubberbandEngineTransformer</string>
|
||||
<string key="NSValueTransformerName">RubberbandEngineR3Transformer</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="52" name="selectedObject" keyPath="values.rubberbandSmoothing" previousBinding="OtE-O8-meo" id="jqW-KQ-IiR"/>
|
||||
|
@ -1409,6 +1421,13 @@
|
|||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="52" name="enabled" keyPath="values.rubberbandEngine" id="6aI-ea-kLD">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">RubberbandEngineEnabledTransformer</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
</connections>
|
||||
</textField>
|
||||
<popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="2Y7-n5-g43" userLabel="Rubberband Formant">
|
||||
<rect key="frame" x="186" y="64" width="164" height="25"/>
|
||||
|
@ -1428,6 +1447,11 @@
|
|||
<binding destination="5Cw-Q7-Y6w" name="content" keyPath="arrangedObjects" id="8PO-vs-kd4"/>
|
||||
<binding destination="5Cw-Q7-Y6w" name="contentValues" keyPath="arrangedObjects.name" previousBinding="Tuw-7B-rA3" id="d3u-gj-AVL"/>
|
||||
<binding destination="5Cw-Q7-Y6w" name="contentObjects" keyPath="arrangedObjects.preference" previousBinding="8PO-vs-kd4" id="Tuw-7B-rA3"/>
|
||||
<binding destination="52" name="enabled" keyPath="values.rubberbandEngine" id="mBh-PO-miO">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">RubberbandEngineEnabledTransformer</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="52" name="selectedObject" keyPath="values.rubberbandFormant" previousBinding="d3u-gj-AVL" id="jQQ-qt-LAC"/>
|
||||
</connections>
|
||||
</popUpButton>
|
||||
|
@ -1439,6 +1463,13 @@
|
|||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="52" name="enabled" keyPath="values.rubberbandEngine" id="0Am-ed-3v0">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">RubberbandEngineEnabledTransformer</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
</connections>
|
||||
</textField>
|
||||
<popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="FIB-Jj-YWd" userLabel="Rubberband Pitch">
|
||||
<rect key="frame" x="186" y="40" width="164" height="25"/>
|
||||
|
@ -1458,6 +1489,11 @@
|
|||
<binding destination="mFW-7h-5rd" name="content" keyPath="arrangedObjects" id="yqp-aH-3Vn"/>
|
||||
<binding destination="mFW-7h-5rd" name="contentValues" keyPath="arrangedObjects.name" previousBinding="X49-3Z-EWj" id="ISf-ZT-bQj"/>
|
||||
<binding destination="mFW-7h-5rd" name="contentObjects" keyPath="arrangedObjects.preference" previousBinding="yqp-aH-3Vn" id="X49-3Z-EWj"/>
|
||||
<binding destination="52" name="enabled" keyPath="values.rubberbandEngine" id="XZU-H2-d2Y">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">RubberbandEngineEnabledTransformer</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="52" name="selectedObject" keyPath="values.rubberbandPitch" previousBinding="ISf-ZT-bQj" id="O1U-TC-XPY"/>
|
||||
</connections>
|
||||
</popUpButton>
|
||||
|
@ -1469,6 +1505,13 @@
|
|||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="52" name="enabled" keyPath="values.rubberbandEngine" id="Xmj-14-dvj">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">RubberbandEngineEnabledTransformer</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
</connections>
|
||||
</textField>
|
||||
<popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="f50-KA-ekP" userLabel="Rubberband Channels">
|
||||
<rect key="frame" x="186" y="16" width="164" height="25"/>
|
||||
|
@ -1488,6 +1531,11 @@
|
|||
<binding destination="Dfm-y4-7ki" name="content" keyPath="arrangedObjects" id="bas-JW-4u4"/>
|
||||
<binding destination="Dfm-y4-7ki" name="contentValues" keyPath="arrangedObjects.name" previousBinding="K1C-oq-2vZ" id="8Ja-Tu-lo2"/>
|
||||
<binding destination="Dfm-y4-7ki" name="contentObjects" keyPath="arrangedObjects.preference" previousBinding="bas-JW-4u4" id="K1C-oq-2vZ"/>
|
||||
<binding destination="52" name="enabled" keyPath="values.rubberbandEngine" id="hZx-A7-Nvg">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">RubberbandEngineEnabledTransformer</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="52" name="selectedObject" keyPath="values.rubberbandChannels" previousBinding="8Ja-Tu-lo2" id="Xyj-me-7r1"/>
|
||||
</connections>
|
||||
</popUpButton>
|
||||
|
|
|
@ -27,9 +27,13 @@
|
|||
[NSValueTransformer setValueTransformer:timeIntervalToStringTransformer
|
||||
forName:@"TimeIntervalToStringTransformer"];
|
||||
|
||||
NSValueTransformer *rubberbandEngineTransformer = [[RubberbandEngineTransformer alloc] init];
|
||||
[NSValueTransformer setValueTransformer:rubberbandEngineTransformer
|
||||
forName:@"RubberbandEngineTransformer"];
|
||||
NSValueTransformer *rubberbandEngineR3Transformer = [[RubberbandEngineR3Transformer alloc] init];
|
||||
[NSValueTransformer setValueTransformer:rubberbandEngineR3Transformer
|
||||
forName:@"RubberbandEngineR3Transformer"];
|
||||
|
||||
NSValueTransformer *rubberbandEngineEnabledTransformer = [[RubberbandEngineEnabledTransformer alloc] init];
|
||||
[NSValueTransformer setValueTransformer:rubberbandEngineEnabledTransformer
|
||||
forName:@"RubberbandEngineEnabledTransformer"];
|
||||
}
|
||||
|
||||
+ (NSArray *)preferencePanes {
|
||||
|
|
|
@ -10,7 +10,15 @@
|
|||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RubberbandEngineTransformer : NSValueTransformer
|
||||
@interface RubberbandEngineEnabledTransformer : NSValueTransformer
|
||||
|
||||
@end
|
||||
|
||||
@interface RubberbandEngineHiddenTransformer : NSValueTransformer
|
||||
|
||||
@end
|
||||
|
||||
@interface RubberbandEngineR3Transformer : NSValueTransformer
|
||||
|
||||
@end
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
#import "RubberbandEngineTransformer.h"
|
||||
|
||||
@implementation RubberbandEngineTransformer
|
||||
@implementation RubberbandEngineR3Transformer
|
||||
+ (Class)transformedValueClass {
|
||||
return [NSNumber class];
|
||||
}
|
||||
|
@ -19,35 +19,62 @@
|
|||
|
||||
- (id)transformedValue:(id)value {
|
||||
if(value == nil) return @(YES);
|
||||
|
||||
|
||||
if([value isKindOfClass:[NSString class]]) {
|
||||
NSString *stringValue = value;
|
||||
if([stringValue isEqualToString:@"finer"]) {
|
||||
if([stringValue isEqualToString:@"disabled"] ||
|
||||
[stringValue isEqualToString:@"finer"]) {
|
||||
return @(NO);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return @(YES);
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation RubberbandEngineEnabledTransformer
|
||||
+ (Class)transformedValueClass {
|
||||
return [NSNumber class];
|
||||
}
|
||||
+ (BOOL)allowsReverseTransformation {
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (id)transformedValue:(id)value {
|
||||
if(value == nil) return @(YES);
|
||||
|
||||
if([value isKindOfClass:[NSString class]]) {
|
||||
NSString *stringValue = value;
|
||||
if([stringValue isEqualToString:@"disabled"]) {
|
||||
return @(NO);
|
||||
}
|
||||
}
|
||||
|
||||
return @(YES);
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation RubberbandEngineHiddenTransformer
|
||||
+ (Class)transformedValueClass {
|
||||
return [NSNumber class];
|
||||
}
|
||||
+ (BOOL)allowsReverseTransformation {
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (id)transformedValue:(id)value {
|
||||
if(value == nil) return @(YES);
|
||||
|
||||
if([value isKindOfClass:[NSString class]]) {
|
||||
NSString *stringValue = value;
|
||||
if([stringValue isEqualToString:@"disabled"]) {
|
||||
return @(NO);
|
||||
}
|
||||
}
|
||||
|
||||
return @(YES);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@end
|
||||
|
|
|
@ -45,6 +45,8 @@
|
|||
- (void)awakeFromNib {
|
||||
[self removeObjects:[self arrangedObjects]];
|
||||
|
||||
[self addObject:@{@"name": NSLocalizedStringFromTableInBundle(@"EngineDisabled", nil, [NSBundle bundleForClass:[self class]], @""), @"preference": @"disabled"}];
|
||||
|
||||
[self addObject:@{@"name": NSLocalizedStringFromTableInBundle(@"EngineFaster", nil, [NSBundle bundleForClass:[self class]], @""), @"preference": @"faster"}];
|
||||
|
||||
[self addObject:@{@"name": NSLocalizedStringFromTableInBundle(@"EngineFiner", nil, [NSBundle bundleForClass:[self class]], @""), @"preference": @"finer"}];
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
"Volume scale tag only" = "Volume scale tag only";
|
||||
"Zero Order Hold" = "Zero Order Hold";
|
||||
"Rubber Band" = "Rubber Band";
|
||||
"EngineDisabled" = "Disabled";
|
||||
"EngineFaster" = "Faster";
|
||||
"EngineFiner" = "Finer";
|
||||
"TransientsCrisp" = "Crisp";
|
||||
|
|
|
@ -83,6 +83,7 @@
|
|||
"Zero Order Hold" = "Retención de orden cero";
|
||||
|
||||
"Rubber Band" = "Rubber Band";
|
||||
"EngineDisabled" = "Desactivado";
|
||||
"EngineFaster" = "Más rápido";
|
||||
"EngineFiner" = "Mejor calidad";
|
||||
"TransientsCrisp" = "Definidos";
|
||||
|
|
|
@ -15,5 +15,6 @@
|
|||
|
||||
- (IBAction)showPreferences:(id)sender;
|
||||
- (IBAction)showPathSuggester:(id)sender;
|
||||
- (IBAction)showRubberbandSettings:(id)sender;
|
||||
|
||||
@end
|
||||
|
|
|
@ -38,4 +38,10 @@
|
|||
[window showPathSuggester];
|
||||
}
|
||||
|
||||
- (IBAction)showRubberbandSettings:(id)sender {
|
||||
[self initWindow];
|
||||
|
||||
[window showRubberbandSettings];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -23,5 +23,6 @@
|
|||
|
||||
- (void)show;
|
||||
- (void)showPathSuggester;
|
||||
- (void)showRubberbandSettings;
|
||||
|
||||
@end
|
||||
|
|
|
@ -167,6 +167,14 @@
|
|||
}
|
||||
}
|
||||
|
||||
- (void)showRubberbandSettings {
|
||||
NSString *name = NSLocalizedPrefString(@"Rubber Band");
|
||||
|
||||
[self loadPaneNamed:name display:NO];
|
||||
|
||||
[self makeKeyAndOrderFront:self];
|
||||
}
|
||||
|
||||
// Close on Esc pressed.
|
||||
- (void)cancelOperation:(id)sender {
|
||||
[self close];
|
||||
|
|
|
@ -10,9 +10,17 @@
|
|||
|
||||
#import "AppController.h"
|
||||
|
||||
// NOTICE! We bury first time defaults that should depend on whether the install is fresh or not here
|
||||
// so that they get created correctly depending on the situation.
|
||||
|
||||
// For instance, for the first option to get this treatment, we want time stretching to stay enabled
|
||||
// for existing installations, but disable itself by default on new installs, to spare processing.
|
||||
|
||||
void showCrashlyticsConsent(NSWindow *window) {
|
||||
BOOL askedConsent = [[NSUserDefaults standardUserDefaults] boolForKey:@"crashlyticsAskedConsent"];
|
||||
if(!askedConsent) {
|
||||
[[NSUserDefaults standardUserDefaults] registerDefaults:@{ @"rubberbandEngine": @"disabled" }];
|
||||
|
||||
[window orderFront:window];
|
||||
|
||||
NSAlert *alert = [[NSAlert alloc] init];
|
||||
|
@ -28,6 +36,8 @@ void showCrashlyticsConsent(NSWindow *window) {
|
|||
}];
|
||||
|
||||
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"crashlyticsAskedConsent"];
|
||||
} else {
|
||||
[[NSUserDefaults standardUserDefaults] registerDefaults:@{ @"rubberbandEngine": @"faster" }];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue