Projects/Liberty/File Formats/Janome Embroidery Format
Janome Embroidery Format JEF
The JEF and JEF+ files consists of a number of sections. Multi-byte numbers appear to be stored little endian. For the JEF (and not JEF+ ) files, there is no simple signature, except to see if the Stitch-offset is after the Thread-type-list. The JEF pattern can easily be extracted from JEF+ files; by using the Stitch-offset to the Stitch-list, to skip over the JEF+ header; and then to ignore the JEF+ details, after the Stitch-list, at the end of the file.
File = File-header Thread-colour-list Thread-type-list [Plus-header] Stitch-list {Plus-detail}
Thread-colour-list = {Thread-colour}
Thread-type-list = {Thread-type}
Stitch-list = {Stitch}
Stitch = Escaped-command | Displacement
File-header
Offset | Length | Type | Description |
0 | 4 | Offset | Stitch-offset location of first stitch |
4 | 4 | Flags | unknown = 1, 10 or 20 |
8 | 8 | ASCII | Date YYYYMMDD |
16 | 8 | ASCII | Time HHMMSSxx |
24 | 4 | Count | Thread-count number of thread changes |
28 | 4 | Count | Stitch-count |
32 | 4 | Code | Hoop-code = 0 to 4 |
36 | 4 | Measure | Extent-1-left stitch extent left of centre in 0.1 mm units |
40 | 4 | Measure | Extent-1-top |
44 | 4 | Measure | Extent-1-right |
48 | 4 | Measure | Extent-1-bottom |
52 | 4 | Measure | Extent-2-left -1 implies not used |
56 | 4 | Measure | Extent-2-top |
60 | 4 | Measure | Extent-2-right |
64 | 4 | Measure | Extent-2-bottom |
68 | 4 | Measure | Extent-3-left -1 implies not used |
72 | 4 | Measure | Extent-3-top |
76 | 4 | Measure | Extent-3-right |
80 | 4 | Measure | Extent-3-bottom |
84 | 4 | Measure | Extent-4-left -1 implies not used |
88 | 4 | Measure | Extent-4-top |
92 | 4 | Measure | Extent-4-right |
96 | 4 | Measure | Extent-4-bottom |
100 | 4 | Measure | Extent-5-left -1 implies not used |
104 | 4 | Measure | Extent-5-top |
108 | 4 | Measure | Extent-5-right |
112 | 4 | Measure | Extent-5-bottom |
Hoop-code
Hoop-code | Hoop-name | Hoop-size |
0 | A Standard | 126 x 110 mm |
1 | C Free Arm | 50 x 50 mm |
2 | B Large | 140 x 200 mm |
3 | F Spring Loaded | 126 x 110 mm |
4 | D Giga | 230 x 200 mm |
Thread-colour
Offset | Length | Type | Description |
0 | 4 | Code | Thread-code = 1 to 78 |
Thread-code | Colour-RGB | Colour-number | Colour-name |
1 | "#000000" | 002 | "Black" |
2 | "#F0F0F0" | 001 | "White" |
3 | "#FFCC00" | 239 | "Sunflower" |
4 | "#E6651E" | 254 | "Hazel" |
5 | "#C4E39D" | 264 | "Green Dust" |
6 | "#237336" | 226 | "Green" |
7 | "#071650" | 232 | "Navy Blue" |
8 | "#4CB58F" | 250 | "Emerald Green" |
9 | "#F669A0" | 201 | "Pink" |
10 | "#FF4720" | 202 | "Vermilion" |
11 | "#E2A188" | 236 | "Cinnamon" |
12 | "#595B61" | 252 | "Dark Gray" |
13 | "#E4C35D" | 003 | "Gold" |
14 | "#6231BD" | 261 | "Violet Blue" |
15 | "#2F5933" | 219 | "Olive Green" |
16 | "#FAB381" | 212 | "Peach" |
17 | "#F999B7" | 211 | "Pale Pink" |
18 | "#F09C96" | 256 | "Salmon" |
19 | "#A39166" | 268 | "Olive Drab" |
20 | "#970533" | 215 | "Wine Red" |
21 | "#AC9CC7" | 209 | "Pale Violet" |
22 | "#65C2C8" | 217 | "Sky" |
23 | "#E5E5E5" | 220 | "Silver Gray" |
24 | "#A0B8CC" | 216 | "Pale Sky" |
25 | "#98D6BD" | 227 | "Pale Aqua" |
26 | "#0B2F84" | 207 | "Blue" |
27 | "#98F3FE" | 229 | "Powder Blue" |
28 | "#B2E1E3" | 228 | "Baby Blue" |
29 | "#FF0927" | 244 | "Cardinal Red" |
30 | "#14329C" | 262 | "Blue Ink" |
31 | "#A80043" | 242 | "Burgundy" |
32 | "#FF6600" | 203 | "Orange" |
33 | "#FF6048" | 234 | "Coral" |
34 | "#B59474" | 237 | "Umber" |
35 | "#FDF5B5" | 210 | "Pale Yellow" |
36 | "#F5DB8B" | 238 | "Blond" |
37 | "#C79732" | 272 | "Old Gold" |
38 | "#889B9B" | 221 | "Gray" |
39 | "#AB5A96" | 208 | "Purple" |
40 | "#FFBDE3" | 240 | "Orchid Pink" |
41 | "#C3007E" | 241 | "Peony Purple" |
42 | "#FF0000" | 225 | "Red" |
43 | "#EE71AF" | 266 | "Floral Pink" |
44 | "#608541" | 246 | "Moss Green" |
45 | "#609418" | 247 | "Meadow Green" |
46 | "#C6EECB" | 245 | "Opal Green" |
47 | "#5BD2B5" | 249 | "Aquamarine" |
48 | "#FFFF17" | 204 | "Yellow" |
49 | "#04917B" | 251 | "Peacock Green" |
50 | "#5C2625" | 260 | "Dark Sepia" |
51 | "#FFFFDC" | 253 | "Ivory White" |
52 | "#FF5A27" | 235 | "Burnt Orange" |
53 | "#A76C3D" | 257 | "Cocoa Brown" |
54 | "#9C6445" | 214 | "Brown" |
55 | "#B45A30" | 258 | "Sienna" |
56 | "#481A05" | 205 | "Dark Brown" |
57 | "#0C8918" | 269 | "Meadow" |
58 | "#70A9E2" | 230 | "Bright Blue" |
59 | "#1D5478" | 231 | "Slate Blue" |
60 | "#165FA7" | 263 | "Solar Blue" |
61 | "#7FC21C" | 218 | "Yellow Green" |
62 | "#06480D" | 248 | "Dark Green" |
63 | "#843154" | 267 | "Wine" |
64 | "#FD33A3" | 265 | "Crimson" |
65 | "#FFBBBB" | 233 | "Salmon Pink" |
66 | "#F7F297" | 270 | "Mustard" |
67 | "#00B552" | 206 | "Bright Green" |
68 | "#FCF121" | 275 | "Canary Yellow" |
69 | "#E6965A" | 255 | "Toast" |
70 | "#D7BDA4" | 213 | "Beige" |
71 | "#FF9D00" | 273 | "Honey Dew" |
72 | "#FFBA5E" | 274 | "Tangerine" |
73 | "#0257B5" | 222 | "Ocean Blue" |
74 | "#6E3937" | 259 | "Sepia" |
75 | "#540571" | 243 | "Royal Purple" |
76 | "#CC9900" | 271 | "Yellow Ocher" |
77 | "#D0BAB0" | 223 | "Beige Gray" |
78 | "#E3BE81" | 224 | "Bamboo" |
Thread-type
Offset | Length | Type | Description |
0 | 4 | int | unknown = 13 |
Plus-header
Only in JEF+ files.
Offset | Length | Type | Description |
0 | 4 | int | Signature-1 = 0 |
4 | 4 | int | Signature-2 = 0 |
8 | 8 | ASCII | Signature-3 = "JANOME\0\0" |
16 | 4 | Count | Plus-detail-count = 1 |
20 | 4 | Offset | Plus-detail-offset from file-start to JEF+ extra details |
Escaped-command
Offset | Length | Type | Description |
0 | 1 | Byte | Escape = -128 or 0x80 |
1 | 1 | Byte | Command-code = 1, 2 or 16 |
Command-code | Description |
1 | Change to next thread in list |
2 | Move followed by 8 bit displacement-X and 8 bit displacement-Y |
16 | Last-stitch |
Displacement
Offset | Length | Type | Description |
0 | 1 | Byte | Displacement-X -127 to 127 in 0.1 mm |
1 | 1 | Byte | Displacement-Y -127 to 127 in 0.1 mm |
Plus-detail
Unknown, many 32 bit numbers, then many 16 bit numbers.