| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249 |
- /*
- * 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
- *
- */
- #include <columns.h>
- void helpm(void),helpM(void),helpg(void),helpr(void),helpl(void),help(void);
- /********************************** HELPM **********************************/
- void helpm(void)
- {
- fprintf(stderr,
- " ------------------------ MATHEMATICAL OPERATIONS ---------------------------\n"
- "| g find Greatest | i find Intervals (MIDI) |\n"
- "| l find Least | im@ Multiply Intervals by @ |\n"
- "| t find Total | ia@ Add @ to Intervals |\n"
- "| p find Product | ra RAtios btwn succesive values |\n"
- "| M find Mean | iv generate Intermediate Values |\n"
- "| R[@] find Reciprocals (1/N) (<|>) | iL@ Limit Intervals to < max @ |\n"
- "| with @, find @/N | il@ Limit Intervals to > min @ |\n"
- "| a@ Add @ (<|>) | |\n"
- "| m@ Multiply by @ (<|>) | Ra@ Add Random value between +-@ |\n"
- "| d@ Divide by @ (<|>) | RA@ Add Random value between 0 & @ |\n"
- "| P@ +ve values to Power @ (<|>) | Rm@ Multiply by Randval between 0-@ |\n"
- "| | Rs@ Random Scatter[@=0-1] ascending |\n"
- "|(<|>) means these can apply to vals | vals over intervals between vals |\n"
- "| < or > threshold on command-line. | |\n"
- "| | s[@] Stack values from 0 (overlap @) |\n"
- "| A@ Approximate to multiplies of @ | sl@ Change Slope by factor @ |\n"
- "| fl@ ensure all vals >= floor-val @ | sd[@] Sum abs Differences (zigzag) |\n"
- "| li@ ensure all vals <= limit-val @ | (@=overlap e.g.splicelen) |\n"
- "| | so@ Sum, minus Overlaps |\n"
- "| THRESHOLD VALUE IS INDICATED BY an | @=overlap (e.g.splicelen) |\n"
- "| extra parameter on command line.. | sn@ Sum N-wise. N = @ |\n"
- "| e.g. {3 means <3 ; }7 means >7 | |\n"
- " -------------------- FOR FURTHER HELP TRY -l -M -g -R ----------------------\n");
- exit(1);
- }
- /************************************ HELPL ***********************************/
- void helpl(void)
- {
- fprintf(stderr,
- " ------------------------ LIST REORDER OR EDIT --------------------------\n"
- "| c Count vals (<||>threshold) | e@ Eliminate value @ (+-error) |\n"
- "| mg@ Mark values > @ | eg@ Eliminate vals Greater than @ |\n"
- "| ml@ Mark values < @ | el@ Eliminate vals Less than @ |\n"
- "| cl Count lines | ed@ Eliminate Duplicates |\n"
- "| o Order list | within range @ |\n"
- "| rr Reverse list | ee Eliminate Even items |\n"
- "| Ro[@] Randomise Order (X@) | Re@ Eliminate @ items at Random |\n"
- "| dl@ Duplicate List @ times | bg@ Vals > @ reduced to Bound @ |\n"
- "| dv@ Duplicate each Val @ times | bl@ Vals < @ raised to Bound @ |\n"
- "| | N@ partitioN to @ files,in blocks |\n"
- "| sk@ get 1 value & SKip @ | Nr@ partitioN to @ fils,in rotation|\n"
- "| sK@ get @ values, SKip 1 | C Concatenate files |\n"
- "| cc columnate | |\n");
- fprintf(stderr,
- "| As Alphabetic Sort | S@ Separate @ columns to @ files |\n"
- "| F@ Format vals in @ cols | J Join as columns in 1 file |\n"
- "| s[@] Stack values from 0 | I Interleave: columns->list |\n"
- "| (overlap @) | E[@] vals End to End in 2 columns |\n"
- "| Mr[@] Avoid midi-pitch-class | (@ = column2 overshoot of |\n"
- "| repetition (within @ notes)| next value in column 1) |\n"
- "| fr[@] Avoid frq-pitch-class | v[@] rank by VOTE: ie. by no. of |\n"
- "| repetition (within @ notes)| times each number(+-@) occurs |\n"
- "| ir@ Repeat Intervals @ times | V@ rank frqs by VOTE |\n"
- "| starting from last entry | @ = semitone range for equalfrq|\n"
- "| F@ format in @ columns | G@ reGROUP: take every @th item |\n"
- "| | from 0, then ditto from 1 etc. |\n"
- "| THRESHOLD IS EXTRA PARAM ON CMDLINE... E.G. {3 MEANS <3 ; }7 MEANS >7 |\n"
- " ------------------ FOR FURTHER HELP TRY -m -M -g -R --------------------\n");
- exit(1);
- }
- /*********************************** HELPM ***********************************/
- void helpM(void)
- {
- fprintf(stderr,
- " ---------------------------- MUSICAL OPERATIONS ----------------------------\n"
- "| Mh MIDI to Hz | sd[@] Sum abs Differences (zigzag) |\n"
- "| Mt MIDI to Text | (@=overlap e.g. splicelen) |\n"
- "| hM hz to MIDI | sl@ Change slope by factor @ |\n"
- "| tM Text to MIDI | so@ Sum, minus Overlaps: @=overlap |\n"
- "| th Text to Hz | (e.g.splicelen) |\n"
- "| | Mm@ Major->Minor,(MIDI) @ = key |\n"
- "| q@ Quantise over @ | mM@ Minor->Major,(MIDI) @ = key |\n"
- "| i get Intervals (e.g. MIDI) | TM[@] Temper MIDI data. (With @, to a |\n"
- "| Ir Interval(semitones)-> frqratio| @-note equal-tempered scale |\n"
- "| ra RAtios between succesive vals | based on concert-C) |\n"
- "| iM motivically-Invert MIDI | Th[@] Temper Hz data. (With @, to a |\n"
- "| ih motivically-Invert Hz | @-note equal-tempered scale |\n"
- "| rm@ motivically-ROtate by @ | based on concert-C) |\n");
- fprintf(stderr,
- "| B plain Bob : 8 bells | do@ Duplicate vals at @ Octaves |\n"
- "| At@ Accel Time-seq from event- | (MIDI) |\n"
- "| -separation val1 in file | dO@ Duplicate vals at @ Octaves |\n"
- "| to val2 in file, total dur @ | (FREQUENCIES) |\n"
- "| (optional: starttime val3) | Mr[@] Avoid midi-pitchclass repeats |\n"
- "| Tc@ times from crotchet count | (within @ notes) |\n"
- "| in file, and tempo @ | fr[@] Avoid frq-pitchclass repeats |\n"
- "| Tl@ Times from crotchet lengths | (within @ notes) |\n"
- "| H@ Generate @ Harmonics | V@ rank frqs by VOTE |\n"
- "| Hr@ Generate @ Subharmonics | (no. of occcurences) |\n"
- "| Hg[@] Group frqs as Harmonics: | @ = semitone range within which |\n"
- "| @=tuning tolerance (semitones)| frqs judged to be equivalent |\n"
- "| (default .01) | td@ Take set of snd-durations and |\n"
- "| Ad@ Accel Durations from val1 to | produce list of start-times, to |\n"
- "| val2 in file, with total dur @| give density of @ snds always. |\n"
- "| DB convert dB levels to gain vals| st@ sample to time (@ = srate) |\n"
- "| db convert gain levels to dB | |\n"
- " -------------------- FOR FURTHER HELP TRY -m -l -g -R ----------------------\n");
- exit(1);
- }
- /**************************************** HELPG *****************************/
- void helpg(void)
- {
- fprintf(stderr,"%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
- " -------------------------- GENERATIVE OPERATIONS --------------------------\n",
- "| Rg Generate Random 0s & 1s | |\n",
- "| (number of items, in infile) | ic@ Create @ Intervals, size of |\n",
- "| Rv@ generate @ Random Values | (1) value in file |\n",
- "| (maxmin values in infile) | i=@ Equal Intervals of @ between |\n",
- "| Rc@ Chop @ to Randomsize chunks | 2 values in file |\n",
- "| (maxmin chunklens in infile) | D@ @ equal Divisions between |\n",
- "| | 2 values in file |\n",
- "| iv gen Intermediate Values | L@ @ Log-equal divisions between |\n",
- "| | 2 +ve values in file |\n",
- "| dv@ Duplicate each Val @ times | Q@ @ Quadratic-curve steps btwn |\n",
- "| dl@ Duplicate List @ times | 2 vals in file, where val3 is |\n",
- "| ir@ Repeat Intervals @ times, | curvature(>0): <1 down: >1 up |\n",
- "| starting from last entry | |\n",
- "| | |\n",
- "| At@ Accel Time-seq from event- | B plain Bob : 8 bells |\n",
- "| -separation val1 in file, to | |\n",
- "| val2 in file, total dur @ | |\n",
- "| (optional: starttime val3) | |\n",
- "| | |\n",
- "| Ad@ Accel Durations from val1 to | |\n",
- "| val2 in file, in total dur @ | |\n",
- " ------------------- FOR FURTHER HELP TRY -m -M -l -R ---------------------\n");
- exit(1);
- }
- /********************************** HELPR ***********************************/
- void helpr(void)
- {
- fprintf(stderr,"%s%s%s%s%s%s%s%s%s%s%s%s",
- " ---------------------------- RANDOM OPERATIONS ---------------------------\n",
- "| | |\n",
- "| Ro[@] Randomise Order | Rc@ Chop @ to Randchunks |\n",
- "| (& again, @ times) | (maxmin chunklens in infile) |\n",
- "| | Rg Generate random 0s & 1s |\n",
- "| Ra@ Add Randval between +-@ | (number of items, in infile) |\n",
- "| RA@ Add Randval between 0 & @ | Rv@ Gen @ random Values |\n",
- "| Rm@ Multiply by Randval btwn 0-@ | (maxmin vals in infile) |\n",
- "| Rs@ Scatter[@=0-1] ascending vals | |\n",
- "| over intervals between vals | Re@ Eliminate @ items at Random |\n",
- "| | |\n",
- " -------------------- FOR FURTHER HELP TRY -m -M -l -g --------------------\n");
- exit(1);
- }
- /******************************* HELP *******************************/
- void help(void)
- {
- fprintf(stderr,
- "a@ .... Add @ l ..... find LEAST\n"
- "A@ .... Approx to multiples of @ li@ ....LIMIT values to <=@\n"
- "At@ ... ACCELERATING TIME-seq M ..... find MEAN\n"
- "Ad@ ... ACCELERATING DURATIONS m@ .... MULTIPLY by @\n"
- "As .... ALPHABETIC SORT mg@ ... MARK values > @\n"
- "B ..... plain BOB (bell-ringing) Mr[@].. MIDI-pitchclass-REPETS avoided.\n"
- "bg@ ... Vals >@ reduced to BOUND @ Mh .... MIDI to HZ\n"
- "bl@ ... Vals <@ increased to BOUND @ ml@ ... MARK values < @\n"
- "C ..... CONCATENATE Mm@ ... MAJOR->MINOR (MIDI) in key @\n"
- "c ..... COUNT vals cc...COLUMNATE Mt .... MIDI to TEXT\n"
- "cl .... COUNT LINES mM@ ... MINOR->MAJOR (MIDI) in key @\n"
- "D@ .... @ equal DIVISIONS btwn 2 vals N@ .... partitioN -> @ files, in blocks\n"
- "DB .... DB values to gain vals Nr@ ....partN-> @ files, in rotation\n"
- "d@ .... DIVIDE by @ o ..... ORDER list\n"
- "db .... gain vals to DB values P@ .... +ve vals raised to POWER\n"
- "dl@ ... DUPLICATE LIST @ times p ..... find PRODUCT\n"
- "do@ ... DUPL LIST at @ OCTAVES (MIDI) Q@ ..@ QUADRATIC-curve steps btwn vals.\n"
- "dO@ ... DUPL LIST at @ OCTAVES (FRQS) q@ .... QUANTISE over @\n"
- "dv@ ... DUPLICATE each VALUE @ times R[@]... find RECIPROCALS\n"
- "E[@] .. vals END to END in 2 cols RA@ ... RANDVAL ADDED\n"
- "e@ .... ELIMINATE value Ra@ ... RANDVAL +- ADDED\n"
- "ed@ ... ELIMINATE DUPLICATES ra .... RATIOS betwn vals\n"
- "ee .... ELIMINATE EVEN items Rc@ ... cut @ into RANDOM CHUNKS\n"
- "eg@ ... ELIMINATE vals > @ Re@ ... RANDOMLY ELIMINATE items\n"
- "el@ ... ELIMINATE vals < @ Rg ... RANDOM GEN of 0s & 1s\n"
- "fr[@].. FRQ pitchclass REPETS avoided Rm@ ... MULTIPLY by RAND\n"
- "F@ .... FORMAT in @ columns rm@ ... motivic-ROTATE\n"
- "fl@ ... FLOOR vals to >=@ Ro[@].. RANDOMISE ORDER\n"
- "g ..... find GREATEST rr..... REVERSE list\n"
- "G@ .... GROUP @th items, cyclically Rs@ ... RANDOM SCATTER vals\n");
- fprintf(stderr,
- "hM .... HZ to MIDI Rv@ ... generate RAND VALS\n"
- "H@ .... Generate HARMONICS S@ .....SEPARATE cols->files\n"
- "Hr@ ... Gen HARMONIC ROOTS (subharms) s[@] .. STACK vals from 0\n"
- "Hg[@].. GROUP freqs as HARMONICS. sd[@]...SUM abs DIFFERENCES\n"
- "I ..... INTERLEAVE sK@ ... get @ vals,SKIP 1\n"
- "Ir .... INTERVAL(semitones)->frqRATIO sk@ ... get 1 val, SKIP @\n"
- "i ..... get INTERVALS sl@ ... change slope by factor @\n"
- "i=@ ... create EQUAL INTVLS of @ sn@ ... SUM N-WISE. N = @\n"
- "ia@ ... ADD @ to INTERVALS so@ ... SUM,minus OVERLAPS\n"
- "ic@ ... CREATE @ INTERVALS st@ ... SAMPLE-CNT to TIME\n"
- "ih .... motiv-INVERT HZ t ..... find TOTAL\n"
- "iL@ ....LIMIT INTERVALS to < max @ Tc@ ... TEMPO with beatCOUNT ->time\n"
- "il@ ....LIMIT INTERVALS to > min @ td@ ... Time density in @ layers.\n"
- "iM .... motiv-INVERT:MIDI Th[@].. TEMPER HZ data\n"
- "im@ ... INTERVALS, MULTIPLIED th .... TEXT to HZ\n"
- "ir@ ... INTERVS, REPEATED Tl@ ... TEMPO & beatLENGTHS ->time\n"
- "iv .... INTERMEDIATE VALS TM[@].. TEMPER MIDI data\n"
- "J ..... JOIN as columns tM .... TEXT to MIDI\n"
- "L@ .... LOG-equal divisions v[@] .. rank by VOTE(no of times occurs)\n"
- " V@ ..rank frqs by VOTE(@-semitone steps)\n");
- exit(1);
- }
|