diff --git a/include/gapk/formats.h b/include/gapk/formats.h
index 5233550..cac0956 100644
--- a/include/gapk/formats.h
+++ b/include/gapk/formats.h
@@ -44,6 +44,7 @@
 	FMT_RAWPCM_S16LE,
 
 	/* Texas Instrument calypso/locosto buffer format */
+	FMT_TI_HR,
 	FMT_TI_FR,
 
 	_FMT_MAX,
diff --git a/src/fmt_ti.c b/src/fmt_ti.c
index 862d694..e2bb14a 100644
--- a/src/fmt_ti.c
+++ b/src/fmt_ti.c
@@ -35,6 +35,62 @@
 
 
 static int
+ti_hr_from_canon(uint8_t *dst, const uint8_t *src)
+{
+	int i, voiced;
+	const uint16_t *bit_mapping;
+
+	memset(dst, 0x00, 33); /* Not even half the bits are written, so we pre-clear */
+
+	voiced = (msb_get_bit(src, 34) << 1) | msb_get_bit(src, 35);
+
+	bit_mapping = voiced ?
+		&gsm620_voiced_bitorder[0] :
+		&gsm620_unvoiced_bitorder[0] ;
+
+	for (i=0; i<112; i++) {
+		int si = bit_mapping[i];
+		int di = i >= 95 ? i+4 : i;
+		lsb_put_bit(dst, di, msb_get_bit(src, si));
+	}
+
+	return 0;
+}
+
+static int
+ti_hr_to_canon(uint8_t *dst, const uint8_t *src)
+{
+	int i, voiced;
+	const uint16_t *bit_mapping;
+
+	voiced = (msb_get_bit(src, 94) << 1) | msb_get_bit(src, 93);
+
+	bit_mapping = voiced ?
+		&gsm620_voiced_bitorder[0] :
+		&gsm620_unvoiced_bitorder[0] ;
+
+	for (i=0; i<112; i++) {
+		int si = i >= 95 ? i+4 : i;
+		int di = bit_mapping[i];
+		msb_put_bit(dst, di, msb_get_bit(src, si));
+	}
+
+	return 0;
+}
+
+const struct format_desc fmt_ti_hr = {
+	.type			= FMT_TI_HR,
+	.codec_type		= CODEC_HR,
+	.name			= "ti-hr",
+	.description		= "Texas Instrument HR TCH/H buffer format",
+
+	.frame_len		= 33,
+	.conv_from_canon	= ti_hr_from_canon,
+	.conv_to_canon		= ti_hr_to_canon,
+};
+
+
+static int
 ti_fr_from_canon(uint8_t *dst, const uint8_t *src)
 {
 	int i;
diff --git a/src/formats.c b/src/formats.c
index 997ea05..af21705 100644
--- a/src/formats.c
+++ b/src/formats.c
@@ -31,6 +31,7 @@
 extern const struct format_desc fmt_racal_fr;
 extern const struct format_desc fmt_racal_efr;
 extern const struct format_desc fmt_rawpcm_s16le;
+extern const struct format_desc fmt_ti_hr;
 extern const struct format_desc fmt_ti_fr;
 
 static const struct format_desc *supported_formats[_FMT_MAX] = {
@@ -43,6 +44,7 @@
 	[FMT_RACAL_FR]		= &fmt_racal_fr,
 	[FMT_RACAL_EFR]		= &fmt_racal_efr,
 	[FMT_RAWPCM_S16LE]	= &fmt_rawpcm_s16le,
+	[FMT_TI_HR]		= &fmt_ti_hr,
 	[FMT_TI_FR]		= &fmt_ti_fr,
 };
 
