JAMIN(1)

πŸ“¦ version 0.98.9~git20170111~199091, in debian bookworm, ubuntu jammy, ubuntu noble, ubuntu resolute, ubuntu stonking

🌸 NAME 🌸

hiii bestie, welcome to JAMIN(1) πŸ’– this is the whole entire glow-up tour of jamin β€” aka the JACK Audio Mastering interface. that's it, that's the name, short and iconic, no notes πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

jamin [ options ] [ inport1 inport2 [ outport1 outport2 ]]
jamin-scene <scene-num>

✨ DESCRIPTION ✨

so the jamin command fires up JAMin, which is the JACK Audio Mastering interface, built on top of the JACK Audio Connection Kit β€” you can find that over at <http://jackit.sourceforge.net> πŸ¦‹

JAMin is made for professional stereo audio mastering, periodt. it hands you a whole toolbox: a 1024-band hand-drawn EQ with parametric controls, a 31-band graphic EQ, a 3-band compressor, 3-band stereo width control, a lookahead limiter, boost, and a bunch of other features too πŸ‘‘

for the freshest JAMin info, go look at <http://jamin.sourceforge.net> ✨


πŸ’… OPTIONS πŸ’…

  • -f filename β€” loads the session file filename right at startup. and if you don't hand it a session file? JAMin loads ~/.jamin/default.jam if that file exists, and if it doesn't, it falls back to whatever system-provided default settings are lying around πŸ“
  • -h β€” prints a lil brief usage message covering the main jamin options β€” and yeah, it also spills some developer options that are genuinely not meant for normal users, so, heads up πŸ‘€
  • -j servername β€” connects to the JACK server called servername. don't pass it? then you just get the default server, no biggie ✨
  • -n clientname β€” sets the JACK clientname used to identify the input and output ports. otherwise it just uses "jamin" πŸ’œ
  • -s frequency β€” sets the spectrum update frequency, per second. the range is 1 to 10, and the default is 10. set it to 0 to disable spectrum update entirely πŸ¦‹
  • -c time β€” sets the crossfade time in seconds. range is 0.0 to 2.0, default is 1.0.
⚠️ WARNING bestie: fast crossfade times combined with large jack buffer sizes may introduce zipper noise to some signals β€” especially sustained sounds down in the bass range. no cap, be careful 😭
  • -p β€” don't automatically connect any JACK output ports. without this option, JAMin connects to outport1 and outport2 if you explicitly listed them on the command line; if you didn't, it connects to the first two physical output ports that have the string ":playback" in their names πŸ™ˆ
  • -i β€” use the IIR type crossover instead of the default FFT type crossover. the IIR one is less CPU intensive, but the FFT one gives better results (YMMV, fr fr) πŸ’€
  • -l β€” set to 0 to use Steve Harris' fast-lookahead-limiter, or 1 for Sampo Savolainen's foo-limiter. and rn there's a problem with the foo-limiter if you push the input too hard, so. just so you know 😭
  • -r β€” load GTK resource information from an example JAMin resource file. if -r is not specified, it looks for a user-defined resource file in ~/.jamin/jamin_ui. otherwise it uses the system-wide GTK settings πŸŽ€
  • -v β€” print verbose output. want even more detail? use -vv or -vvv ✨
  • -V β€” print version and copyright information, then quit. that's it, bye πŸ‘‹

πŸŽ€ FILES πŸŽ€

  • ~/.jamin β€” the directory holding all your per-user JAMin data. it gets created automatically if it doesn't already exist, so don't stress 🫢
  • ~/.jamin/jamin_ui β€” the default resource file for GTK user interface customization, used when the -r command option is not specified. JAMin ships a default resource file at ${prefix}/share/jamin/examples/jamin_ui β€” to customize it, copy that over to ~/.jamin/jamin_ui and make your changes πŸ’…
  • ~/.jamin/*.jam β€” the normal home for user-defined session files. (they can live elsewhere if you want, live your truth 🌈)
  • ~/.jamin/default.jam β€” if this session file exists, it gets loaded by default on startup β€” except when it's overridden by the -f option πŸ‘‘

πŸ¦‹ IPC πŸ¦‹

if JAMin was built with OSC support enabled, it responds to UDP OSC messages on port 4444 πŸ“‘

messages sent to /jamin/scene with a numerical argument cause the scene number to change. and for remote scene changes, there's a command line tool (jamin-scene) and a LADSPA Plugin (jamin_cont, ID:1912) provided for you ✨


🌈 EXAMPLES 🌈

so, jamin is not a standalone program β€” meaning we generally need other programs to feed it input audio and receive the mastered output back. this first example uses alsaplayer with output going to the first two ALSA playback ports:

jackd -R -d alsa -p 2048 -r 44100 &
alsaplayer -o jack -s src -d noconnect song.wav &
jamin src:out_1 src:out_2

that was the brute force method, ngl πŸ˜… it is much easier to just have qjackctl start the JACK server and handle its connections. once the server is running, start jackplayer and jamin. the "transport" option tells jackplayer (which is an alsaplayer alias) to start and stop under JACK transport control:

qjackctl &
jackplayer -d noconnect/transport song.wav &
jamin

any JACK-aware player works here instead β€” like rezound, ecasound or ecamegapedal 🎢

and here's a more advanced technique using ardour for both the source and the destination. in ardour, run all of your track outputs into a stereo bus, connect its output ports to JAMin, then run the JAMin outputs back into a record-enabled stereo track. this lets you mix and master at the same time, which is honestly main character energy πŸ‘‘ and if JAMin is already running when ardour reopens the session, it will automatically reconnect all these ports. slay.

qjackctl &
jamin &
ardour

⭐ SEE ALSO ⭐


πŸ™ˆ BUGS πŸ™ˆ

found a bug? please send bug reports to <jamin-devel@lists.sourceforge.net> β€” they wanna hear about it, fr fr πŸ’Œ


πŸ‘‘ AUTHORS πŸ‘‘

Steve Harris is the principal JAMin author and team leader 🫢 other developers include: Jan Depner, Jack O'Quin, Ron Parker, Emmanuel Saracco, and Patrick Shirkey.

Alexandre Prokoudine and Yuri N. Sedunov developed the translation infrastructure. Alexandre also translated JAMin into Russian and is our (really good) web engineer πŸ’–


okay that's the whole page bestie, tysm for reading, mwah πŸŽ€πŸ’–βœ¨

this was version 0.98.9, dated June 2007 β€” yeah she's vintage, she's a classic, she ate πŸ’…πŸ‘‘