Processing #4 comments, questions, ...
Started 99/04/27

0427
Embryonale versie met meer commentaar en een eerste poging om midi INPUT te doen IN Kristof.Bas


IN konstant.bi moet %ID_KL_PROCESS4 ingeschreven worden !!

ingeschreven IN gmt.rc:
   ID_KL_PROCESSING4,    "<Processing #4> by Kristof Lauwers"   (r139)
   MENUITEM "Processing #4...",                      ID_KL_PROCESSING4   (r202)

Compileren van gmt.rc lukt niet;  vraag gemaild naar Godfried - 0503 niet aangekomen
Gmt_stud is (voorlopig) zo aangepast dat IN the works nu naar processing#4 verwijst

0502
Process4.inc bevat type Pro4 - een .bi file werkte hier niet >?? waar ligt het verschil ?
Task engine moet later de precieze frequentie sturen - voorlopig leeg

0503
Sine1/2 zetten nu alleen nog noten aan / af zoals engine het opgeeft
Engine laat de frequenties varieren
de berekening van FreqChange moet aangepastw., zodat de frequenties binnen een bepaald bereik blijven (nu stijgen ze voortdurend!)
                                                                                                         > solved by giving other startfreq
0504
taak harmonic maakt een file c:\kristof\harmonic.txt, die de eerste 1000 tonen van de boventoonreekse op midi noot 21 geeft (als MidiCentNote)
(heeft voor de rest niets te maken met processing #4 - just FOR fun)

0510
CN2F! = IN harmlib NF2F% >> aanpassen !!
Done

0518
Engine geeft nu alleen een nieuwe noot als de vorige gespeeld is geweest (Pro4.NoteToPutOn(task)=0)

0519
FUNCTION GetFChange (i%,j%) geeft de verandering van Pro4.Freq(i%) die voortkomt uit de relatie met j%
   >> optellen voor verschillende j%'s
   j%,i% geeft de tegengestelde waarde
   !!nog verder te debuggen : DoesItWhatItHasToDo?,
   !! stabliiseert te vlug
   >>Volgende kode kon nu gewist worden (uit engine):
      '      IF Pro4.Freq(16) < Pro4.Freq(17) THEN
      '         Pro4.FreqChange(16) =- Pro4.FreqChange(tasknr) '+ Pro4.FreqChange(16)
      '         Pro4.FreqChange(17) =   Pro4.FreqChange(tasknr) '+ Pro4.FreqChange(17)
      '      ELSE
      '         Pro4.FreqChange(16) =   Pro4.FreqChange(tasknr) '+ Pro4.FreqChange(16)
      '         Pro4.FreqChange(17) = -Pro4.FreqChange(tasknr) '+ Pro4.FreqChange(17)
      '      END IF

      '      Pro4.Dif(16,17) = ABS(Pro4.Freq(16) - Pro4.Freq(17))    'verschil tss. 16&17 - w.n. gespeeld
      '      Pro4.Dif(16,18) = ABS(Pro4.Freq(16) - Pro4.Freq(18))
      '      Pro4.Dif(17,18) = ABS(Pro4.Freq(17) - Pro4.Freq(18))


Pro4.Klap > omklappen van negatieve deel van ^2-curve gebruikt bij GetFChange
   Laten veranderen tijdens het stuk



0521
P_engine = vroegere engine >> berekent pitches
R_engine : nieuw; berekent Task().Frq voor sine 1 - 3  << verschil v/d 2 somfreq waar een stem invloed op heeft
            berekent alleen nieuwe freq als e stem pas e noot heeft gespeeld
            zet bij de start alle andere taken aan
          >> werkt, maar alle stemmen gaan naar 1 v/d uitersten en blijven daar

0525
Debugroutine gemaakt(doet 32000 cycles aan 110 cycles/s; schrijft 3 bestanden:Taskfrequency's, notefrequency's, and notefrequencychange's
!! conclusie : notefrequency's zijn gestabiliseerd in cycle 13881
               taskfrequency's   "      "           "   "   10591
 >>destabiliseren  <<?? afhankelijk van input??
opm. de debugroutine zet R_engine (en dus ook alle andere taken) aan

!! engine and debug task-frequency's should be made more efficient ( = just enough, not to much)

0526
A_engine moet attack veranderen - dummy om uit te proberen
Sysx om attack te veranderen werkt niet

0527
geen sysx nodig , maar ModeMess >> controller instellen IN synth (master en edit-menu)
A_engine ingevuld
   <<task.freq
   gebruikt functies MaxAtt en MinAtt hiervoor

   lijkt toch nog niet te werken !! Debuggen !!
   opm. INSERT attack IN debugger IN stead OF realtim outprint
           >> zie 0707

0601
attack IN debugger >> crasht altijd

oplossing (i/d les)
'windowscode voor file open
                                  [? var}
  filehandle = OpenFile ([naam$], buffer, %OF_PROMPT OR %OF_EXIST)
                                      ' OpenFile() Flags

mogelijke constanten: uit winapi32.inc
%OF_READ                                     = &H0
%OF_WRITE                                    = &H1
%OF_READWRITE                                = &H2
%OF_SHARE_COMPAT                             = &H0
%OF_SHARE_EXCLUSIVE                          = &H10
%OF_SHARE_DENY_WRITE                         = &H20
%OF_SHARE_DENY_READ                          = &H30
%OF_SHARE_DENY_NONE                          = &H40
%OF_PARSE                                    = &H100
%OF_DELETE                                   = &H200
%OF_VERIFY                                   = &H400
%OF_CANCEL                                   = &H800
%OF_CREATE                                   = &H1000
%OF_PROMPT                                   = &H2000
%OF_EXIST                                    = &H4000
%OF_REOPEN                                   = &H8000


0602
Werkt nog niet;  welk filenr gebruiken >> gemaild naar Godfried
!!! Kristof.bas now available for experimental code (cfr startmenu)

0807
debugger verbeterd:
op shop werkt file I/O wel
om de 1000 counter op scherm

alleen task 16 - 18 zijn gedeclareerd als miditaak

Attack werkt: modulation IN Proteus is modulation op ingestelde attack
> als die 0 is heeft modulation geen zin.

met huidige synth instellingen : grotere val. vr attack = scherper

0907
debugging results:
16 stabiliseert eerst, dan 17
18 verandert nog lichtjes rond cycle 3200
alleen 18 verandert van attack  >> differentiatie van stemmen is niet slecht
                                   but how does it come ??
18 heeft op einde kleinste freqchange !!!!!!!!    >>> answer Task.freq w. 18
                                                      voor rest : w. .3

sub Inf heeft invloed op Pro4.Freq, afh. van input   (voorlopig dummy)
gebruikt fct GetInf
Resultaat : uiteindelijk wordt freq te groot >> CRASH

EOF