diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..c91e428
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,63 @@
+## A streamlined .gitignore for modern .NET projects
+## including temporary files, build results, and
+## files generated by popular .NET tools. If you are
+## developing with Visual Studio, the VS .gitignore
+## https://github.com/github/gitignore/blob/main/VisualStudio.gitignore
+## has more thorough IDE-specific entries.
+##
+## Get latest from https://github.com/github/gitignore/blob/main/Dotnet.gitignore
+
+# Rider
+.idea/
+
+#macOS
+.DS_Store
+
+# Build results
+[Dd]ebug/
+[Dd]ebugPublic/
+[Rr]elease/
+[Rr]eleases/
+x64/
+x86/
+[Ww][Ii][Nn]32/
+[Aa][Rr][Mm]/
+[Aa][Rr][Mm]64/
+bld/
+[Bb]in/
+[Oo]bj/
+[Ll]og/
+[Ll]ogs/
+
+# .NET Core
+project.lock.json
+project.fragment.lock.json
+artifacts/
+
+# ASP.NET Scaffolding
+ScaffoldingReadMe.txt
+
+# NuGet Packages
+*.nupkg
+# NuGet Symbol Packages
+*.snupkg
+
+# dotenv environment variables file
+.env
+
+# Others
+~$*
+*~
+CodeCoverage/
+
+# MSBuild Binary and Structured Log
+*.binlog
+
+# MSTest test Results
+[Tt]est[Rr]esult*/
+[Bb]uild[Ll]og.*
+
+# NUnit
+*.VisualState.xml
+TestResult.xml
+nunit-*.xml
diff --git a/README.md b/README.md
index 4dde303..f6e41ef 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,12 @@
# Resonance
+每一位声音设计师都值得拥有一个好用的资产管理器。
+
助你快速将脑子里的动静转换成DAW里的波形。
## 技术栈
-.NET + Avaloina + Ffmpeg
+.NET + Avaloina + SQLite
## Roadmap
diff --git a/data/SoundMiner/Boom.sqlite b/data/SoundMiner/Boom.sqlite
new file mode 100644
index 0000000..11c15ce
Binary files /dev/null and b/data/SoundMiner/Boom.sqlite differ
diff --git a/data/SoundMiner/Dialog.sqlite b/data/SoundMiner/Dialog.sqlite
new file mode 100644
index 0000000..0b410cf
Binary files /dev/null and b/data/SoundMiner/Dialog.sqlite differ
diff --git a/data/SoundMiner/Music.sqlite b/data/SoundMiner/Music.sqlite
new file mode 100644
index 0000000..6a8b9e8
Binary files /dev/null and b/data/SoundMiner/Music.sqlite differ
diff --git a/data/basehead.xlsx b/data/basehead.xlsx
new file mode 100644
index 0000000..fb27ec6
Binary files /dev/null and b/data/basehead.xlsx differ
diff --git a/data/表结构分析.md b/data/表结构分析.md
new file mode 100644
index 0000000..8fd0ddf
--- /dev/null
+++ b/data/表结构分析.md
@@ -0,0 +1,191 @@
+让我整理一下这些字段的含义:
+
+1. id - 主键ID
+2. path - 原始导入路径
+3. filename - 带扩展名的文件名
+4. description - 文件自带描述
+5. length - 音频长度(时长)
+6. bit_depth - 位深度(如16bit, 24bit)
+7. channels - 声道数(单声道/立体声/环绕声)
+8. date_added - 导入日期
+9. sample_rate - 采样率(如44.1kHz, 48kHz)
+10. type - 文件类型(如WAV, MP3, AIFF等)
+11. cd_title - CD标题
+12. artist - 艺术家
+13. coding_history - 编码历史
+14. original_date - 原始日期
+15. originator_ref - 来源引用
+16. originator - 来源/创作者
+17. timecode - 时间码
+18. subcategory - 子分类
+19. category - 分类
+20. comments - 注释
+21. episode - 剧集/集数
+22. frame_rate - 帧率
+23. group - 分组
+24. library - 音频库
+25. location - 位置/地点
+26. project_name - 项目名称
+27. rating - 评分
+28. tape - 磁带
+29. scene - 场景
+30. sync_point - 同步点
+31. take - 录音条次
+32. track_title - 曲目标题
+33. composer - 作曲家
+34. designer - 设计师
+35. publisher - 出版商
+36. folder - 文件夹
+37. genre - 流派/风格
+38. keywords - 关键词
+39. copyright - 版权
+40. recordist - 录音师
+41. manufacturer - 制造商
+42. notes - 备注
+43. microphone - 麦克风
+44. directory - 目录
+45. origination_time - 创建时间
+46. unique_id - 唯一标识符
+47. bpm - 每分钟节拍数
+48. mood - 情绪/氛围
+49. short_id - 短ID
+50. cue_number - 提示号
+51. style - 风格
+52. markers - 标记点
+53. is_edited - 是否已编辑
+54. is_split - 是否已分割
+ 55-62. user1-user8 - 用户自定义字段
+
+我会为用户提供一个详细的分析报告。
+
+我来为您分析这个音频管理软件的表结构。根据字段名称和数据类型,这是一个专业的**音频资产管理系统**的数据库结构,类似于 SoundMiner、BaseHead 等专业音频库管理软件。
+
+## 字段含义分析
+
+### 📌 基础标识字段
+
+
+
+| 字段名 | 类型 | 含义说明 |
+| ----------- | ------- | ---------------------------------------------- |
+| `id` | integer | **主键ID**,音频文件的唯一数字标识符 |
+| `unique_id` | text | **全局唯一标识符**,通常为UUID,用于跨系统识别 |
+| `short_id` | text | **短ID**,便于人工识别或显示的简短标识 |
+
+### 📁 文件存储字段
+
+
+
+| 字段名 | 类型 | 含义说明 |
+| ----------- | ---- | ---------------------------------------------------- |
+| `path` | text | **原始导入路径**,音频文件被导入时的完整文件路径 |
+| `filename` | text | **文件名**,包含扩展名的音频文件名称(如 sound.wav) |
+| `folder` | text | **文件夹**,文件所在的文件夹名称 |
+| `directory` | text | **目录**,文件的存储目录路径 |
+
+### 🎵 音频技术参数
+
+
+
+| 字段名 | 类型 | 含义说明 |
+| ------------- | ------- | -------------------------------------------------------- |
+| `length` | real | **时长**,音频文件的播放长度(通常以秒为单位) |
+| `bit_depth` | integer | **位深度**,音频采样位深(如 16、24、32 bit) |
+| `channels` | integer | **声道数**,如 1=单声道、2=立体声、6=5.1环绕声 |
+| `sample_rate` | integer | **采样率**,如 44100、48000、96000 Hz |
+| `type` | text | **文件类型**,音频格式(WAV、MP3、AIFF、FLAC等) |
+| `bpm` | real | **节拍速度**,每分钟节拍数,用于音乐类音频 |
+| `frame_rate` | text | **帧率**,视频同步用的时间基准(如 24fps、25fps、30fps) |
+| `timecode` | integer | **时间码**,用于音视频同步的时间戳信息 |
+
+### 📝 元数据描述字段
+
+
+
+| 字段名 | 类型 | 含义说明 |
+| ------------- | ------------ | ---------------------------------------------------- |
+| `description` | text | **描述**,音频内容的文字说明 |
+| `category` | text | **分类**,音频的大类(如:音效、音乐、对白、环境音) |
+| `subcategory` | text | **子分类**,更细分的类别(如:交通→汽车→引擎) |
+| `genre` | text | **流派**,音乐风格分类(如:摇滚、古典、电子) |
+| `style` | text | **风格**,更具体的风格描述 |
+| `mood` | text | **情绪**,音频传达的情感氛围(如:紧张、欢快、悲伤) |
+| `keywords` | text | **关键词**,用于搜索的标签,多个关键词通常用逗号分隔 |
+| `rating` | decimal(5.3) | **评分**,音频质量或推荐度评分(如 0-5星) |
+
+### 👤 创作者信息字段
+
+
+
+| 字段名 | 类型 | 含义说明 |
+| ---------------- | ---- | -------------------------------- |
+| `artist` | text | **艺术家**,表演者或演奏者名称 |
+| `composer` | text | **作曲家**,音乐创作者 |
+| `designer` | text | **设计师**,音效设计师名称 |
+| `recordist` | text | **录音师**,现场录音人员 |
+| `publisher` | text | **出版商**,发行方或版权持有方 |
+| `manufacturer` | text | **制造商**,音频库或设备的制作方 |
+| `originator` | text | **来源方**,原始创建者或来源机构 |
+| `originator_ref` | text | **来源引用**,原始来源的参考编号 |
+
+### 🎬 项目制作字段
+
+
+
+| 字段名 | 类型 | 含义说明 |
+| -------------- | ------- | -------------------------------------- |
+| `project_name` | text | **项目名称**,所属制作项目 |
+| `library` | text | **音频库**,所属音效库或音乐库的名称 |
+| `cd_title` | text | **CD标题**,原始CD专辑名称 |
+| `track_title` | text | **曲目标题**,音乐或音轨的标题 |
+| `episode` | text | **剧集**,所属剧集或系列编号 |
+| `scene` | text | **场景**,对应的影视场景标识 |
+| `take` | text | **条次**,录音的版本号或拍摄条次 |
+| `tape` | text | **磁带**,原始磁带编号(历史遗留字段) |
+| `cue_number` | integer | **提示号**,播放列表或乐谱中的编号 |
+| `sync_point` | integer | **同步点**,用于音视频同步的参考点 |
+
+### 📋 管理与状态字段
+
+
+
+| 字段名 | 类型 | 含义说明 |
+| ------------------ | ------- | -------------------------------------------------- |
+| `date_added` | date | **导入日期**,音频入库的时间 |
+| `original_date` | text | **原始日期**,音频创建或录制的日期 |
+| `origination_time` | text | **创建时间**,音频文件的原始创建时间 |
+| `is_edited` | integer | **是否已编辑**,布尔值(0=否,1=是) |
+| `is_split` | integer | **是否已分割**,布尔值,标记是否从长文件中分割出来 |
+| `location` | text | **位置**,录音地点或存储位置 |
+| `group` | text | **分组**,用于组织管理的分组标识 |
+| `markers` | text | **标记点**,音频内的关键时间点标记 |
+
+### 📄 备注与版权字段
+
+
+
+| 字段名 | 类型 | 含义说明 |
+| ---------------- | ---- | -------------------------------------- |
+| `comments` | text | **注释**,用户或系统添加的备注 |
+| `notes` | text | **备注**,额外的说明信息 |
+| `copyright` | text | **版权**,版权声明信息 |
+| `coding_history` | text | **编码历史**,BWF格式的编码历史记录 |
+| `microphone` | text | **麦克风**,录音使用的麦克风型号或设置 |
+
+### 🔧 用户自定义字段
+
+
+
+| 字段名 | 类型 | 含义说明 |
+| ----------------- | ---- | ------------------------------------------------------------ |
+| `user1` ~ `user8` | text | **用户自定义字段**,共8个预留字段,供用户根据实际需求自定义用途 |
+
+## 总结
+
+这是一个**专业级音频资产管理系统**的完整表结构,主要特点:
+
+1. **符合广播级标准**:包含 BWF(Broadcast Wave Format)标准字段如 `coding_history`、`originator`、`timecode` 等
+2. **支持影视后期制作**:有 `scene`、`take`、`episode`、`sync_point` 等影视制作相关字段
+3. **音乐管理功能完善**:包含 `bpm`、`mood`、`genre`、`composer` 等音乐元数据
+4. **灵活扩展性**:预留了8个用户自定义字段
+5. **版权管理支持**:包含 `copyright`、`publisher`、`manufacturer` 等版权相关字段
\ No newline at end of file
diff --git a/src/Core/Core.csproj b/src/Core/Core.csproj
new file mode 100644
index 0000000..62178bc
--- /dev/null
+++ b/src/Core/Core.csproj
@@ -0,0 +1,14 @@
+
+
+
+ net10.0
+ enable
+ enable
+
+
+
+
+
+
+
+
diff --git a/src/Core/FileMeta.cs b/src/Core/FileMeta.cs
new file mode 100644
index 0000000..9be6747
--- /dev/null
+++ b/src/Core/FileMeta.cs
@@ -0,0 +1,211 @@
+namespace OCES.Resonance.Core;
+
+///
+/// 音频文件元数据实体类,对应音频资产管理系统中的文件记录
+///
+public class FileMeta
+{
+ /// 主键ID,音频文件的唯一数字标识符
+ public int Id { get; set; }
+
+ /// 全局唯一标识符,通常为UUID,用于跨系统识别
+ public string UniqueId { get; set; }
+
+ /// 文件的MD5值,用于查重
+ public string Md5 { get; set; }
+
+ /// 短ID,便于人工识别或显示的简短标识
+ public string? ShortId { get; set; }
+
+ /// 原始导入路径,音频文件被导入时的完整文件路径
+ public string Path { get; set; }
+
+ /// 文件名,包含扩展名的音频文件名称(如 sound.wav)
+ public string Filename { get; set; }
+
+ /// 文件夹,文件所在的文件夹名称
+ public string Folder { get; set; }
+
+ /// 目录,文件的存储目录路径
+ public string Directory { get; set; }
+
+ /// 时长,音频文件的播放长度(通常以秒为单位)
+ public double Duration { get; set; }
+
+ public int TotalSamples { get; set; }
+
+ /// 位深度,音频采样位深(如 16、24、32 bit)
+ public int BitDepth { get; set; }
+
+ /// 声道数,如 1=单声道、2=立体声、6=5.1环绕声
+ public int Channels { get; set; }
+
+ /// 采样率,如 44100、48000、96000 Hz
+ public int SampleRate { get; set; }
+
+ /// 文件类型,音频格式(WAV、MP3、AIFF、FLAC等)
+ public string Type { get; set; }
+
+ /// 节拍速度,每分钟节拍数,用于音乐类音频
+ public double? Bpm { get; set; }
+
+ /// 帧率,视频同步用的时间基准(如 24fps、25fps、30fps)
+ public string? FrameRate { get; set; }
+
+ /// 时间码,用于音视频同步的时间戳信息
+ public int? Timecode { get; set; }
+
+ /// 描述,音频内容的文字说明
+ public string? Description { get; set; }
+
+ /// 分类,音频的大类(如:音效、音乐、对白、环境音)
+ public string? Category { get; set; }
+
+ /// 子分类,更细分的类别(如:交通→汽车→引擎)
+ public string? Subcategory { get; set; }
+
+ /// CatId
+ public string? CatId { get; set; }
+
+ public string? CategoryFull { get; set; }
+
+ /// 流派,音乐风格分类(如:摇滚、古典、电子)
+ public string? Genre { get; set; }
+
+ /// 风格,更具体的风格描述
+ public string? Style { get; set; }
+
+ /// 情绪,音频传达的情感氛围(如:紧张、欢快、悲伤)
+ public string? Mood { get; set; }
+
+ /// 关键词,用于搜索的标签,多个关键词通常用逗号分隔
+ public string? Keywords { get; set; }
+
+ /// 评分,音频质量或推荐度评分(如 0-5星)
+ public decimal? Rating { get; set; }
+
+ /// 艺术家,表演者或演奏者名称
+ public string? Artist { get; set; }
+
+ /// 作曲家,音乐创作者
+ public string? Composer { get; set; }
+
+ /// 设计师,音效设计师名称
+ public string? Designer { get; set; }
+
+ /// 录音师,现场录音人员
+ public string? Recordist { get; set; }
+
+ /// 出版商,发行方或版权持有方
+ public string? Publisher { get; set; }
+
+ /// 制造商,音频库或设备的制作方
+ public string? Manufacturer { get; set; }
+
+ /// 来源方,原始创建者或来源机构
+ public string? Originator { get; set; }
+
+ /// 来源引用,原始来源的参考编号
+ public string? OriginatorRef { get; set; }
+
+ /// 项目名称,所属制作项目
+ public string? ProjectName { get; set; }
+
+ /// 音频库,所属音效库或音乐库的名称
+ public string? Library { get; set; }
+
+ /// CD标题,原始CD专辑名称
+ public string? CdTitle { get; set; }
+
+ /// 曲目标题,音乐或音轨的标题
+ public string? TrackTitle { get; set; }
+
+ /// 剧集,所属剧集或系列编号
+ public string? Episode { get; set; }
+
+ /// 场景,对应的影视场景标识
+ public string? Scene { get; set; }
+
+ /// 条次,录音的版本号或拍摄条次
+ public string? Take { get; set; }
+
+ /// 磁带,原始磁带编号(历史遗留字段)
+ public string? Tape { get; set; }
+
+ /// 提示号,播放列表或乐谱中的编号
+ public int? CueNumber { get; set; }
+
+ /// 同步点,用于音视频同步的参考点
+ public int? SyncPoint { get; set; }
+
+ /// 导入日期,音频入库的时间
+ public DateTime DateAdded { get; set; }
+
+ /// 修改日期,音频创建或录制的日期
+ public DateTime OriginalModificationDate { get; set; }
+
+ /// 创建时间,音频文件的原始创建时间
+ public DateTime OriginationTime { get; set; }
+
+ public DateTime? ReleaseDate { get; set; }
+
+ public string? TrackYear { get; set; }
+
+ /// 是否已编辑,布尔值(0=否,1=是)
+ public bool? IsEdited { get; set; }
+
+ /// 是否已分割,布尔值,标记是否从长文件中分割出来
+ public int? IsSplit { get; set; }
+
+ /// 位置,录音地点或存储位置
+ public string? Location { get; set; }
+
+ /// 分组,用于组织管理的分组标识
+ public string? Group { get; set; }
+
+ /// 标记点,音频内的关键时间点标记
+ public string? Markers { get; set; }
+
+ /// 注释,用户或系统添加的备注
+ public string? Comments { get; set; }
+
+ /// 备注,额外的说明信息
+ public string? Notes { get; set; }
+
+ /// 版权,版权声明信息
+ public string? Copyright { get; set; }
+
+ /// 编码历史,BWF格式的编码历史记录
+ public string? CodingHistory { get; set; }
+
+ /// 麦克风,录音使用的麦克风型号或设置
+ public string? Microphone { get; set; }
+
+ public string? MicPerspective { get; set; }
+
+ // 用户自定义字段(共8个)
+
+ /// 用户自定义字段1
+ public string? User1 { get; set; }
+
+ /// 用户自定义字段2
+ public string? User2 { get; set; }
+
+ /// 用户自定义字段3
+ public string? User3 { get; set; }
+
+ /// 用户自定义字段4
+ public string? User4 { get; set; }
+
+ /// 用户自定义字段5
+ public string? User5 { get; set; }
+
+ /// 用户自定义字段6
+ public string? User6 { get; set; }
+
+ /// 用户自定义字段7
+ public string? User7 { get; set; }
+
+ /// 用户自定义字段8
+ public string? User8 { get; set; }
+}
diff --git a/src/Resonance.sln b/src/Resonance.sln
new file mode 100644
index 0000000..d559589
--- /dev/null
+++ b/src/Resonance.sln
@@ -0,0 +1,16 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Core", "Core\Core.csproj", "{855F941D-5DA0-479A-BB79-5C7CE72CD34B}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {855F941D-5DA0-479A-BB79-5C7CE72CD34B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {855F941D-5DA0-479A-BB79-5C7CE72CD34B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {855F941D-5DA0-479A-BB79-5C7CE72CD34B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {855F941D-5DA0-479A-BB79-5C7CE72CD34B}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+EndGlobal
diff --git a/src/Resonance.sln.DotSettings b/src/Resonance.sln.DotSettings
new file mode 100644
index 0000000..0bf801c
--- /dev/null
+++ b/src/Resonance.sln.DotSettings
@@ -0,0 +1,2 @@
+
+ True
\ No newline at end of file