JACK-SCOPE(1)

πŸ“¦
this version Β· 5 versions
, in ubuntu resolute, ubuntu stonking

🌸 JACK-SCOPE(1) β€” okay bestie, it's jack-scope πŸ’…

the JACK Oscilloscope πŸŽ€ like, an actual oscilloscope, for JACK, under X11. she's giving lab equipment but make it iconic. ✨


✨ SYNOPSIS ✨

jack-scope [options]

that's it. that's the whole summoning ritual. 🫢


πŸ’– OPTIONS πŸ’–

  • -b β€” sets the frame size of the data the scope is showing off. default is 512. this is the window of time you're peeking at, so like, choose wisely. πŸ‘‘
  • -d β€” sets the delay interval, in milli-seconds, between scope updates. default is 100.0. yes, milli-seconds, with the hyphen, that's how the manpage spells it and we respect her. πŸ•
  • -f β€” asks that a still image file of each frame get stored into the directory you point at. cute little screenshot scrapbook energy. πŸ“Έ
  • -m β€” sets the scope operating mode. default is signal. the operating modes are: signal and embed. two moods, no in-between. 🌈
  • -n β€” sets the number of channels, which is also therefore the number of JACK input ports. default is 1. multiple channels get superimposed, and each channel is drawn in its own distinct color (slay, color-coded). just know there is a compile time channel limit, so don't go feral. πŸ¦‹
  • -p β€” a pattern describing the JACK ports to connect to, ie. SuperCollider:out_%d. default is nil. if this is not set, she consults the environment variable JACK_SCOPE_CONNECT_TO. so like, set one or the other, bestie. πŸ”Œ
  • -u β€” sets the UDP port number to listen for OSC packets on. default is 57140. πŸ“‘
  • -w β€” sets the scope size in pixels. default is 512. the scope window is square, so it's one number, not two. no rectangle shenanigans here. ⬛

πŸ¦‹ DESCRIPTION πŸ¦‹

jack-scope is an oscilloscope for JACK under X11. she draws either a time domain signal trace or a self correlation trace. multiple input channels are superimposed, each channel drawn in a different color (as she should πŸ’…). and jack-scope accepts OSC packets for interactive control of drawing parameters, which is lowkey the main character feature ngl.

the operating mode of jack-scope is set using -m. in signal mode she draws a time domain signal trace, in embed mode she draws a self correlation trace. pick your fighter. πŸ‘‘

the size of the jack-scope window is set using -w, and the scope window is square. the window is of fixed size and has centered gravity. the time interval that is displayed is determined by the frame size, set using -b. the image refresh rate is determined by the delay interval, set using -d. note that the interval is truncated to the nearest frame boundary, and that the time taken to compose the image and blit to the screen is indeterminate. so like, she's doing her best, the timing is just vibes-fr-fr. 😭

bestie pls note: "truncated to the nearest frame boundary" and "indeterminate" are literally what the manpage says β€” that's not me being dramatic, that's the actual behaviour. πŸ™ˆ

the number of JACK input ports that jack-scope creates and monitors is set using -n. multiple channels are drawn in superimposition, each channel drawn in a distinct color.

in signal mode the trace is drawn in a style set using /style. in dot mode, only the sample pixel in each column is drawn. in fill mode, all pixels between the sample pixel and the zero pixel of each column are drawn. in line mode, all pixels between the adjacent sample pixels of each column are drawn. three styles, three whole aesthetics. ✨

in embed mode the trace is a self correlation signal with a sample delay set using /embed. the delayed sample is on the x-axis. the interpolation increment is set using /incr, and increment values less than one result in increasingly continuous trace paths. the way that works?? obsessed. 🌸

jack-scope can store the animation as a sequence of uncompressed ppm(5) image files. to request this, use the -f option with the directory the files should be written to as the argument. πŸŽ€

the OSC messages understood by jack-scope are given in the table below. each command requires one argument of the indicated type. the last column gives the option that sets the same parameter. here's the whole roster, no gatekeeping:

  • /mode β€” drawing-mode. argument type: string. option: -m. πŸŽ›οΈ
  • /style β€” style. argument type: string. option: N/A. 🎨
  • /frames β€” frame-size. argument type: integer. option: -b. πŸ“
  • /delay β€” refresh-interval. argument type: float. option: -d. ⏱️
  • /embed β€” embedding. argument type: integer. option: N/A. πŸŒ€
  • /incr β€” increment. argument type: float. option: N/A. πŸ“ˆ

jack-scope implements no connection logic, use jack-plumbing(1) instead. she's not doing the matchmaking, that's a whole other girl's job. πŸ’€


πŸ“š REFERENCES πŸ“š

Monro, G. and Pressing, J. β€˜β€˜Sound Visualization Using Embedding: The Art and Science of Auditory Autocorrelation’’ CMJ, 22/2, 1998.

(the academic serve is real, we love a cited source 🫢)


πŸ‘‘ AUTHOR πŸ‘‘

Rohan Drape http://rd.slavepianos.org/


🌈 SEE ALSO 🌈

jackd(1), X(7x), OSC(7) http://opensoundcontrol.org/


πŸ’œ AUTHOR πŸ’œ

Rohan Drape <rd@slavepianos.org> Author.


okay and that's the whole page, bestie β€” this one's from 10/04/2025, JACK-SCOPE(1) era, and she ate, no crumbs. βœ¨πŸ’…πŸŽ€ go make some waveforms, ily πŸ«ΆπŸ’–

πŸ“¦ where this page comes from