Csound Csound-dev Csound-tekno Search About

new language proposal

Date1998-02-16 14:20
FromDavid Schuyeteneer
Subjectnew language proposal
A new sound language should be invented with syntax like this :

I honestly have to admit that inspiration comes from "POVRAY", wich can be
considered
as the visual equivalent of Csound...It is a raytracer that describes a 3D
scene the same way
Csound does with sound.

I think Csound lacks in clarity and structure. Disadvantages of Csound
structure :
-needs everything to be completed on one line
-absence of parentheses,brackets,vector-style modifications
-opcodes are too short abrieviated...
- blah-blah..
- blah...
- bl..
- b..
- ..
- ?


#include "fx.inc"  // includes fx.inc file wich contains several reverb and
chorus modules
#insert "stereo_441.hdr" //inserts ascii content of file "stereo_441.hdr"

#declare My_LFO  
lfo { sine<5,1>}
##declare

#declare My_Random_LFO
lfo { rnd {
              uniform   // "uniform" and "interpolation are keywords (see
manual for details)
              interpolation
              frequency <5> /* anything between "<" and ">" are interpreted
as vectors
                                       (see manual for the vector
dimensions) */
             }//rnd block
      }
##declare

#declare My_Beep
sound {   sine  {
                         amplitude 10000
                         basefreq  100
                         harmon 1, 0.5
                         harmon 2, 2
                        }
              
               amplitude {     // modifies sine{} amplitude
                                overall {
                                    attack   0.1
                                    decay    0.1
                                    sustain   2
                                    release   0.1
                                          } //overall

                            harmon { <1>  My_LFO }  // My_LFO controls
harmonic 1
                            
                           harmon { <2>	
                                        My_Random_LFO * 1.5    
//My_Random_LFO for harmonic 2
			   }	
                              
                               } // amplitude block
                                          
              frequency {
                             
                            harmon { <1> sine <20,5> }  //sine

                              } // frequency block
                 }// sound block
##declare

output {
 My_Beep {  start 0
                   duration 7
                   stereo <0.3,0.7>   // 30% left channel, 70% right
channel
                }   
          }
My_Beep { start 7
                 duration 7
                  stereo { pan{sine<1,2>}}
                }
}output block


                                             

OR we could invent a language wich only works on massive parallel
processing Supercomputers.
This kind of language could be of a ultra high level like :

#include "amplitud.inc" 
//this includes different amplitude sets for symphonies

sound 1{ 
            symphony {   // generate a complete symphony with 300
instruments
                              instruments 300
                              style 1    ( beethoven 0.1)  // 10% of
beethoven style
                              style 2    ( bach 0.9)         //  90% of
Bach style
                            }                                
            morph { 
                          style<1,2>  //morph from style 1 to style 2
                          melodic 0.3  // 30% morphing of melody
                          rythm    0.7  /* 70% morphing of rythm, so here
the morph will be more clear
                                                on the rythm */
                          time duration/2 //morph will be complete in
duration/2 seconds
                        }
}

output { 1
            amplitude Standard_Symphony  
            start 0
            duration 3600 //1-hour symphony
          }

// ---------------- end of symphony.mus -----------------------------------
     
                           



David.