LeTissierCreative Studios
Cue 08The manualYewee 1.0

Docs / Yewee

Version1.0 · latest

Yewee 1.0

Command line and files

Every launch flag Yewee 1.0 takes, how to use them with the installed app, and where settings, logs and the licence are kept.

You don't need any of this for a normal show: every setting lives in the control panel and is saved as you change it. Flags are for the few things the panel can't do (a second copy of Yewee, a different panel port, setting the PIN) and for starting a machine in a known state.

Starting Yewee with flags

Windows. Open Command Prompt or PowerShell and run the program in the install folder. For a normal per-user install that is:

"%LOCALAPPDATA%\Programs\yewee\yewee.exe" --pin 2580

If you chose to install for all users, it is in C:\Program Files\yewee\ instead. To keep flags, make a copy of the desktop shortcut and add them to the end of its Target in Properties.

Mac. Open Terminal and run the program inside the app:

/Applications/Yewee.app/Contents/MacOS/yewee --pin 2580

Yewee then runs in that Terminal window; closing the window quits it.

From source, the same flags follow python main.py.

--help lists every flag.

How flags and saved settings mix

  • A flag you give wins over the saved setting for that run.
  • Flags you don't give leave the saved settings alone.
  • Changing anything in the panel saves every current setting, including values that came from a flag. So a flag given once tends to stick: after --det-threshold 0.3 and one change in the panel, 0.3 is the saved value. Change it back in the panel if you meant it for one run only.
  • The panel covers the useful range. Some flags accept a wider one (below). A value outside the panel's range still works, but its slider sits at the nearest end, or its menu shows no choice, until you change it there.

Input

--source

What to open at launch. Default: the source you last picked in the panel, or the first camera on a first run.

FormOpens
0, 1, …A camera by its number in the system's list.
cam:NAMEA camera or capture device by its name (cam:Cam Link 4K). Survives replugging, unlike a number.
ndi:NAMEAn NDI source by its name or any part of it, ignoring case (ndi:PTZ Cam 1).
A path or URLA video file or stream, anything OpenCV can open.

If it can't be opened, Yewee starts anyway on a NO INPUT slate and says why. A source picked in the panel is saved; one given here is not, until you pick it in the panel.

--width, --height, --fps

The capture format to ask a camera or capture card for. Defaults 1280, 720 and 30, the same as 720p30 in Capture format. Any other value sets the capture format for this run, for example --width 1920 --height 1080 --fps 50.

--fps also sets the Output frame rate when it isn't 30.

--capture-backend

The Capture driver: any (Auto, the default), dshow (DirectShow), msmf (Media Foundation) or avfoundation.

--loop

Loop video files. Already the default (Loop video files); the flag only turns it back on if the panel turned it off.

--flip

Turns on Mirror image.

Face finding

--backend

The Detector: auto (default), yunet or centerface.

--det-size

Search detail as a width in pixels. The panel offers 480, 640, 960 and 1280; the flag takes 160 to 1920.

--det-threshold

Strictness. The panel offers 0.10 to 0.90; the flag takes 0.05 to 0.95.

--detect-every

Detector pace: run the detector every Nth frame. The panel offers 1 to 4; the flag takes 1 to 6.

--min-face

Ignore small faces, in pixels. The panel offers 0 to 120; the flag takes 0 to 300.

--max-misses

Hold lost faces, in frames. The panel offers 2 to 60; the flag takes 1 to 90.

On-screen look

--no-emotion

Turns Expressions off for this run. They are off by default.

--emotion-budget

Expression effort: faces given a fresh label each frame. The panel offers 1 to 12; the flag takes 0 to 16, where 0 labels nothing.

--no-ids

Turns off Number badges.

--no-stats

Turns off the Stats readout.

Outputs

--ndi-name

The name in every feed's name, default Yewee. The feeds become MACHINE (NAME), MACHINE (NAME Overlay), MACHINE (NAME Faces) and MACHINE (NAME Mask), and the Syphon or Spout names yewee-NAME, yewee-NAME-overlay and so on. Needed to run two copies on one machine. Not saved: give it at every launch.

--ndi-overlay

--ndi-overlay NAME turns the Overlay feed on over NDI and names it MACHINE (NAME) instead of MACHINE (Yewee Overlay).

--clean-main

Turns on Keep program clean.

--no-ndi

Starts with every NDI feed off: Program, Overlay, Faces cutout and Mask. Syphon and Spout still follow their saved switches.

--out-width

Output size as a width in pixels; 0 matches the input. The panel offers 0, 1920, 1280 and 960; the flag takes 0 to 3840.

