Skip to content

Commit 16c2c64

Browse files
committed
v0.92: support PMS. fix MP3 keysounds not working in the RPP. update README.
1 parent 2718021 commit 16c2c64

File tree

2 files changed

+18
-17
lines changed

2 files changed

+18
-17
lines changed

README.md

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
# BMS to REAPER project (RPP) converter
2-
Written by shockdude in Python 3.7 \
3-
REAPER is property of Cockos Incorporated: https://www.reaper.fm/ \
4-
Uses pydub: https://github.com/jiaaro/pydub
2+
Convert BMS charts (also BME, BML, PMS, DTX) into REAPER projects.
53

6-
Usage: `python bms_to_rpp.py chart_file.bms [output_file.rpp]` \
7-
Or just drag-and-drop the chart onto `bms_to_rpp.py`
4+
Usage: Drag-and-drop the chart onto `bms_to_rpp.py` \
5+
Or use the command line: `python bms_to_rpp.py chart_file.bms [output_project.rpp]`
86

9-
Supports WAV (PCM) keysounds. \
10-
If your BMS does not include WAV keysounds, recommend converting them to WAV first. \
7+
WAV keysounds recommended. \
8+
If your BMS does not include WAV keysounds, convert them to WAV first. \
119
OGG/MP3 keysounds supported only if ffmpeg is installed, and processing will be very slow.
1210

13-
Supports BPMs, extended BPMs, measure lengths/time signatures, and STOPs. \
14-
Negative BPMs untested. Other BMS features may not be implemented.
15-
16-
Major props to the BMS command memo: http://hitkey.nekokan.dyndns.info/cmds.htm
11+
Written by shockdude in Python 3.7 \
12+
REAPER is property of Cockos Incorporated: https://www.reaper.fm/ \
13+
Uses pydub: https://github.com/jiaaro/pydub \
14+
Major props to the BMS command memo: http://hitkey.nekokan.dyndns.info/cmds.htm \
1715
Major props to the DTX data format spec: https://ja.osdn.net/projects/dtxmania/wiki/DTX%2520data%2520format

bms_to_rpp.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
# You should have received a copy of the GNU General Public License
1616
# along with this program. If not, see <https://www.gnu.org/licenses/>.
1717

18-
VERSION = "v0.9"
18+
VERSION = "v0.92"
1919

2020
import sys
2121
import os
@@ -37,17 +37,18 @@ def usage():
3737
MP3_EXT = ".mp3"
3838
RPP_EXT = ".rpp"
3939

40-
BMS_EXTS = (".bms", ".bme", ".bml")
40+
BMS_EXTS = (".bms", ".bme", ".bml", ".pms")
4141
DTX_EXT = ".dtx"
4242

4343
# measures per second = 240.0 / BPM
4444
MPS_FACTOR = 240.0
4545

4646
# channel info
47-
BMS_PLAYABLE_CHANNELS = ("01", "11", "12", "13", "14", "15", "16", "18", "19",
48-
"21", "22", "23", "24", "25", "26", "28", "29",
49-
"51", "52", "53", "54", "55", "56", "58", "59",
50-
"61", "62", "63", "64", "65", "66", "68", "69")
47+
BMS_PLAYABLE_CHANNELS = ("01",
48+
"11", "12", "13", "14", "15", "16", "17", "18", "19",
49+
"21", "22", "23", "24", "25", "26", "27", "28", "29",
50+
"51", "52", "53", "54", "55", "56", "57", "58", "59",
51+
"61", "62", "63", "64", "65", "66", "67", "68", "69")
5152
DTX_DRUM_CHANNELS = ("11", "12", "13", "14", "15", "16", "17", "18", "19", "1A")
5253
DTX_GUITAR_CHANNELS = ("20", "21", "22", "23", "24", "25", "26", "27")
5354
DTX_BASS_CHANNELS = ("A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7")
@@ -647,6 +648,8 @@ def parse_keysounds(chart_file, out_file):
647648
rpp_out.write("<SOURCE WAVE\n")
648649
elif keysound_ext.lower() == OGG_EXT:
649650
rpp_out.write("<SOURCE VORBIS\n")
651+
elif keysound_ext.lower() == MP3_EXT:
652+
rpp_out.write("<SOURCE MP3\n")
650653
else:
651654
# unknown audio type
652655
rpp_out.write("<SOURCE\n")

0 commit comments

Comments
 (0)