---
name: "MusicDataRawTransformer"
mode: "api"
versionRequirements:
  - { name: "@ray-js/panel-sdk", version: "1.0.0" }
title: "MusicDataRawTransformer"
summary: "MusicDataRawTransformer 用于解析照明 music_data_raw DP，实现音乐数据的解析与格式化。"
questions:
  - "MusicDataRawTransformer 的作用是什么？"
  - "MusicDataRawTransformer 如何解析音乐数据？"
  - "MusicDataRawTransformer 的输入和输出是什么？"
  - "MusicDataRawTransformer 的转换规则是什么？"
---

## MusicDataRawTransformer

> [VERSION] @ray-js/panel-sdk >= 1.0.0

> 💡 适用于灯类产品的音乐律动 Raw DP（如 music_data_raw），与  不同的是：
> - 协议格式为 mode(2位) + h(4位) + s(2位) + v(2位)，共 10 位十六进制字符
> - h/s/v 使用原始值域（h: 0-360, s: 0-100, v: 0-100）

### 描述

音乐律动 Raw 类型 DP 协议转换器，用于音乐律动数据与 Raw DP 十六进制协议的双向转换

### 参数

`Params`

| 参数 | 类型 | 必填 | 描述 |
| --- | --- | --- | --- |
| `uuid` | `string` | 否 | DP 标识符，默认为 'music_data_raw' |
| `defaultValue` | `IMusicData` | 否 | 默认音乐数据，当解析失败时返回此值 |

### 返回值

类型: `MusicDataRawTransformer`

MusicDataRawTransformer 实例

#### 方法

| 方法名 | 说明 |
| --- | --- |
| `parser` | 将 Raw DP 十六进制字符串解析为音乐律动数据对象 |
| `formatter` | 将音乐律动数据对象格式化为 Raw DP 十六进制字符串 |

### 引用对象

##### `type` IMusicData

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `mode` | `number` | 最高位:0表示直接输出，1表示渐变； |
| `h` | `number` | 色度：0-360 |
| `s` | `number` | 饱和：0-100 |
| `v` | `number` | 明度：0-100 |


### 示例代码

#### 示例

```ts
import { MusicDataRawTransformer } from '@ray-js/panel-sdk';

const transformer = new MusicDataRawTransformer();
// 解析 Raw DP 字符串
const data = transformer.parser('0000dc6464');
// => { mode: 0, h: 220, s: 100, v: 100 }

// 格式化为 Raw DP 字符串
const dpStr = transformer.formatter({ mode: 0, h: 120, s: 80, v: 90 });
```
