PMV
Status
| Field | Value |
|---|---|
| Extension(s) | .pmv |
| Common ecosystem | Brother sewing-machine stitch patterns |
| Format family | Decorative stitch pattern, not hoop embroidery |
| Satin Studio status | Researching |
| Open / import | No |
| Export | No |
| Confidence | Medium as a format lead. |
What it is
PMV is different from hoop embroidery machine files. It describes decorative stitch patterns for sewing-machine stitch programs, where movement is constrained by the presser foot and feed direction rather than a full embroidery hoop.
Satin Studio direction
Research lead only. PMV is not a near-term machine-file import/export target for Satin Studio embroidery projects.
Versions and variants
Brother PMV files are reported with #PMV0001-style signatures. Other related Brother stitch-pattern files may exist.
File identification notes
Reported structure includes:
- A 100-byte header.
- A seven-byte signature such as
#PMV0001. - Stitch settings such as length/width offsets and left/right shift.
- A stitch block using a hybrid encoding: one dimension behaves like movement within the presser foot while another tracks feed direction.
- Length and width lookup/control tables after the stitch block.
Observed structure notes
- Observed PMV readers seek to offset
0x64before reading decorative stitch blocks. - Each block begins with little-endian
stitch_countandblock_length. Block lengths>= 256terminate observed reading. Each stitch point uses one X byte and one Y byte. - Observed coordinate rules: X is a six-bit signed value, Y is a five-bit signed value, both scaled by
2.5. The X position behaves as hybrid relative/absolute feed progression rather than hoop movement. - Observed PMV writers start with
#PMV0001, write a 36-byte placeholder text area, then a fixed header block before the first stitch-program block. - Observed PMV writers cap a single exported pattern at 100 points, scale X and Y into small signed pattern units, and append length/width lookup tables after stitch points.
Structure sketch
PMV stores decorative stitch-program blocks, not hoop embroidery commands:
struct PmvFile<'a> {
header: [u8; 0x64],
blocks: &'a [PmvBlock<'a>],
}
struct PmvBlock<'a> {
stitch_count: u16, // little-endian
block_length: u16, // little-endian; observed >= 256 terminates
points: &'a [PmvPoint],
}
struct PmvPoint {
x_6bit_signed: u8,
y_5bit_signed: u8,
}
What we still need
Small decorative-stitch examples, relationship to Satin Studio's project model, and a decision on whether PMV belongs in scope.