| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204 |
- /*
- * Copyright (c) 1983-2013 Trevor Wishart and Composers Desktop Project Ltd
- * http://www.trevorwishart.co.uk
- * http://www.composersdesktop.com
- *
- This file is part of the CDP System.
- The CDP System is free software; you can redistribute it
- and/or modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
- The CDP System is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public
- License along with the CDP System; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA
- *
- */
- /******************************** TEXTURE ******************************/
- /* CONSTANTS FOR TEXTURE */
- #define TEXTURE_MIN_DUR (0.01)
- #define TEXTURE_MAX_DUR (1.0)
- #define MAX_PACKTIME (60.0)
- #define DENSITY_DEFAULT (0.1)
- #define DEFAULT_SKIP (0.25)
- #define MAX_SCAT_TEXTURE (10.0)
- #define EIGHT_8VA_UP (96.0)
- #define EIGHT_8VA_DOWN (-96.0)
- #define DEFAULT_TEXDUR (4.0)
- #define DEFAULT_TEXDENS (10.0)
- #define DEFAULT_TEXSCAT (0.5)
- #define MIN_MULT (0.01)
- #define MAX_MULT (100.0)
- #define TEXTURE_SPLICELEN (15.0) /* 15 MS */
- #define TEXTURE_SAFETY (1.0) /* 1 MS: min snd-dur between splices */
- #define TEXTURE_DEFAULT_DUR (10.0)
- #define DEFAULT_PITCH (60.0) /* middle C */
- #define DEFAULT_HF_GPRANGE (8.0)
- #define DEFAULT_GPSIZE (4.0)
- #define HALF_OCTAVE (6.0)
- #define TEX_CENTRE (0.5)
- #define TEX_LEFT (0.0)
- #define TEX_RIGHT (1.0)
- #define MAX_SPREAD (1.0)
- #define MAX_GPRANGE (128.0)
- #define TEXTURE_SEPARATOR ('#') /* Character in notedata file to indicate next motif */
- /************************* MAX ELEMENT-REPETITIONS ALLOWED IN PERMS *************************/
- #define SPACE_REPETS (2) /* for param PM_SPACE */
- #define PITCH_REPETS (1) /* for param PM_PITCH */
- #define AMP_REPETS (1) /* for param PM_AMP */
- #define DUR_REPETS (1) /* for param PM_DUR */
- #define INSNO_REPETS (2) /* for param PM_INSNO */
- #define GPRANG_REPETS (1) /* for param PM_GPRANG */
- #define GPSIZE_REPETS (1) /* for param PM_GPSIZE */
- #define GPDENS_REPETS (1) /* for param PM_GPDENS */
- #define GPCNTR_REPETS (2) /* for param PM_GPCNTR */
- #define GPPICH_REPETS (1) /* for param PM_GPPICH */
- #define ORNPOS_REPETS (2) /* for param PM_ORNPOS */
- #define GPSPAC_REPETS (1) /* for param PM_GPSPAC */
- #define ORIENT_REPETS (1) /* for param PM_ORIENT */
- #define DECABV_REPETS (1) /* for param PM_DECABV */
- #define MULT_REPETS (1) /* for param PM_MULT */
- #define WHICH_REPETS (1) /* for param PM_WHICH */
- #define GPPICH2_REPETS (1) /* for param PM_GPPICH2 */
- /* CONSTANTS connected with these same permutation functions */
- #define PM_SPACE (0) /* L/R decision on events : Oldname NOUGHT */
- #define PM_PITCH (1) /* PITCH of events : Oldname ONE */
- #define PM_AMP (2) /* AMPLITUDE of events : Oldname TWO */
- #define PM_DUR (3) /* DURATION of events : Oldname THREE */
- #define PM_INSNO (4) /* INSTR_NO of events : Oldname FOUR */
- #define PM_GPRANG (5) /* RANGE of group : Oldname FIVE */
- #define PM_GPSIZE (6) /* SIZE of group : Oldname SIX */
- #define PM_GPDENS (7) /* DENSITY (notedur) of group : Oldname SEVEN */
- #define PM_GPCNTR (8) /* SELECT AMP CONTOUR of group : Oldname EIGHT */
- #define PM_GPPICH (9) /* PITCH OF NOTE in a group : Oldname NINE */
- #define PM_ORNPOS (10) /* PRE- or POST- ornament : Oldname TEN */
- #define PM_GPSPAC (11) /* SPATIALISE NOTE in a group : Oldname ELEVEN */
- #define PM_ORIENT (12) /* SELECT RANGE ORIENTATION of decoration Oldname TWELVE */
- #define PM_DECABV (13) /* SELECT ABOVE/BELOW of centred dec. notes Oldname THIRTEEN */
- #define PM_MULT (14) /* MULTIPLIER for duration motifs/ornmnts Oldname FOURTEEN */
- #define PM_WHICH (15) /* Select which motif to use as m or ornmnt Oldname FIFTEEN */
- #define PM_GPPICH2 (16) /* as 9 for other half of centred HF group Oldname SIXTEEN */
- #define DECOR_FIRST (0)
- #define DECOR_HIGHEST (1)
- #define DECOR_EVERY (2)
- /************************* TEXTURE PARAMETERS ******************************/
- /* SIMPLE_TEX (0) 00000000 00000000 */
- #define ISPRE_DECORORN (1) /* -------- -------1 */
- #define ISPOST_DECORORN (2) /* -------- ------1- */
- #define IS_HS (4) /* -------- -----1-- */
- #define ISMANY_HFLDS (8) /* -------- ----1--- */
- #define IS_GROUPS (16) /* -------- ---1---- */
- #define IS_DECOR (32) /* -------- --1----- */
- #define IS_MOTIFS (64) /* -------- -1------ */
- #define IS_ORNATE (128) /* -------- 1------- */
- #define MOTIF_IN_HF (256) /* -------1 -------- */
- #define ISTIMED (512) /* ------1- -------- */
- #define ISHARM (1024) /* -----1-- -------- */
- #define GET_DECORNPOS (3) /* -------- ------11 */
- #define IS_CLUMPED (0xF0) /* -------- 1111---- */
- #define IS_DEC_OR_GRP (0x30) /* -------- --11---- */
- #define IS_MTF_OR_GRP (0x50) /* -------- -1-1---- */
- #define IS_ORN_OR_DEC (0xA0) /* -------- 1-1----- */
- #define ORN_DEC_OR_TIMED (0x2A0)/* ------1- 1-1----- */
- #define IS_ORNDEC_OR_MTF (0xE0) /* -------- 111----- */
- #define IS_ORN_OR_MTF (0xC0) /* -------- 11------ */
- extern int texflag; /* bitflag for type of texture */
- #define MAXNAMECNT (9)
- /* AMPLITUDE TYPES SPECIFIED BY USER */
- #define IS_MIXED (0)
- #define IS_CRESC (1)
- #define IS_FLAT (2)
- #define IS_DECRESC (3)
- #define IS_FLAT_AND_CRESC (4)
- #define IS_CRESC_AND_DECRESC (5)
- #define IS_FLAT_AND_DECRESC (6)
- #define IS_DIRECTIONAL (7)
- #define IS_DIREC_OR_FLAT (8)
- /* AMPLITUDE TYPES RETURNED FROM GETAMPTYPE */
- #define FLAT (0)
- #define CRESC (1)
- #define DECRESC (2)
- #define IS_STILL (0)
- #define IS_SCATTER (1)
- #define IS_INWARD (2)
- #define IS_OUTWARD (3)
- #define IS_FOLLOWING (4)
- #define IS_CONTRARY (5)
- #define IS_DIRECTED(x) ((x)==IS_FOLLOWING || (x)==IS_CONTRARY)
- /* INTERNAL FLAGS */
- #define INTERNAL_FLAGS_CNT (2) /* COUNT OF FLAGS BELOW */
- #define IS_PRE (7) /* flags decorations precede decd notes (default) POST */
- #define DECCENTRE (8) /* flags decorations etc are centred on tset-pitch */
- #define PERMCNT (17) /* number of permutation options, see texture0.h */
- /* For more readable code WHICH_CHORDNOTE */
- /* Externally (to user) FORCEHI flag selects HIGH (as against FIRST) note */
- /* Internally that flag can have 3 vals (FIRST,HIGHEST,EVERY..NOTE) */
- /* So the NEW, more informative, name is used internally */
- /******* GLOBAL VALUES ****/
- #define MIDITOP (127.0) /* Maximum pitch midi note */
- #define MIDIBOT (1.0) /* Minimum pitch midi note */
- #define BANDCNT (5) /* no.of range-bands each param divided into, for randperms */
- #define LAYERCNT (8) /* for weighted bands, there are 8 equal layers
- band 1 = layer 1:
- band 2 = layers 2 & 3:
- band 3 = layers 4 & 5:
- band 4 = layers 6 & 7:
- band 5 = layer 8:
- */
- #define LOW_A (6.875) /* Frequency of A below MIDI 0 */
- /* HOW DECORATION PITCHES CENTRE ON DECORATED LINE PITCHES */
- #define DEC_CENTRED (0)
- #define DEC_ABOVE (1)
- #define DEC_BELOW (2)
- #define DEC_C_A (3)
- #define DEC_C_B (4)
- #define DEC_A_B (5)
- #define DEC_C_A_B (6)
- #define TEXTURE_MAX_SKIP (100.0)
- #define TEXTURE_MAX_TGRID (10000.0)
- #define TEXTURE_MAX_PHGRID (1000.0)
|