ApolloTab 0.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,79 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ ============================================================
4
+ ApolloTab - Guitar Pro 文件渲染与播放引擎库
5
+ ============================================================
6
+
7
+ 功能概述:
8
+ 本库提供 Guitar Pro (.gp3/.gp4/.gp5/.gpx) 文件的完整解析、渲染与播放能力,
9
+ 可作为独立库发布到 PyPI,也可集成到 TAB Score Viewer 主程序中。
10
+
11
+ 核心模块:
12
+ - parser: GTP文件解析 (PyGuitarPro → 中介数据模型)
13
+ - models: 数据模型定义 (Note/Beat/Measure/Track/Song)
14
+ - renderer: 六线谱渲染引擎 (QPainter → QPixmap)
15
+ - audio: 音频播放引擎 (MIDI转换 + FluidSynth合成)
16
+ - player: 高级播放器封装 (整合解析/渲染/音频/时间线的完整流程)
17
+ - utils: 常量定义与辅助函数
18
+
19
+ 快速开始:
20
+ # 方式1: 使用高级API(推荐,最简单)
21
+ from ApolloTab import GTPPlayer
22
+
23
+ player = GTPPlayer()
24
+ player.load("my_song.gp5")
25
+ images = player.render_track(0) # 渲染六线谱
26
+ player.init_audio() # 初始化音频(可选)
27
+ player.play() # 开始播放
28
+
29
+ # 方式2: 分步操作(更灵活)
30
+ from ApolloTab import parse_gtp, TabRenderer, SynthEngine, MidiConverter
31
+
32
+ song = parse_gtp("my_song.gp5")
33
+ print(f"标题: {song.title}, 音轨: {song.track_count}")
34
+
35
+ # 方式3: 一键渲染
36
+ from ApolloTab import render_gtp
37
+ pages = render_gtp("my_song.gp5", track_index=0)
38
+
39
+ 依赖库:
40
+ - guitarpro >= 0.11 # Guitar Pro 文件解析(开源项目: pyguitarpro)
41
+ - PyQt5 >= 5.15 # GUI渲染(用于生成QPixmap图像)
42
+ - pyfluidsynth >= 1.4.0 # 音频合成(可选,仅音频播放时需要)
43
+
44
+ 版本: v0.2.0 (Phase 4 - 库化重构 + 高级播放器API)
45
+ 许可证: Mozilla Public License 2.0 (MPL-2.0)
46
+ 创建日期: 2026-06-06
47
+ 最后更新: 2026-06-12
48
+ ============================================================
49
+ """
50
+
51
+ from .parser import GTPParser, parse_gtp
52
+ from .models import GTPNote, GTPBeat, GTPMeasure, GTPTrack, GTPSong
53
+ from .renderer import TabRenderer, render_gtp, TabLayoutEngine
54
+ from .audio import MidiConverter, MidiEvent, SynthEngine
55
+ from .player import GTPPlayer, create_gtp_player, render_gtp_to_images
56
+ from .utils import (
57
+ StandardTunings, NoteDuration, TechniqueType,
58
+ RenderConfig, TECHNIQUE_ABBREVIATION, get_string_name
59
+ )
60
+
61
+ __version__ = "0.2.0"
62
+ __all__ = [
63
+ # ===== 高级API(推荐)=====
64
+ 'GTPPlayer', # 高级播放器封装类(整合所有GTP功能)
65
+ 'create_gtp_player', # 工厂函数:快速创建播放器实例
66
+ 'render_gtp_to_images', # 便捷函数:一键渲染为图像列表
67
+
68
+ # 解析器
69
+ 'GTPParser', 'parse_gtp',
70
+ # 数据模型
71
+ 'GTPNote', 'GTPBeat', 'GTPMeasure', 'GTPTrack', 'GTPSong',
72
+ # 渲染器
73
+ 'TabRenderer', 'render_gtp', 'TabLayoutEngine',
74
+ # 音频播放
75
+ 'MidiConverter', 'MidiEvent', 'SynthEngine',
76
+ # 工具
77
+ 'StandardTunings', 'NoteDuration', 'TechniqueType',
78
+ 'RenderConfig', 'TECHNIQUE_ABBREVIATION', 'get_string_name',
79
+ ]