Csound Csound-dev Csound-tekno Search About

Re: [Re: [Re: Reading a MIDI (AKA Driving me bonkers)]]

Date1999-04-22 07:51
FromSergey Batov
SubjectRe: [Re: [Re: Reading a MIDI (AKA Driving me bonkers)]]
Hi,

I think the DX7 emulating orcs request "direct" definition of duration (p3)

in sco. Working with midi (-file) is in a "real-time style", so it is
impossible to send to 
instrument duration of current note in the moment of its starting.
Your opinion?

Regards,
Sergey Batov   batov@glasnet.ru

----------
> Îò: Robert Junior Mcnulty 
> Êîìó: Sergey Batov 
> Êîïèÿ: csound@maths.ex.ac.uk
> Òåìà: Re: [Re: [Re: Reading a MIDI (AKA Driving me bonkers)]]
> Äàòà: 21 àïðåëÿ 1999 ã. 23:52
> 
> 
> 
> 
> 
> Sergey, I see what you you are talking about. P3 is duration. How would
you define it in this situation?
> Any comments are allowed here..
> 
> "Sergey Batov"  wrote:
> Robert, may be I'm wrong but seems p3 undefined in your orc.
> 
> Regards,
> Sergey Batov   batov@glasnet.ru
> 
> ----------
> Îò: Robert Junior Mcnulty 
> Êîìó: Kevin Gallagher 
> Êîïèÿ: csound@maths.ex.ac.uk
> Òåìà: Re: [Re: Reading a MIDI (AKA Driving me bonkers)]
> Äàòà: 21 àïðåëÿ 1999 ã. 0:27
> 
> Now the problem is reading the file itself.
> Here, in attachments, are the files I'm using.
> I had that problem solved about twenty minutes after posting that
message.
> Could you see what I did wrong?
> It basically does not read MIDI events.
> It's supposed to be in format 0. I'm not readlly sure which format it in.
> (The Midi File)
> Any way, its part of a song I will finish after I get the ideas for the
> basic
> WAV file down packed.
> 
> I looked in the Orcs And Scores sample pack, and got parts of the file
from
> there. Instruments 2 and 99 should not be there, so you can erase them.
> 
> I cant solve this one because the reference manual is unclear.
> The tutorial does not conver it, and quite frankly, I don't know how to
> read
> MIDI events from the MIDI file.
> See if you can get it to work, then send it back, OK? Thanks.
> 
> ____________________________________________________________________
> Get free e-mail and a permanent address at http://www.netaddress.com/?N=1
> ;ORC
>
strings.orc=================================================================

> =========;
> ;                Schottstaedt FM String Instrument from Dodge            

> ;
> ;                                                                        

> ;
> ;p4 = amp p5 = pch p6 = rise p7 = dec p8 = vibdel p9 = vibwth p10 =
vibrte
> ;
>
;==========================================================================;

> 
>         sr      =       22000
>         kr      =       1100
>         ksmps   =       20
>         nchnls  =       1
> 
>                 instr   1
>         icps             cpsmidi
> 
>         iamp            ampmidi 512, 1
> 
>         ifm1    =       icps
>         ifm2    =       icps*3
>         ifm3    =       icps*4
>         indx1   =       7.5/log(icps)    ;range from ca 2 to 1
>         indx2   =       15/sqrt(icps)    ;range from ca 2.6 to .5
>         indx3   =       1.25/sqrt(icps)  ;range from ca .2 to .038
>         kvib    init    0                
> 
>                 timout  0,.75,transient  ;delays vibrato for p8 seconds
>         kvbctl  linen   1,.5,p3-.75,.1   ;vibrato control envelope
>         krnd    randi   .0075,15        ;random deviation in vib width   
 
>   
>         kvib    oscili  kvbctl*.03+krnd,5.5*kvbctl,1 ;vibrato generator
>         
> transient:
>         timout  .2,p3,continue          ;execute for .2 secs only
>         ktrans  linseg  1,.2,0,1,0      ;transient envelope 
>         anoise  randi   ktrans,.2*icps   ;noise... 
>         attack  oscil   anoise,2000,1   ;...centered around 2kHz
> 
> continue:      
>         amod1   oscili  ifm1*(indx1+ktrans),ifm1,1
>         amod2   oscili  ifm2*(indx2+ktrans),ifm2,1
>         amod3   oscili  ifm3*(indx3+ktrans),ifm3,1
>         asig    oscili  iamp,(icps+amod1+amod2+amod3)*(1+kvib),1
>         asig    linen   asig+attack,.2,p3,.2
>                 out     asig             
>         
>             endin
>  instr 2
>         knote   cpsmidib
>         iveloc  ampmidi 1
>         kgate   linenr  iveloc/2, 0, .2, .01
>  
>         kva     line    0, 3, .02
>         kv      oscil   knote*kva, 4, 3
> 
>         kf      linseg  2200, 1.5, 1200, .5, 880, 5, 440
>  
>         k1      linseg  8000, .5, 8000, 5, 2000
>         k2      line    700, .5, 700
>  
>         a5      oscil   k2, knote, 3
>         a6      oscil   k2, knote*1.499, 3
> 
>         a1      oscil   k1, knote*2.001 + a5 + kv, 3
>         a2      oscil   k1, knote*1.502 + a6 + kv, 3
>         a2      butterlp        a2 + a1, kf
> 
>                out         a2 * kgate
> 
>        
>                endin
> instr 99 ;allows complex ADSR envelope with MIDI events
> inum notnum
> icps cpsmidi
> iamp ampmidi 4000
> ;
> ;------- complex envelope block ------
> xtratim 1 ;extra-time, i.e. release dur
> krel init 0
> krel release ;outputs release-stage flag (0 or 1 values)
> if (krel = .5) kgoto rel ;if in release-stage goto release section
> ;
> ;************ attack and sustain section ***********
> kmp1 linseg 0, .03, 1, .05, 1, .07, 0, .08, .5, 4, 1, 50, 1
> kmp = kmp1*iamp
> kgoto done
> ;
> ;--------- release section --------
> rel:
> kmp2 linseg 1, .3, .2, .7, 0
> kmp = kmp1*kmp2*iamp
> done:
> ;------
> a1 oscili kmp, icps, 1
> out a1
> endin; Test Score for Schottstaedt String
> f1     0       512     10      1
> e
> ----------
> 
> 
> ____________________________________________________________________
> Get free e-mail and a permanent address at http://www.netaddress.com/?N=1