- cirSeq_021.maxpat
- description
- top level, main patch and user interface
- user may interact with nodes on the lcd UI or via /set messages
- /set messages affect nodes that are visibale on UI as coloured dots
- checkboxes labeld with Qsys names (4n, 8n, 8nt, etc) toggle the nodes of theses systems
- click '1', '-1' and list messages to set which Qsystems are active
- master phase position is displayed on scope~
- speed is set by note-value messages (1n, 2n, 4n, etc) giving cycle durations relative to the current transport tempo (bpm)
- post output gain low pass filter was put inplace following reaction of informal test subjects
- sub-patchers
- p txtFileEOF
- description
- messages to [lcd] to record the sprite named 'selected'
- p draw
- description
- messages for drawing elements of the UI; using my own syntax to communicate with the lcd object
- abstractions
- xyMap2lcd
- description
- convert x y list highlevel map coords to actual pixel coords of the lcd object.
- shared data (read)
- ltrb
- description
- left inlet list input specifies center pont (lcd pixel coords), output = left top right bottom list for to bound center by current radius
- right inlet/outlet used with pattrhub
- arguments
- pattr values
- @radtrig
- @radius
- pixels, default = 25, can be set by middle inlet
- @center
- x y pixels, default = patcherargs or 50 50, can be set by left inlet
- shared data
- these global values are set here according to config commands from the .txt script
- v gridoffset
- v gridmult
- v dot radius
- p cSeqQsys_messaging
- description
- left inlet takes list of Qsys 'active state toggles
- right inlet takes messages to be sent to the 'active' Qsystems via [s maxhole]
- abstractions
- csqsToggle
- arguments
- description
- send messages for show/hide sprites on the lcd
- the maxhole msg sent by this patch is redundant
- p lcd_mouse_interaction
- description
- three inlets live, idle and button messages from [lcd]
- outlet for displaying selection message to user
- sub-patchers
- p delta_md_mu
- description
- input = idle, live, button
- output = delta (while draging), mouse down (md, coords), mouse up (mu, coords)
- p was_md_on_a_sprite?
- description
- input = mouse down (md) x y list
- output = name of clicked on sprite (or -1 is md not on a sprite)
- shared data
- v gridoffset
- v gridmult
- coll refer csqsCoords
- p delta_interaction
- description
- user can click on a sprite (a node on the lcd UI) and then drag in one of three different ways
- click, drag up/down to change the amp value
- interaction of this is a bit broken in this version following a change which was made to to fix the interaction with pitch-class and -height
- click, drag to the left, then up/down to change pitch-class
- click, drag to the right, then up/down to change pitch-height
- inputs = mousing delta, name of sprite clicked on, md, mu
- outputs = messages to both the Qsys being affected and the UI
- sub-patchers
- p split/symbol
- description
- to separate the Qsys name from the node number;
- a regexp might better do the job, but this works...
- e.g. if input = 4n/2 , then output right = 4n and output left = 2
- abstractions
- xyMap2lcd
- deltatolerance
- arguments
- tolerance (int, can also be changed via right inleft)
- description
- for mouse dragging interaction
- use on either x or y, not both i.e. int intput and output
- input (left inlet) = delta value
- output = deltaħtolerance or nothing if delta<tolerance
- abstractions
- moses
- description
- implementation of the PureData object of this name
- shared data
- coll refer csqsCoords
- coll refer (mQsysName_c)
- abstractions
- cSeqQsys.maxpat
- description
- input = master phase~
- output = sinusoid oscillator audio~
- messages from [r maxhole] are filtered according to Qsys_name provided #arg 3
- arguments
- #1 = number of nodes
- sets
- size of the jit.matrix
- multiplier for master phase~
- conditional limit for '/set all' loop
- number of '-1's used to init param lists in coll
- number voices for poly~
- #2 = jit.matrix_name
- given as m{Qsys_name} (e.g. m8nt)
- given to
- jit.matrix
- jit.peek~
- jit.fill
- coll (with concatonated _c appendix)
- poly~ as first argument
- #3 = Qsys_ name
- given as the note-vale time duration name for the interval each node represents (e.g. 8nt)
- given to
- OSC-route (via sprintf)
- poly~ as second argument
- sub-patchers
- p random_vals
- description
- input = list where first item is node number and other items include names of parameter(s) to be randomised
- output = list(s) as if from /set messages
- abstractions
- poly~ cSeqQsysNode
- description
- this patch represents one node of a Qsys on the UI
- functioning within poly~ the only input expected is a targeted bang
- output = remote messaging to draw (as a sprite) a visual representation of the synthesis parameters on the UI
- arguments
- #1 = jit.matrix_name
- given to coll (with the _c appendix)
- #2 = Qsys_ name
- given to sprintf for construction of nodeAdress along with Instance Index from [thispoly~]
- abstractions
- xyMap2lcd
- ftoArc
- description
- frequncy to arc coords
- adapted from Spiroid based patches
- input = freq Hz or bang
- output = list suitable for paintarc message to lcd
- pattr (@name {default value})
- @spirCenter 50 50
- @DivMult 20.
- @ModMult 30
- @ArcA 4
- @pHeight
- @pClass
- shared data
- coll #1_c
- coll refer csqsCoords
- shared data
- coll m{Qsys_name}_c
- a (more) human readable mirror of the jit.matrix data
- /set messages manipulate this coll data which is then [jit.fill]ed into the planes of the jit.matrix
- txtFile
- arguments
- file name of .txt (44timeMap.txt)
- description
- taken from an early version of 'thisis' drawing system
- load (reload if the file is edited+saved externally) the specified .txt file
- dump conents of the file one line at a time
- gate is used so that commented lines of the txt file are not output
- right outlet gives bang when line "// EOF " is found (used for end of file trigger for Max)
- ((patch name))
- description
- arguments
- pattr values
- sub-patchers
- abstractions
- shared data
- shared data
- values are written to [coll csqsCoords] as defined in the txtFile script
- third-party object required