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)
私はObjective Cとxcodeに非常に慣れていません.UIボタンをスコアファイルの2つの値の間で切り替える方法を考えていました(スイッチのように機能します)。 ) を 1 に設定し、オフにすると値は 0 になります。私は Xcode (および目的の C) の初心者であるため、ボタンのオンとオフを切り替えるための適切な構文がわかりません。また、そのボタンを .sco ファイルに接続する方法もわかりません。 、サンプルコードを見ている限り、それらがすべてどのように接続されているかを理解できないようです。