Thursday, July 23, 2009

Work Progress - Jul 27 to Jul 31

Synthesizer tool - Reference materials
* Java API for music: http://www.jfugue.org/
* Interval can be modelled with Duration: here [p.6]
* Instrument can be changed with I command: here [p.11]
* Model magnitude with frequency: here [p.27]
* Example usage: here
* Frequency of musical note: here
* Reference on drawing line with jogl: here

pCSDT Prototype




In the Synthesizer engine, one can specify the display mode of all the functions (a line showing the function continuously, or dots showing when the note is played - see above screenshots), the music mode (whether exact pitch is to be played, or nearest standard note instead), the tempo (overall speed of the music) and uniscale of the graphical display.

Polynomial (up to degree 4), rational (up to degree 4 for each of numerator and denominator) and exponential functions are the three component pObject implemented. One can specify the start time and end time of each function object separately, so piecewise function can be composed (See the red line in the above screenshot for an example). One can also customize the instrument used, the length of time the note is held (8th note, quarter note, etc), and the time interval between adjacent quarter note.

Musical notes are played on clicking the RUN button. The music can be stopped anytime on clicking the same button again.



The working prototype has been uploaded to the repository.

Tuesday, July 21, 2009

Work Progress - Jul 20 to Jul 24

* Complete LinearIteration and TriangleIteration
* Complete documentation of the RW code

Tuesday, July 14, 2009

Work Progress - Jul 13 to Jul 17

* Finish BoardPoly
* Commenting and documenting SB code
* Implement pCSDT version of Navajo rug weaver (CSDT version here). Source code of the pCSDT version developed so far is available in the repository here.
* Implemented: Line, Point, Rectangle, Triangle.



* User can change whether the pattern should be filled or not through RWEngine's Automatable property bFilled.



* To do next week: LinearIteration, TriangleIteration, documentation

Saturday, July 11, 2009

Work Progress - Jul 6 to Jul 10

  • BoardEngine now allows no Skateboarder defintion to run.
  • HitTest() of BoardPolyLine implemented.
  • SBGui.java now shows an example of BoardPolyLine.
  • Make all automatable properties in working PObject (BoardLine, BoardPolyLine and SkateBoarder) public to compile with recent pCSDT framework specification
  • Review critical tasks listed by Ron
    • ability to specify linear tracks
      [Can currently be done with BoardLine]

    • ability to specify curved tracks (using arc of circle, arc of spiral,polynomial function--math teachers seem to want a variety)
      [Curved surface is now approximated with series of rectangular blocks, as shown in the recent SBGui example. If we are to specify the curved tracks with functions, the task is then to wisely break down the curve into series of small rectangular blocks. P.S.: On working with the recent SBGui example, I find that the width of the fine pieces of rectangular blocks may be related to the size of skateboarder. More study on this part needs to be done.]
    • ability to place obstacles in the way.
      [If it is an rectangular obstacle, we may reuse the BoardLine - the BoardLine with suitable length and width can function as an obstacle. Do we need obstacle of other shapes?]
    • conditionals for obstacle avoidance (so it requires a sensing function that tells how close an object is to the SB character)
      [More details from you needed...]
    • behaviors for obstacle avoidance (apply impulse function for jumping,swerving, etc.)
      [More details from you needed...]

Wednesday, July 1, 2009

Work Progress - Jun 29 to Jul 3

  • Adapting to restructured repository
  • Done with BoardPolyline, which is a series of rectangular blocks with fixed width.
    • Reference: http://www.jbox2d.org/v2demos/ - the shape drawing example
    • [To do] For better delegation of jobs, should put jbox2d body creation into the respective classes.