- sdf.sys_alpha
- gl layers
- 12
- 11
- 10
- sdf.sys.txt txtSelect (blue)
- 9
- sdf.sys.txt txtCursor (red)
- 8
- sdf.sys.txt txtBuffer (green)
- 7
- 6
- 5
- 4
- 3
- 8spcase activeSpaces frames
- space3 in main view
- 2
- space2 in main view
- 8spaces point select frame
- 1
- 8spaces videoplanes
- space1 in main view
- 0
- patch structure
- sdf.sys_a51.maxpat
- a clock running at sample rate
- [jit.window sdf_ui ]
- button to go fullscreen, use Esc key to exit
- UI will render when DAC is on
- [p render] sequence
- erase the gl context
- send 'renderBang' across the system
- (order of receiving will be indeterminate, gl world layers are used to set Z ordering of elements)
- bang [jit.gl.render ] to draw on sdf_ui
- send 'renderBangPost' across the system
- [p interaction]
- inlet from [jit.window ] dumpout
- 'size' is reported at load and whenever going to or from fullscreen view; the dimensions are used to scale mouse interaction co-ordinates and, via sdf.sys.ui.js, sets the jsGlobal value 'pxScale'
- mouse, mouseidle and mouseidleout are processed to set the active states of the 8 spaces and to send /mouseBttn , /mouseOut , and /mousePoint messages to the active spaces.
- [key] object
- [sel 92] filters out the back-slash ( \ )
- the number of modifier keys held is found
- key_num and num_modifiers are packed in to a list
- list send to sdf.sys.txt as /keyin message
- [p spaces]
- receive from sdf.sys.txt those lines of text that are targeted at a space
- if target = 1-7, then route to that [sdf.sys.8space.unit ], else pass to [js sdf.sys.8spaces.planes.js]
- sdf.sys.8spaces.planes.js
- initialises a matrix for each space (1-7) at load
- 'clear' message used to setall cells of a (or all) matrix
- TO DO : add function anything() to catch errors
- sdf.sys.8space.unit
- this is a .maxpat abstraction and requires an arguement to set the space number (1-7)
- inside is message routing to handle input both from sdf.sys.txt are mouse interaction
- mouse interaction messages are recieved within the [sdf.sys.8space.ui_link ] abstraction, which also links the data matrix of this space to the user interface
- at system load the [poly~ ] object loads sdf.sys.nullpoly.maxpat
- this has only an inlet and an outlet
- sdf.sys.txt commands are used to load another unit-type patch
- when another unit-type is loaded the behaviour / internal routing is setup appropriately
- [p txt]
- in the parent patcher, it has to its inlet [sdf.sys.8space.ui_link 0] to link its data matrix to the ui
- this is 'space zero' and different to spaces 1-7:
- active state is binay: on or off, whereas the other spaces have 3 states (on, visible, off)
- the data matrix is processed for display in [p txtBuffer_process_for_space0of8_view], rather than by the sdf.sys.8space.ui_link abstraction
- sdf.sys.txt is 'hard-wired' to this space and available at load, whereas the other spaces require that something be loaded into them
- inside, messages from the inlet are routed
- /activeState toggles the active state of sdf.sys.txt.js
- /mousePoint /mouseBttn and /mouseOut are used to set the position of the text input cursor
- [js sdf.sys.txt.js]
- creates the interface between qwerty key input and characters stroed in jitter matrices displayed on screen: in short, the text editor
- the other outlets are used to push the matrix into [jit.gl.text3d ] objects
- [p txtBuffer_process_for_space0of8_view]
- the text is stored as char data in a jittermatrix, on the main ui this is rendered via jit.gl.text3d; on the small 'spaces' view the data is shown in a more dierect/raw fashion
- the shape of words can be seen as each char appears as a fuzzy blob
- [p txt_line_reader]
- holding two modifiers (shift+alt works on mac) sends a bang to [p txt_line_reader] via outlet 3
- this bang causes the first line of text (the first row of the matrix) to be read and passed through the outlet to [p parse_txt] as a message
- if line is empty then the next line is triggered
- otherwise the next line is triggered by the recipient of the message
- [p parse_txt]
- messages are routed incorporating the 'thisis' system
- thisis geometric drawing system:
- based on thisis_2nn but mono chromatic (using the R layer of the RGB colour space used by jit.lcd
- to view the drawing, one of the spaces must be setup up with 'load lcd'
- syntax of thisis_1nn
- put
- at
- put pointA at -0.9 0.9
- puts named point near left-bottom corner
- on
- put pointC on pointA around pointB at -60 deg
- zero degrees is at the 3o'clock position
- where
- put pointA where pointB is
- redefine the location of a point to that of another point that has been put
- draw
- around
- draw pointA around pointB
- draw the circle which is the locus of 'pointA' moving around 'pointB' at fixed radius
- to
- draw pointA to pointB
- draw the line between the two named points
- .
- draw pointA .
- draws a filled circle centred at the named point with radius specified by 'set dotsize' command
- spiral
- this command is not in all versions
- set
- colour
- set color 1 255 0 255 128
- stores the RGBA value 225 0 225 128 in a coll with index 1
- dotsize
- set dotsize 5
- specify the radius used when drawing circles with the '.' command
- get
- howfar
- colour
- get colour 1
- recall indexed RGBA value from coll and set as lcd's frgb value
- lcd
- lcd clear
- the list of symbols following the keyword 'lcd' will be routed directly to the lcd object
- clearall
- clear all values; reset the system
- usually used as first line in a script (after heading comments)
- /*
- start multi-line comment
- must be first symbol on a new line and followed by white space
- */
- end multi-line comment
- must be first symbol on a new line and followed by white space
- //
- start single-line comment
- must be first symbol on a new line and followed by white space
- things which can go in spaces
- tildegraph_a
- attributes
- ipFreq
- m_name
- modFreq
- null
- offsetX
- offsetY
- phsrFreq
- radius
- slew
- attributes by type
- freq Hz
- grid units
- time ms
- text symbol
- about
- a phasor drives the cartesean (x,y) possitoning of a 'writing head' (jit.poke~) on a 2D plane via cosine and sine functions for the x and y axes.
- tje frst phasor
- polarpeek_a
- attributes
- angVelFreq
- m_name
- m_peekfrom
- null
- offsetX
- offsetY
- pGain
- radModOffset
- radModSize
- radiusModFreq
- slew
- attributes by type
- freq Hz
- grid units
- offsetX
- offsetY
- radModSize
- radModOffset
- time ms
- text symbol
- MSP coefficients
- some known bugs
- when the position sprite is dropped out of view and is re-pos'ed to the edge of the interface, the radius sprite is re-pos'ed to an incorrect distance
- for polarpeek, there is not handling for radial floaters going out of view...
- sdf.sys.8spaces.planes.js
- TO DO : add function anything() to catch errors
- list
- Externals and subpatcher files for sdf.sys_a51: patcher: buocoaHD:/Dropbox/2010-2011_phd/sdf.sys_alpha/activeSpacesRouter.maxpat/activeSpacesRouter.maxpat patcher: buocoaHD:/Dropbox/2010-2011_phd/sdf.sys_alpha/iterTxt.maxpat/iterTxt.maxpat patcher: buocoaHD:/Dropbox/2010-2011_phd/sdf.sys_alpha/sdf.sys.8space.ui_link.maxpat/sdf.sys.8space.ui_link.maxpat patcher: buocoaHD:/Dropbox/2010-2011_phd/sdf.sys_alpha/sdf.sys.8space.unit.maxpat/sdf.sys.8space.unit.maxpat patcher: buocoaHD:/Dropbox/2010-2011_phd/sdf.sys_alpha/sdf.sys.nullpoly.maxpat/sdf.sys.nullpoly.maxpat patcher: buocoaHD:/Dropbox/2010-2011_phd/sdf.sys_alpha/txtFile.maxpat/txtFile.maxpat !-: buocoaHD:/Applications/Max5/Cycling '74/max-externals/rminus.mxo !/: buocoaHD:/Applications/Max5/Cycling '74/max-externals/rdiv.mxo adstatus: buocoaHD:/Applications/Max5/Cycling '74/msp-externals/adstatus.mxo atoi: buocoaHD:/Applications/Max5/Cycling '74/max-externals/atoi.mxo button: buocoaHD:/Applications/Max5/Cycling '74/max-externals/button.mxo clip: buocoaHD:/Applications/Max5/Cycling '74/max-externals/clip.mxo coll: buocoaHD:/Applications/Max5/Cycling '74/max-externals/coll.mxo combine: buocoaHD:/Applications/Max5/Cycling '74/max-externals/combine.mxo comment: buocoaHD:/Applications/Max5/Cycling '74/max-externals/comment.mxo counter: buocoaHD:/Applications/Max5/Cycling '74/max-externals/counter.mxo count~: buocoaHD:/Applications/Max5/Cycling '74/msp-externals/count~.mxo deferlow: buocoaHD:/Applications/Max5/Cycling '74/max-externals/deferlow.mxo delay: buocoaHD:/Applications/Max5/Cycling '74/max-externals/delay.mxo ezdac~: buocoaHD:/Applications/Max5/Cycling '74/msp-externals/ezdac~.mxo filewatch: buocoaHD:/Applications/Max5/Cycling '74/max-externals/filewatch.mxo flonum: buocoaHD:/Applications/Max5/Cycling '74/max-externals/number.mxo forward: buocoaHD:/Applications/Max5/Cycling '74/max-externals/forward.mxo fromsymbol: buocoaHD:/Applications/Max5/Cycling '74/max-externals/fromsymbol.mxo in: buocoaHD:/Applications/Max5/Cycling '74/msp-externals/in.mxo incdec: buocoaHD:/Applications/Max5/Cycling '74/max-externals/incdec.mxo iter: buocoaHD:/Applications/Max5/Cycling '74/max-externals/iter.mxo itoa: buocoaHD:/Applications/Max5/Cycling '74/max-externals/itoa.mxo jit.fpsgui: buocoaHD:/Applications/Max5/Cycling '74/jitter-externals/jit.fpsgui.mxo jit.gl.gridshape: buocoaHD:/Applications/Max5/Cycling '74/jitter-externals/jit.gl.gridshape.mxo jit.gl.render: buocoaHD:/Applications/Max5/Cycling '74/jitter-externals/jit.gl.render.mxo jit.gl.text3d: buocoaHD:/Applications/Max5/Cycling '74/jitter-externals/jit.gl.text3d.mxo jit.gl.videoplane: buocoaHD:/Applications/Max5/Cycling '74/jitter-externals/jit.gl.videoplane.mxo jit.lcd: buocoaHD:/Applications/Max5/Cycling '74/jitter-externals/jit.lcd.mxo jit.matrix: buocoaHD:/Applications/Max5/Cycling '74/jitter-externals/jit.matrix.mxo jit.op: buocoaHD:/Applications/Max5/Cycling '74/jitter-externals/jit.op.mxo jit.pack: buocoaHD:/Applications/Max5/Cycling '74/jitter-externals/jit.pack.mxo jit.str.tosymbol: buocoaHD:/Applications/Max5/Cycling '74/jitter-externals/jit.str.tosymbol.mxo jit.submatrix: buocoaHD:/Applications/Max5/Cycling '74/jitter-externals/jit.submatrix.mxo jit.unpack: buocoaHD:/Applications/Max5/Cycling '74/jitter-externals/jit.unpack.mxo jit.window: buocoaHD:/Applications/Max5/Cycling '74/jitter-externals/jit.window.mxo js: buocoaHD:/Applications/Max5/Cycling '74/max-externals/js.mxo line: buocoaHD:/Applications/Max5/Cycling '74/max-externals/line.mxo loadmess: buocoaHD:/Applications/Max5/Cycling '74/max-externals/loadmess.mxo message: buocoaHD:/Applications/Max5/Cycling '74/max-externals/message.mxo metro: buocoaHD:/Applications/Max5/Cycling '74/max-externals/metro.mxo modifiers: buocoaHD:/Applications/Max5/Cycling '74/max-externals/modifiers.mxo number: buocoaHD:/Applications/Max5/Cycling '74/max-externals/number.mxo onebang: buocoaHD:/Applications/Max5/Cycling '74/max-externals/onebang.mxo out: buocoaHD:/Applications/Max5/Cycling '74/msp-externals/out.mxo pak: buocoaHD:/Applications/Max5/Cycling '74/max-externals/pak.mxo panel: buocoaHD:/Applications/Max5/Cycling '74/max-externals/panel.mxo patcherargs: buocoaHD:/Applications/Max5/Cycling '74/max-externals/patcherargs.mxo poltocar: buocoaHD:/Applications/Max5/Cycling '74/max-externals/poltocar.mxo poly~: buocoaHD:/Applications/Max5/Cycling '74/msp-externals/poly~.mxo prepend: buocoaHD:/Applications/Max5/Cycling '74/max-externals/prepend.mxo round: buocoaHD:/Applications/Max5/Cycling '74/max-externals/round.mxo sampstoms~: buocoaHD:/Applications/Max5/Cycling '74/msp-externals/sampstoms~.mxo scale: buocoaHD:/Applications/Max5/Cycling '74/max-externals/scale.mxo seq~: buocoaHD:/Applications/Max5/Cycling '74/msp-externals/seq~.mxo snapshot~: buocoaHD:/Applications/Max5/Cycling '74/msp-externals/snapshot~.mxo spell: buocoaHD:/Applications/Max5/Cycling '74/max-externals/spell.mxo split: buocoaHD:/Applications/Max5/Cycling '74/max-externals/split.mxo sprintf: buocoaHD:/Applications/Max5/Cycling '74/max-externals/sprintf.mxo sqrt: buocoaHD:/Applications/Max5/Cycling '74/max-externals/sqrt.mxo text: buocoaHD:/Applications/Max5/Cycling '74/max-externals/text.mxo thispoly~: buocoaHD:/Applications/Max5/Cycling '74/msp-externals/thispoly~.mxo togedge: buocoaHD:/Applications/Max5/Cycling '74/max-externals/togedge.mxo toggle: buocoaHD:/Applications/Max5/Cycling '74/max-externals/toggle.mxo translate: buocoaHD:/Applications/Max5/Cycling '74/max-externals/translate.mxo umenu: buocoaHD:/Applications/Max5/Cycling '74/max-externals/umenu.mxo vexpr: buocoaHD:/Applications/Max5/Cycling '74/max-externals/vexpr.mxo zl: buocoaHD:/Applications/Max5/Cycling '74/max-externals/zl.mxo --------------