00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef __CHOP_csound_score_h__
00013 #define __CHOP_csound_score_h__
00014
00015 #include <UT/UT_ExpandArray.h>
00016
00017 #define parm_setup_offset 14
00018 #define parm_f1_offset (parm_setup_offset + 15)
00019 #define parm_f2_offset (parm_f1_offset + 15)
00020 #define parm_f3_offset (parm_f2_offset + 8)
00021 #define parm_f4_offset (parm_f3_offset + 8)
00022
00023
00024 #define ARG_CSOUND_SCORE_FNAME (myParmBase + 0)
00025 #define ARG_CSOUND_SCORE_INST (myParmBase + 1)
00026 #define ARG_CSOUND_SCORE_INST_NAME (myParmBase + 2)
00027 #define ARG_CSOUND_SCORE_USE_INST_IN (myParmBase + 3)
00028 #define ARG_CSOUND_SCORE_DUR_OVERRIDE (myParmBase + 4)
00029 #define ARG_CSOUND_SCORE_DURATION (myParmBase + 5)
00030 #define ARG_CSOUND_SCORE_USE_EVENT_GATE (myParmBase + 6)
00031 #define ARG_CSOUND_SCORE_INC_TOG (myParmBase + 7)
00032 #define ARG_CSOUND_SCORE_INC_FNAME (myParmBase + 8)
00033 #define ARG_CSOUND_SCORE_TIME_MODE (myParmBase + 9)
00034 #define ARG_CSOUND_SCORE_TIME_OFFSET (myParmBase + 10)
00035 #define ARG_CSOUND_SCORE_CONSOLE_OUT (myParmBase + 11)
00036 #define ARG_CSOUND_SCORE_COMMENT (myParmBase + 12)
00037 #define ARG_CSOUND_SCORE_WRITE_FILE (myParmBase + 13)
00038
00039
00040 #define ARG_CSOUND_SCORE_FTBL_1_ON (myParmBase + parm_setup_offset + 0)
00041 #define ARG_CSOUND_SCORE_GEN_NUM_1 (myParmBase + parm_setup_offset + 1)
00042 #define ARG_CSOUND_SCORE_SND_FNAME_1 (myParmBase + parm_setup_offset + 2)
00043 #define ARG_CSOUND_SCORE_FTBL_1 (myParmBase + parm_setup_offset + 3)
00044 #define ARG_CSOUND_SCORE_FTBL_1_INIT (myParmBase + parm_setup_offset + 4)
00045 #define ARG_CSOUND_SCORE_FTBL_1_LEN (myParmBase + parm_setup_offset + 5)
00046 #define ARG_CSOUND_SCORE_FTBL_1_GRD_PT (myParmBase + parm_setup_offset + 6)
00047 #define ARG_CSOUND_SCORE_FTBL_1_GEN_PARM1 (myParmBase + parm_setup_offset + 7)
00048 #define ARG_CSOUND_SCORE_FTBL_1_GEN_PARM2 (myParmBase + parm_setup_offset + 8)
00049 #define ARG_CSOUND_SCORE_FTBL_1_GEN_PARM3 (myParmBase + parm_setup_offset + 9)
00050 #define ARG_CSOUND_SCORE_FTBL_1_GEN_PARM4 (myParmBase + parm_setup_offset + 10)
00051 #define ARG_CSOUND_SCORE_FTBL_1_GEN_PARM5 (myParmBase + parm_setup_offset + 11)
00052 #define ARG_CSOUND_SCORE_FTBL_1_GEN_PARM6 (myParmBase + parm_setup_offset + 12)
00053 #define ARG_CSOUND_SCORE_FTBL_1_GEN_PARM7 (myParmBase + parm_setup_offset + 13)
00054 #define ARG_CSOUND_SCORE_FTBL_1_GEN_PARM8 (myParmBase + parm_setup_offset + 14)
00055
00056
00057 #define ARG_CSOUND_SCORE_FTBL_2_ON (myParmBase + parm_f1_offset + 0)
00058 #define ARG_CSOUND_SCORE_GEN_NUM_2 (myParmBase + parm_f1_offset + 1)
00059 #define ARG_CSOUND_SCORE_SND_FNAME_2 (myParmBase + parm_f1_offset + 2)
00060 #define ARG_CSOUND_SCORE_FTBL_2 (myParmBase + parm_f1_offset + 3)
00061 #define ARG_CSOUND_SCORE_FTBL_2_INIT (myParmBase + parm_f1_offset + 4)
00062 #define ARG_CSOUND_SCORE_FTBL_2_LEN (myParmBase + parm_f1_offset + 5)
00063 #define ARG_CSOUND_SCORE_FTBL_2_GRD_PT (myParmBase + parm_f1_offset + 6)
00064 #define ARG_CSOUND_SCORE_FTBL_2_GEN_PARM1 (myParmBase + parm_f1_offset + 7)
00065 #define ARG_CSOUND_SCORE_FTBL_2_GEN_PARM2 (myParmBase + parm_f1_offset + 8)
00066 #define ARG_CSOUND_SCORE_FTBL_2_GEN_PARM3 (myParmBase + parm_f1_offset + 9)
00067 #define ARG_CSOUND_SCORE_FTBL_2_GEN_PARM4 (myParmBase + parm_f1_offset + 10)
00068 #define ARG_CSOUND_SCORE_FTBL_2_GEN_PARM5 (myParmBase + parm_f1_offset + 11)
00069 #define ARG_CSOUND_SCORE_FTBL_2_GEN_PARM6 (myParmBase + parm_f1_offset + 12)
00070 #define ARG_CSOUND_SCORE_FTBL_2_GEN_PARM7 (myParmBase + parm_f1_offset + 13)
00071 #define ARG_CSOUND_SCORE_FTBL_2_GEN_PARM8 (myParmBase + parm_f1_offset + 14)
00072
00073
00074 #define ARG_CSOUND_SCORE_FTBL_3_ON (myParmBase + parm_f2_offset + 0)
00075 #define ARG_CSOUND_SCORE_GEN_NUM_3 (myParmBase + parm_f2_offset + 1)
00076 #define ARG_CSOUND_SCORE_SND_FNAME_3 (myParmBase + parm_f2_offset + 2)
00077 #define ARG_CSOUND_SCORE_FTBL_3 (myParmBase + parm_f2_offset + 3)
00078 #define ARG_CSOUND_SCORE_FTBL_3_INIT (myParmBase + parm_f2_offset + 4)
00079 #define ARG_CSOUND_SCORE_FTBL_3_LEN (myParmBase + parm_f2_offset + 5)
00080 #define ARG_CSOUND_SCORE_FTBL_3_GRD_PT (myParmBase + parm_f2_offset + 6)
00081 #define ARG_CSOUND_SCORE_FTBL_3_GEN_PARM (myParmBase + parm_f2_offset + 7)
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095 #define ARG_CSOUND_SCORE_FTBL_4_ON (myParmBase + parm_f3_offset + 0)
00096 #define ARG_CSOUND_SCORE_GEN_NUM_4 (myParmBase + parm_f3_offset + 1)
00097 #define ARG_CSOUND_SCORE_SND_FNAME_4 (myParmBase + parm_f3_offset + 2)
00098 #define ARG_CSOUND_SCORE_FTBL_4 (myParmBase + parm_f3_offset + 3)
00099 #define ARG_CSOUND_SCORE_FTBL_4_INIT (myParmBase + parm_f3_offset + 4)
00100 #define ARG_CSOUND_SCORE_FTBL_4_LEN (myParmBase + parm_f3_offset + 5)
00101 #define ARG_CSOUND_SCORE_FTBL_4_GRD_PT (myParmBase + parm_f3_offset + 6)
00102 #define ARG_CSOUND_SCORE_FTBL_4_GEN_PARM (myParmBase + parm_f2_offset + 7)
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116 #define MAX_CHANNELS 128
00117
00118 class CHOP_csound_score : public CHOP_Node
00119 {
00120 public:
00121
00122 static OP_Node *myConstructor(OP_Network*, const char *,
00123 OP_Operator *);
00124 static OP_TemplatePair myTemplatePair;
00125 static OP_VariablePair myVariablePair;
00126 static PRM_Template myTemplateList[];
00127 static CH_LocalVariable myVariableList[];
00128
00129 OP_ERROR cookMyChop(OP_Context &context);
00130
00131 virtual unsigned disableParms();
00132
00133 protected:
00134
00135 CHOP_csound_score(OP_Network *net,
00136 const char *name, OP_Operator *op);
00137
00138 virtual ~CHOP_csound_score();
00139
00140 virtual int usesUnits() { return 1; }
00141 virtual int usesScope() const { return 1; }
00142
00143 virtual const char *inputLabel(unsigned idx) const;
00144
00145 virtual float getVariableValue(int index, int thread);
00146
00147 private:
00148
00149
00150 void SCORE_FNAME(UT_String &label, float t)
00151 { evalString(label, ARG_CSOUND_SCORE_FNAME, 0, t); }
00152
00153 int INST(float t)
00154 { return evalInt(ARG_CSOUND_SCORE_INST, 0, t); }
00155
00156 void SET_INST(float t, int v)
00157 { setInt(ARG_CSOUND_SCORE_INST, 0, t, v); }
00158
00159 int INST_NAME(float t)
00160 { return evalInt(ARG_CSOUND_SCORE_INST_NAME, 0, t); }
00161
00162 int USE_INST_IN(float t)
00163 { return evalInt(ARG_CSOUND_SCORE_USE_INST_IN, 0, t); }
00164
00165 int DUR_OVERRIDE(float t)
00166 { return evalInt(ARG_CSOUND_SCORE_DUR_OVERRIDE, 0, t); }
00167
00168 float DURATION(float t)
00169 { return evalFloat(ARG_CSOUND_SCORE_DURATION, 0, t); }
00170
00171 int USE_EVENT_GATE(float t)
00172 { return evalInt(ARG_CSOUND_SCORE_USE_EVENT_GATE, 0, t); }
00173
00174 int INC_TOG(float t)
00175 { return evalInt(ARG_CSOUND_SCORE_INC_TOG, 0, t); }
00176
00177 void INC_FNAME(UT_String &label, float t)
00178 { evalString(label, ARG_CSOUND_SCORE_INC_FNAME, 0, t); }
00179
00180 int TIME_MODE(float t)
00181 { return evalInt(ARG_CSOUND_SCORE_TIME_MODE, 0, t); }
00182
00183 float TIME_OFFSET (float t)
00184 { return evalFloat(ARG_CSOUND_SCORE_TIME_OFFSET, 0, t); }
00185
00186 int CONSOLE_OUT(float t)
00187 { return evalInt(ARG_CSOUND_SCORE_CONSOLE_OUT, 0, t); }
00188
00189 void COMMENT(UT_String &label, float t)
00190 { evalString(label, ARG_CSOUND_SCORE_COMMENT, 0, t); }
00191
00192
00193
00194 int FTBL_1_ON(float t)
00195 { return evalInt(ARG_CSOUND_SCORE_FTBL_1_ON, 0, t); }
00196
00197 void GEN_NUM_1(UT_String &label, float t)
00198 { evalString(label, ARG_CSOUND_SCORE_GEN_NUM_1, 0, t); }
00199
00200 void SND_FNAME_1(UT_String &label, float t)
00201 { evalString(label, ARG_CSOUND_SCORE_SND_FNAME_1, 0, t); }
00202
00203 int FTBL_1(float t)
00204 { return evalInt(ARG_CSOUND_SCORE_FTBL_1, 0, t); }
00205
00206 float FTBL_1_INIT(float t)
00207 { return evalFloat(ARG_CSOUND_SCORE_FTBL_1_INIT,0,t); }
00208
00209 void FTBL_1_LEN(UT_String &label, float t)
00210 { evalString(label, ARG_CSOUND_SCORE_FTBL_1_LEN, 0, t); }
00211
00212 int FTBL_1_GRD_PT(float t)
00213 { return evalInt(ARG_CSOUND_SCORE_FTBL_1_GRD_PT, 0, t); }
00214
00215 float FTBL_1_GEN_PARM1(float t)
00216 { return evalFloat(ARG_CSOUND_SCORE_FTBL_1_GEN_PARM1,0,t); }
00217
00218 void SET_FTBL_1_GEN_PARM1(float t, float f)
00219 { setFloat(ARG_CSOUND_SCORE_FTBL_1_GEN_PARM1, 0, t, toUnit(f)); }
00220
00221 float FTBL_1_GEN_PARM2(float t)
00222 { return evalFloat(ARG_CSOUND_SCORE_FTBL_1_GEN_PARM2,0,t); }
00223
00224 void SET_FTBL_1_GEN_PARM2(float t, float f)
00225 { setFloat(ARG_CSOUND_SCORE_FTBL_1_GEN_PARM2, 0, t, toUnit(f)); }
00226
00227 float FTBL_1_GEN_PARM3(float t)
00228 { return evalFloat(ARG_CSOUND_SCORE_FTBL_1_GEN_PARM3,0,t); }
00229
00230 void SET_FTBL_1_GEN_PARM3(float t, float f)
00231 { setFloat(ARG_CSOUND_SCORE_FTBL_1_GEN_PARM3, 0, t, toUnit(f)); }
00232
00233 float FTBL_1_GEN_PARM4(float t)
00234 { return evalFloat(ARG_CSOUND_SCORE_FTBL_1_GEN_PARM4,0,t); }
00235
00236 void SET_FTBL_1_GEN_PARM4(float t, float f)
00237 { setFloat(ARG_CSOUND_SCORE_FTBL_1_GEN_PARM4, 0, t, toUnit(f)); }
00238
00239 float FTBL_1_GEN_PARM5(float t)
00240 { return evalFloat(ARG_CSOUND_SCORE_FTBL_1_GEN_PARM5,0,t); }
00241
00242 void SET_FTBL_1_GEN_PARM5(float t, float f)
00243 { setFloat(ARG_CSOUND_SCORE_FTBL_1_GEN_PARM5, 0, t, toUnit(f)); }
00244
00245 float FTBL_1_GEN_PARM6(float t)
00246 { return evalFloat(ARG_CSOUND_SCORE_FTBL_1_GEN_PARM6,0,t); }
00247
00248 void SET_FTBL_1_GEN_PARM6(float t, float f)
00249 { setFloat(ARG_CSOUND_SCORE_FTBL_1_GEN_PARM6, 0, t, toUnit(f)); }
00250
00251 float FTBL_1_GEN_PARM7(float t)
00252 { return evalFloat(ARG_CSOUND_SCORE_FTBL_1_GEN_PARM7,0,t); }
00253
00254 void SET_FTBL_1_GEN_PARM7(float t, float f)
00255 { setFloat(ARG_CSOUND_SCORE_FTBL_1_GEN_PARM7, 0, t, toUnit(f)); }
00256
00257 float FTBL_1_GEN_PARM8(float t)
00258 { return evalFloat(ARG_CSOUND_SCORE_FTBL_1_GEN_PARM8,0,t); }
00259
00260 void SET_FTBL_1_GEN_PARM8(float t, float f)
00261 { setFloat(ARG_CSOUND_SCORE_FTBL_1_GEN_PARM8, 0, t, toUnit(f)); }
00262
00263
00264
00265 int FTBL_2_ON(float t)
00266 { return evalInt(ARG_CSOUND_SCORE_FTBL_2_ON, 0, t); }
00267
00268 void GEN_NUM_2(UT_String &label, float t)
00269 { evalString(label, ARG_CSOUND_SCORE_GEN_NUM_2, 0, t); }
00270
00271 void SND_FNAME_2(UT_String &label, float t)
00272 { evalString(label, ARG_CSOUND_SCORE_SND_FNAME_2, 0, t); }
00273
00274 int FTBL_2(float t)
00275 { return evalInt(ARG_CSOUND_SCORE_FTBL_2, 0, t); }
00276
00277 float FTBL_2_INIT(float t)
00278 { return evalFloat(ARG_CSOUND_SCORE_FTBL_2_INIT,0,t); }
00279
00280 void FTBL_2_LEN(UT_String &label, float t)
00281 { evalString(label, ARG_CSOUND_SCORE_FTBL_2_LEN, 0, t); }
00282
00283 int FTBL_2_GRD_PT(float t)
00284 { return evalInt(ARG_CSOUND_SCORE_FTBL_2_GRD_PT, 0, t); }
00285
00286 float FTBL_2_GEN_PARM1(float t)
00287 { return evalFloat(ARG_CSOUND_SCORE_FTBL_2_GEN_PARM1,0,t); }
00288
00289 float FTBL_2_GEN_PARM2(float t)
00290 { return evalFloat(ARG_CSOUND_SCORE_FTBL_2_GEN_PARM2,0,t); }
00291
00292 float FTBL_2_GEN_PARM3(float t)
00293 { return evalFloat(ARG_CSOUND_SCORE_FTBL_2_GEN_PARM3,0,t); }
00294
00295 float FTBL_2_GEN_PARM4(float t)
00296 { return evalFloat(ARG_CSOUND_SCORE_FTBL_2_GEN_PARM4,0,t); }
00297
00298 float FTBL_2_GEN_PARM5(float t)
00299 { return evalFloat(ARG_CSOUND_SCORE_FTBL_2_GEN_PARM5,0,t); }
00300
00301 float FTBL_2_GEN_PARM6(float t)
00302 { return evalFloat(ARG_CSOUND_SCORE_FTBL_2_GEN_PARM6,0,t); }
00303
00304 float FTBL_2_GEN_PARM7(float t)
00305 { return evalFloat(ARG_CSOUND_SCORE_FTBL_2_GEN_PARM7,0,t); }
00306
00307 float FTBL_2_GEN_PARM8(float t)
00308 { return evalFloat(ARG_CSOUND_SCORE_FTBL_2_GEN_PARM8,0,t); }
00309
00310
00311
00312 int FTBL_3_ON(float t)
00313 { return evalInt(ARG_CSOUND_SCORE_FTBL_3_ON, 0, t); }
00314
00315 void GEN_NUM_3(UT_String &label, float t)
00316 { evalString(label, ARG_CSOUND_SCORE_GEN_NUM_3, 0, t); }
00317
00318 void SND_FNAME_3(UT_String &label, float t)
00319 { evalString(label, ARG_CSOUND_SCORE_SND_FNAME_3, 0, t); }
00320
00321 int FTBL_3(float t)
00322 { return evalInt(ARG_CSOUND_SCORE_FTBL_3, 0, t); }
00323
00324 float FTBL_3_INIT(float t)
00325 { return evalFloat(ARG_CSOUND_SCORE_FTBL_3_INIT,0,t); }
00326
00327 void FTBL_3_LEN(UT_String &label, float t)
00328 { evalString(label, ARG_CSOUND_SCORE_FTBL_3_LEN, 0, t); }
00329
00330 int FTBL_3_GRD_PT(float t)
00331 { return evalInt(ARG_CSOUND_SCORE_FTBL_3_GRD_PT, 0, t); }
00332
00333 void FTBL_3_GEN_PARM(UT_String &label, float t)
00334 { evalString(label, ARG_CSOUND_SCORE_FTBL_3_GEN_PARM, 0, t); }
00335
00336
00337
00338
00339
00340
00341
00342
00343
00344
00345
00346
00347
00348
00349
00350
00351
00352
00353
00354
00355
00356
00357
00358
00359
00360
00361
00362
00363
00364
00365 int FTBL_4_ON(float t)
00366 { return evalInt(ARG_CSOUND_SCORE_FTBL_4_ON, 0, t); }
00367
00368 void GEN_NUM_4(UT_String &label, float t)
00369 { evalString(label, ARG_CSOUND_SCORE_GEN_NUM_4, 0, t); }
00370
00371 void SND_FNAME_4(UT_String &label, float t)
00372 { evalString(label, ARG_CSOUND_SCORE_SND_FNAME_4, 0, t); }
00373
00374 int FTBL_4(float t)
00375 { return evalInt(ARG_CSOUND_SCORE_FTBL_4, 0, t); }
00376
00377 float FTBL_4_INIT(float t)
00378 { return evalFloat(ARG_CSOUND_SCORE_FTBL_4_INIT,0,t); }
00379
00380 void FTBL_4_LEN(UT_String &label, float t)
00381 { evalString(label, ARG_CSOUND_SCORE_FTBL_4_LEN, 0, t); }
00382
00383 int FTBL_4_GRD_PT(float t)
00384 { return evalInt(ARG_CSOUND_SCORE_FTBL_4_GRD_PT, 0, t); }
00385
00386 void FTBL_4_GEN_PARM(UT_String &label, float t)
00387 { evalString(label, ARG_CSOUND_SCORE_FTBL_4_GEN_PARM, 0, t); }
00388
00389
00390
00391
00392
00393
00394
00395
00396
00397
00398
00399
00400
00401
00402
00403
00404
00405
00406
00407
00408
00409
00410
00411
00412
00413
00414
00415
00416 bool writeHeader(FILE *fp);
00417 void getUIParms(OP_Context &context);
00418
00419
00420
00421 UT_String score_fname;
00422 UT_String inc_fname;
00423 UT_String comment;
00424 int inst;
00425 int inst_name;
00426 int use_inst_in;
00427 int dur_override;
00428 float duration;
00429 int use_event_gate;
00430 int inc_tog;
00431 int console_out;
00432 int time_mode;
00433 float time_offset;
00434
00435
00436 UT_String snd_fname_1;
00437 int ftable_1_on;
00438 int ftable_1;
00439 int gen_num_1;
00440 float ftable_1_init;
00441 int ftable_1_len;
00442 int ftable_1_grd_pt;
00443 float ftable_1_gen_param_1;
00444 float ftable_1_gen_param_2;
00445 float ftable_1_gen_param_3;
00446 float ftable_1_gen_param_4;
00447 float ftable_1_gen_param_5;
00448 float ftable_1_gen_param_6;
00449 float ftable_1_gen_param_7;
00450 float ftable_1_gen_param_8;
00451
00452
00453 UT_String snd_fname_2;
00454 int ftable_2_on;
00455 int ftable_2;
00456 int gen_num_2;
00457 float ftable_2_init;
00458 int ftable_2_len;
00459 int ftable_2_grd_pt;
00460 float ftable_2_gen_param_1;
00461 float ftable_2_gen_param_2;
00462 float ftable_2_gen_param_3;
00463 float ftable_2_gen_param_4;
00464 float ftable_2_gen_param_5;
00465 float ftable_2_gen_param_6;
00466 float ftable_2_gen_param_7;
00467 float ftable_2_gen_param_8;
00468
00469
00470 UT_String snd_fname_3;
00471 int ftable_3_on;
00472 int ftable_3;
00473 int gen_num_3;
00474 float ftable_3_init;
00475 int ftable_3_len;
00476 int ftable_3_grd_pt;
00477 float ftable_3_gen_param_1;
00478 UT_String ftable_3_gen_param;
00479
00480
00481
00482
00483
00484
00485
00486
00487
00488
00489
00490
00491 UT_String snd_fname_4;
00492 int ftable_4_on;
00493 int ftable_4;
00494 int gen_num_4;
00495 float ftable_4_init;
00496 int ftable_4_len;
00497 int ftable_4_grd_pt;
00498 float ftable_4_gen_param_1;
00499 UT_String ftable_4_gen_param;
00500
00501
00502
00503
00504
00505
00506
00507
00508
00509
00510
00511
00512 static int writeTheFile(void *data, int index,
00513 float time, const PRM_Template *tplate );
00514
00515
00516 bool calledFromCallback;
00517 OP_ERROR myCallBackError;
00518 unsigned int myCallBackFlags;
00519
00520 OP_ERROR reportCallBackErrors();
00521
00522 UT_ExpandArray myExpandArray;
00523
00524
00525 int my_C;
00526 int my_NC;
00527 int my_INST_NUM;
00528 float my_DUR;
00529 };
00530
00531 #endif
00532