1

我正在 IRTcmix(iphone/ipad 的 RTcmix 版本)中构建一个简单的步进音序器,使用 UI 按钮来控制序列中哪些音符是打开或关闭的。

我一直在使用其他应用程序的一组 RTcmix 示例,并尝试将我自己的示例拼凑在一起,但我不确定如何使用切换样式的 UIButton 更改 .sco(分数文件)中变量的值。

以下是工作中的 RTcmix 应用程序的一些片段:

从 RTcmix 管理器 .h:

@interface RTcmixManager : RTcmixPlayer {
RTcmixScore     *polyScore;

}

@property (nonatomic, retain)   RTcmixScore     *polyScore;

- (void)noteOn:(int)note;
- (void)noteOff:(int)note;

@end

和 RTcmix 管理器 .m

- (void)noteOn:(int)note {
[polyScore.mainScoreParameters replaceObjectAtIndex:0 withObject:[NSNumber numberWithInt:note]];
[polyScore.mainScoreParameters replaceObjectAtIndex:1 withObject:[NSNumber numberWithInt:1]];
[self parseScoreWithRTcmixScore:polyScore];
polyScore.setupIsActive = YES;
}

- (void)noteOff:(int)note {
    [polyScore.mainScoreParameters replaceObjectAtIndex:0 withObject:[NSNumber numberWithInt:note]];
    [polyScore.mainScoreParameters replaceObjectAtIndex:1 withObject:[NSNumber numberWithInt:0]];
    [self parseScoreWithRTcmixScore:polyScore];
}

视图控制器.h:

@interface RTPolyphonyViewController : UIViewController {
RTcmixManager       *rtcmixManager;
}

- (IBAction)keyDown:(UIButton *)sender;
- (IBAction)keyUp:(UIButton *)sender;

@end

视图控制器.m:

- (IBAction)keyDown:(UIButton *)sender {
[rtcmixManager noteOn:sender.tag]; 
}

- (IBAction)keyUp:(UIButton *)sender {
    [rtcmixManager noteOff:sender.tag]; 
}

以及来自 .sco 文件的片段(“%@”是用户输入更改的变量):

NoteNumber = %@
NoteVelocity = %@

alreadySounding = note_exists(oscNotes[NoteNumber])
MAXMESSAGE(0, alreadySounding)

我对目标 C 和 xcode 非常陌生,我想知道如何在乐谱文件中的两个值之间切换 UI 按钮(充当开关),例如,切换时的按钮使 NoteNumber 的值(在乐谱文件中) 设置为 1,而关闭时值为 0。因为我是 Xcode(和 Objective C)的初学者,所以我不确定使按钮能够打开和关闭的正确语法,我也不确定如何将所述按钮与我的 .sco 文件连接起来,尽管我查看示例代码,但我似乎无法弄清楚它们是如何连接的。

4

0 回答 0