--texture-share

Turns on the Program feed over Syphon (Mac) or Spout (Windows). The other feeds' Syphon or Spout switches are in the Outputs card.

--no-preview

Starts with Window on the machine off.

Control panel

--pin

The PIN other devices must give the panel. It is kept for next time.

  • --pin 2580 sets it. Any word or number works; four digits is easiest on a phone.
  • --pin none (or --pin off) turns the PIN off, and that is kept too. Anyone on the network can then open the panel and change or quit the show.
  • Without the flag, Yewee uses the saved PIN, or makes four random digits on the first launch.

The console and the machine's own panel always show the current PIN.

--web-port

The panel's port, default 8089. A second copy of Yewee on the same machine needs its own. If a copy of Yewee already serves the port you start on, the new launch just opens the existing panel and exits.

--web-host

Which network the panel listens on. The default, 0.0.0.0, is every network the machine is on. --web-host 127.0.0.1 keeps the panel to the Yewee machine alone: phones can't reach it, and the line at the top of the machine's panel shows only the PIN, with no address.

--no-browser

Doesn't open the panel in a browser at launch. For a machine that starts Yewee by itself and is run from a phone.

--no-web

No control panel at all: Yewee runs on its saved settings and the flags. Nothing can be changed until the next launch, so this is for unattended installs only.

Other

--doctor

Runs the self-check and exits: Python and packages, the models, the camera, NDI, Syphon or Spout, and whether the panel port is free. Each line says ok, a note, or a problem with its fix, and the last line says whether the machine is ready for the show.

--quiet

Leaves out the stats line (fps, faces, processing time) Yewee prints to the console every 150 frames, about every five seconds at 30 fps. Errors and the start-up banner still print.

--max-frames

Stops after that many frames. For tests and benchmarks: it also turns off keep-awake and the stall watchdog. Not for a show.

While Yewee runs

  • Keep-awake. Yewee stops the machine and its display going to sleep while it runs, and lets go when it quits.
  • Stopping. Ctrl-C in the console, closing the console window, or Quit in the panel all stop Yewee cleanly.
  • Watchdog. If Yewee's processing stops for 30 seconds (a camera driver hanging, for example), Yewee closes itself, so it can't sit frozen on air. It then starts itself again within seconds, with the same source, feeds and settings. This works for the installed app and for a copy started from source with the included launcher (Yewee Mac.command or Yewee Windows.bat). A crash is different: the installed app isn't started again after one, so start it yourself, and it comes back as it was. The launchers restart it after a crash too.
  • Double launch. Starting Yewee while it is already running just opens the running one's panel.

Where Yewee keeps things

The installed app keeps everything in your user data folder, which updates and uninstalls leave alone:

  • Mac: ~/Library/Application Support/yewee/
  • Windows: %APPDATA%\yewee\ (paste that into File Explorer's address bar)
FileWhat it is
settings.jsonEvery panel setting, the last source, the PIN, and the crash-report choice.
logs/yewee.logThe log. The panel's view log link shows the end of it.
crash/Notes Yewee leaves while running, to tell a crash from a clean quit at the next launch.
reports/queue/Crash reports and feedback waiting for a connection (only what you agreed to send).
licence.key, shop-licence.jsonYour licence.
trial.jsonWhen the trial started.

To start from factory settings, quit Yewee and delete settings.json. That also makes a new PIN at the next launch. Deleting the other files doesn't restart the trial.

Run from source, settings.json, logs/, crash/ and reports/ sit next to main.py instead, so each checkout has its own settings; the licence and trial files stay in the user data folder above.

settings.json

Plain JSON: "source", "pin", a "reports" section, and "params", with one key per panel setting. It is safe to copy between machines to carry a show's setup (the PIN comes with it). Edit it only while Yewee is not running. Unknown or out-of-range values are ignored or brought into range.

KeyPanel setting
detector, det_threshold, det_size, detect_every, min_face, max_missesFace finding
emotion_enabled, emotion_budget, show_ids, show_stats, overlay_colorOn-screen look
cap_format, cap_backend, loop_file, flipInput
ndi_program, ndi_overlay, ndi_faces, ndi_mask, tex_program, tex_overlay, tex_faces, tex_mask, clean_main, mask_style, flip_ndi, flip_tex, out_width, out_fpsOutputs
cutout_shape, people_model, cutout_margin, cutout_grow, cutout_feather, cutout_steadyCutout shape
limit_cpu, auto_reliefMachine load
test_card, panel_preview, preview_source, local_previewProcess and Preview