[<<][axoloti][>>][..]
Tue Jan 14 21:28:41 CET 2014

Notes

- maak alle C functies static inline in .h, en #include in patch
  ipv. link als library.  compiler zal dan beslissen of ie gaat
  inlinen of niet.

  gebruik een macro voor het "static inline" deel zoals
  #ifndef AXO_INL
  #define AXO_INL static inline
  #endif

  dan kan je de dspstuff.h later nog omzetten naar een dspstuff.c voor
  aparte compilatie indien nodig:

  file dspstuff.c:

  #define AXO_INL  // turn off "static inline"
  #include "dspstuff.h"

- static inline functes ipv macros waar mogelijk: MTOF, SINE2TINTERP,
  HANNING2TINTERP.  seriously, nu is het moment!  je verliest hierbij
  geen efficientie, en de code wordt een hoop meer leesbaar als er
  geen macros in staan.
  i.e. ik lees veel liever

  mtof(a,&b) dan MTOF(a,b)

  dit lijkt onbelangrijk, maar in de tweede kan ik niet zien wat er
  gebeurt.  in de eerste weet ik dat "a" niet overschreven wordt, en
  "b" waarschijnlijk wel.  als b een locale variable is worden de & en
  * operaties gewoon weggeoptimaliseerd na inlining.


- de "html in C code" is eigenlijk niet zo erg als je had laten
  uitschijnen.  zolang je "functionality" scheidt van "binding".  ik
  bedoel: maak voor elk .xml object een C functie, en gebruik de xml
  enkel voor connectiviteit tussen (inline) C functies.  je doet dit
  al in grote mate.

  ik weet dat je een hoop hebt geinvesteerd in de patcher, maar ik
  denk dat de bulk van signal processing routines uiteindelijk ook
  stand-alone hun nut gaan hebben.  best om die laag in je interface
  clean te houden.


- definieer al je state data als lokale variabelen in je main loop
  function, niet als globals.  dat geeft meer mogelijkheden tot
  optimalisatie.






[Reply][About]
[<<][axoloti][>>][..]