& ~LINEDATA_PROPERTY_GHOST_NOTE
& ~LINEDATA_PROPERTY_PULLOFF_FROM
& ~LINEDATA_PROPERTY_HAMMERON_FROM
+ & ~LINEDATA_PROPERTY_DEST_NOWHERE
& ~LINEDATA_PROPERTY_TIE
& ~LINEDATA_PROPERTY_NATURAL_HARMONIC
& ~LINEDATA_PROPERTY_MUTED);
ptb_assert_0(bf, position->properties
& ~POSITION_PROPERTY_IN_SINGLE_BEAM
& ~POSITION_PROPERTY_IN_DOUBLE_BEAM
+ & ~POSITION_PROPERTY_IN_TRIPLE_BEAM
& ~POSITION_PROPERTY_FIRST_IN_BEAM
+ & ~POSITION_PROPERTY_MIDDLE_IN_BEAM
& ~POSITION_PROPERTY_LAST_IN_BEAM);
ptb_data(bf, &position->dots, 1);
ptb_assert_0(bf, position->dots &~ POSITION_DOTS_1
uint8_t dots;
#define POSITION_PROPERTY_IN_SINGLE_BEAM 0x0080
#define POSITION_PROPERTY_IN_DOUBLE_BEAM 0x0100
+#define POSITION_PROPERTY_IN_TRIPLE_BEAM 0x0200
#define POSITION_PROPERTY_FIRST_IN_BEAM 0x0400
-#define POSITION_PROPERTY_LAST_IN_BEAM 0x2000
+#define POSITION_PROPERTY_LAST_IN_BEAM 0x1000
+#define POSITION_PROPERTY_MIDDLE_IN_BEAM 0x2000
uint16_t properties;
uint8_t let_ring;
uint8_t fermenta;
#define LINEDATA_PROPERTY_MUTED 0x02
#define LINEDATA_PROPERTY_HAMMERON_FROM 0x08
#define LINEDATA_PROPERTY_PULLOFF_FROM 0x10
+#define LINEDATA_PROPERTY_DEST_NOWHERE 0x20
#define LINEDATA_PROPERTY_NATURAL_HARMONIC 0x40
#define LINEDATA_PROPERTY_GHOST_NOTE 0x80
uint8_t properties;