For any inquiries, please send me an email at aqtq314«monkeytail»outlook«decimal»com.
- iBMSC is a Be-Music Source (BMS) creator and editor with graphical user interface.
- It supports most present BMS files.
- It has customizable themes to adapt to most BMS players and simulators.
- It is multilingual.
- It supports longnote visualization, and has two input modes to help users from both BMSE and NT.
- It supports automatic calculations of BPM.
- It supports perfect free grid.
- It is free!
- .NET Framework 2.0+
As I'm having much less time and energy to maintain iBMSC than I was (and for quite a few years already), I'm releasing the source code to the public for those interested in modifying it or just curious.
Though please be aware that since I was a giant noob when I was doing this project (I only started receiving a proper computer science course after version 2.4 is released), don't expect quality code. This codebase has pretty much every bad programming practice you can imagine - god class, stringly typed objects, gotos, no collection type other than arrays (not even arraylists), just to name a few. After releasing version 3.0, I realized how much of a pain it is to maintain such a codebase, so I started rewriting the whole program using better libraries and coding practices, which until now is still far from being done due to increasing amount of school work and other life responsibilities coming along, forcing me to move on with my life.
Also, please allow me to express my gratitude to those who has been putting up with my shit all along, and my apologies for those I have been tantalizing with my never-coming-out revamped version of this project, especially hitkey and Nekokan, without whom there will never be version 3.0, and Freefire and other 4A members, without whom there will never be version 2.0.
And finally, about the development of a revamped version ... I know it has been a long time, and frankly, it's still in a very early development stage and I don't know if I will ever be able to come back to it. If you are curious and want to take a look at its current state, send me an email. I can also release that code in case of multiple requests.
-
hitkey (http://hitkey.nekokan.dyndns.info/)
- For providing a very detailed BMS format specification (http://hitkey.nekokan.dyndns.info/cmds.htm)
- For in-deep program testing and debugging
- For creating and hosting Japanese version of iBMSC website
- For helping to spread out iBMSC
- For making several feature requests and improvement suggestions
-
Nekokan (http://nekokan.dyndns.info/)
- For providing Japanese locale file
- For providing a theme file for Feeling PoMu
- For helping to spread out iBMSC
- For program testing and debugging
-
MusicGameLAB (http://cafe.naver.com/createrhythm)
- For providing Korean locale file
- For helping to spread out iBMSC
-
Freefire
- For helping to spread out iBMSC
- For program debugging
-
the DtTvB
- For program debugging
- For making feature requests
-
Wen-DB
- For icon designing
And (sorted in alphabetic order)
- BJmz
- BombTrack
- C.R.S
- enderdz
- 复仇天神
- ILSPQ
- 獠牙
- L.-S.P.
- Origin (Fantasy_Date)
- Rogue
- 银羽のK’
-
iBMSC 3.0.5 Delta (Nov 9, 2013):
- Added Korean locale (Thanks to MusicGameLAB)
-
iBMSC 3.0.4 Delta (Aug 7, 2012):
- Fixed errors changing beat under BMSE-mode with "Scale to measure length" options (Thanks to Nekokan)
-
iBMSC 3.0.3 Delta (May 12, 2012):
- Removed right-click menu (Thanks to BJmz)
-
iBMSC 3.0.2 Delta (Mar 9, 2012):
- Fixed bugs while saving files (Thanks to enderdz)
-
iBMSC 3.0.1 Delta (Feb 19, 2012):
- Redrawn About dialog (Thanks to Wen-DB)
-
iBMSC 3.0 Delta (Jan 12, 2012):
I apologize for not updating anything during more than 4 months ... But starting from version 3.x, iBMSC is no longer specialized for o2mania but is aiming to support all rhythm games.
Many thanks to hitkey, who has provided me a very detailed specification about bms format in general, and without whom I can never do this much.
Also many thanks to Nekokan, who has created a Japanese locale and provided a iBMSC theme for Feeling PoMu.
This is probably the biggest update I have ever made to iBMSC, at least up until now. I added a main menu, support for non-quadruple measure, support for LnObj, etc., and most importantly, I have rewritten more than half of the entire code for optimization after I have started my university life and have really learned some stuff in programming.
As a result of that, most files from previous versions of iBMSC will not be compatible will not compatible with iBMSC 3.0, including all *.cff, *.th, *.lol, *.ibmsc files. You don't have to worry about most of them, but you might need to reconfigure the program as it will not be automatically imported.
Many thanks to hitkey and Nekokan; iBMSC 3.0 will never come out without these guys.
- Added support for non-quadruple measures
- Added support and visualization for LnObj
- Added support for flow control expressions
- Added expansion code tab and fixed automatic deletion of unrecognized expressions
- Added feature of disabling vertical moves
- Added feature to CTRL + drag to duplicate notes
- Added menu bar
- Added drag-and-drop support for opening files and for importing #WAV
- Added vertical scroll lock for split panel
- Added show/hide options for most parts of the program
- Added support for dynamically add/remove language files
- Added shortcut 0
- Added checking updates
- Added player options panel
- Optimized most part of the code
- Reorganized some of the user interface
- Changed *.ibmsc file format
- Rewritten statistics dialog
- Changed all *.cff, *.th and *.lol files to *.xml
- Improved compatibility for *.bms file
- Added middle-click-and-auto-scroll
- Combined mirror to note conversion
- Deleted automatic addition of #STAGEFILE
- Fixed some saving errors
- Fixed problem that adding many #WAV definitions will slow down the program
- Fixed some problems reading clipboard from BMSE
- Fixed rounding errors while copying to clipboard
- etc ...
-
iBMSC 2.4 Delta (Sep 5, 2011):
- Added support for perfect free grid division
- Added feature of locking waveform to background music
- Changed format of vertical position of notes to floating point
- Fixed bug of unpreserved void B column while saving (thanks to the DtTvB)
- Fixed unhandled exception making constant speed in BMSE mode (thanks to enderdz)
- Fixed faulty import of grid settings while opening ibmsc files
-
iBMSC 2.3.1 Delta (Aug 10, 2011):
- Set always-on-top dialog box to import autosaved files (thanks to Freefire)
- Fixed bug of undeleted autosaved files while running the application via bms files
- Fixed lost window if previously closed minimized
-
iBMSC 2.3 Delta (Aug 6, 2011):
- Added MyO2 toolbox (Chinese only)
- Added Constant-Speed-Maker and force 64th-grid alignment
- Added some number key shortcuts
- Added feature to stop previewing while clicked onto the editing panel (thanks to C.R.S)
- Changed default autosave interval to 2 minutes
- Fixed faulty check and import of autosaved files while running multi-instance
- Fixed bug of unable to import longnotes from *.ibmsc files
- Fixed faulty keysound preview while clicked on BPM
-
iBMSC 2.2 Delta (Jul 5, 2011):
- Added manipulation over #WAV list including moving items up & down, adding & removing multi-items, etc (thanks to Origin)
- Added autosave feature
- Added *.ibmsc filetype
- Added *.bme, *.bml file association
- Added some keyboard shortcuts
- Added some toolbar and menu icons
- Removed STAGEFILE code setting
- Extended maximum magnification to 16x
- Simplified #WAV list display to support fast locating using keyboard
- Fixed bad selection box while using mouse wheel (thanks to Origin)
- Fixed faulty overwriting of previous customizations while installing new version
-
iBMSC 2.1 Delta (May 27, 2011):
- Added feature of changing BPM by mouse-dragging and by value (thanks to the DtTvB and BJmz)
- Added import of StepMania files
- Enhanced control over time selection
- Removed filters of *.txt and . in open-file dialog
- Fixed missing prompt to save after undo/redo (thanks to 獠牙)
- Fixed faulty prompt to save after opening bms files
- Fixed some unsaved visual preferences
- Fixed bad calculations of speed changer (thanks to the DtTvB)
- Fixed bug of no selected item in #WAV list
- Fixed unhandled exception while closing the main form before splash screen closes (thanks to enderdz)
- Fixed errors finding, undoing and mirroring longnotes under NT mode
- Fixed bug of start up window outside screen
-
iBMSC 2.0.5 Delta (May 8, 2011):
- Enhanced focus in editing panel
- Enhanced mouse wheel operations with split panels
- Enhanced control over time selection
- Reduced size of start up form
- Fixed bad word-wrapping in visual options window
- Fixed bad calculations of BPM changer under NT mode
- Fixed bad longnote pairing under BMSE mode (thanks to enderdz)
-
iBMSC 2.0 Delta (May 6, 2011):
- Changed gamma test to delta test and enabled public download
- Added splash screen
- Changed default longnote color
- Added three skins: O2Mania, IIDX, MyO2_4K
- Fixed invalid default skin
-
iBMSC 1.9.8 Gamma (Apr 30, 2011):
- Added Time Selection Tool for NT mode and BPM changer
- Added feature of converting to short note for NT mode
- Added feature of inserting and deleting measures for NT mode
- Added feature of saving and changing themes
- Added saving on exception
- Added feature of show filenames on notes
- Added player options panel
- Improved error checking for overlaid notes
- Optimized control over time selection area
- Fixed overflow exception for time selection tool
- Fixed beeping while previewing
- Fixed nonfunctional file association settings
-
iBMSC 1.9.7 Gamma (Apr 23, 2011):
- Added Find/Delete/Replace tool (thanks to Rogue)
- Added Insert/Remove a measure tool (thanks to ILSPQ)
- Added hidden note conversion and label modification tool
- Added General Options Dialog and combined file association button
- Added beep-while-save feature
- Added BPM and STOP extension settings and fixed BPM overflow error in O2Mania (thanks to 复仇天神)
- Added feature of popping up warnings if BPM or STOP overflows
- Combined longnote conversion buttons
- Reorganized Visual Options dialog
- Canceled checking preview error
-
iBMSC 1.9.6 Gamma (Apr 10, 2011):
- Added mouse wheel options
- Fixed frozen .bms file icon
-
iBMSC 1.9.5 Gamma (Apr 9, 2011)
- Added feature to set file association
- Added shortcuts Home, End, F1 (thanks to Bombtrack)
- Changed icon (thanks to Wen-DB)
- Added double play mode and recovered STOP, BGA, LAYER, POOR columns (thanks to 银羽のK’)
- Added "Number of B columns" settings
- Added error checking for overlaid notes for BMSE mode
- Reduced auto-added measures to 10
- Set mouse wheel to half measure
- Changed BPM input prompt
- Changed part of waveform settings
- Moved BPM changer to status bar
- Fixed some translation errors
- Splitted config files to three files
- Removed "New from Code"
- Fixed problems previewing ogg files
- Fixed selection box error under NT mode
- Fixed problems about undo/redo under NT mode
- Fixed unsynchronized initial BPM
-
iBMSC 1.9 Gamma (Mar 18, 2011)
- Reorganized UI (canceled left options panel, moved status bar to the bottom, etc) (thanks to Freefire)
- Added Note count in headers panel (thanks to Freefire)
- Added feature of showing filename on title bar
- Added menu for language selection
- Fixed undeleted temporary file for preview
- Fixed nonfunctional write tool under NT mode
- Fixed nonfunctional cancel button in visual options panel
-
iBMSC 1.8.5 Gamma (Mar 13, 2011)
- Improved compatibility of wav files for waveform display (thanks to Freefire)
- Added initial BPM settings in headers panel (thanks to Freefire)
- Added recent files
- Added feature of automatically saving options on exit
- Fixed some nonfunctional cancel buttons
-
iBMSC 1.8.1 Gamma (Mar 12, 2011)
- Added multilanguage support
-
iBMSC 1.8 Gamma (Mar 12, 2011)
- Renamed BMSC to iBMSC
- Added NT input mode (thanks to L.-S.P.)
- Combined some toolbar buttons and changed all large icons to small ones
- Canceled "Index" in status panel
- Fixed undo problem while pasting
- Fixed uncleared undo/redo commands while creating new / opening files
iBMSC was called BMSC before version 1.8 since I was not aware of the existance of BMSC by TIX Laboratory.
-
BMSC 1.7 Beta (Feb 27, 2011) I thought split panel was quite easy to implement but it took me an entire day to do that =_=
- Added split panel
- Optimized startup speed
- Fixed unsupported Asian characters
-
BMSC 1.6.5 Beta (Feb 25, 2011)
- Added preview-on-click feature (thanks to L.-S.P.)
- Changed some icons
- Added prompt-to-save while creating new / opening files
- Improved control over selection box and time selection area
-
BMSC 1.6 Beta (Feb 19, 2011)
- Added player options panel
- Improved file I/O
- Added prompt-to-save on exit
- Reorganized UI
- Fixed exceptions importing audio files
- Fixed undo problem when overwriting notes
-
BMSC 1.5 Beta (Feb 13, 2011)
- Added Visual Options dialog (I wrote a color picker for that since the default one does not support transparency)
- Added About box
- Changed waveform to semitransparent
- Fixed undo problem of storm and mirror
-
BMSC 1.4.1 Beta (Feb 5, 2011)
- Fixed some problems adding notes
- Fixed errors on minimize
- Fixed undo problem of initial BPM
-
BMSC 1.4 Beta (Feb 5, 2011)
- Undo (Ctrl + Z), Redo (Ctrl + Y)
- Fixed display problems while changing short notes to long notes
-
BMSC 1.3 Beta (Jan 30, 2011)
- Waveform display now supports BPM changes and supports most .wav files
- Added BPM changer for Time Selection Tool
- Fixed longnote display problems while applying storm and mirror
- Fixed exceptions on minimize
-
BMSC 1.2 Beta (Jan 23, 2011)
- Removed unneeded columns
- Added waveform display (only supports .wav files in PCM format, which must be 2-channel, 16-bit, 44100 Hz, 1411 Kbps)
- Fixed some note display errors
- Fixed bpm errors reading empty bms files
-
BMSC 1.1 Beta (Jan 22, 2011)
- Statistics
- Time Selection Tool
- Conversion: to ShortNote, to LongNote, between ShortNote and LongNote
- Conversion: storm, mirror
- Status panel
-
BMSC 1.0 Beta (Jan 12, 2011)
- New (Ctrl + N), Open (Ctrl + O), Save (Ctrl + S)
- Cut (Ctrl + X), Copy (Ctrl + C), Paste (Ctrl + V)
- Select tool (F2), Write tool (F3)
- Grid zoom
- Supports uBMplay
- supports file association (can be opened directly from bms files once default program is set)
- LongNote display
- LongNote error check -_,-
- All columns supports LongNotes (but will still be saved as ShortNote if not in A columns)
- Arrow keys to move notes, Ctrl + Arrow keys to slightly move notes
- Double click notes to modify labels
- Middle click to drag view
- Compatible with BMSE clipboard data
- Initial BPM is the note on the bottom left corner, position always fixed
- Canceled expansion code tab and will automatically add #STAGEFILE and #LNTYPE 01
- Reduced B columns to 14
- Canceled Eraser tool; right-click to delete notes
BMS Speed Adjuster was first created only to change the BPM from 100 to 150 and to 200 for a bms named "A Minor in Presto" (快速a小调), created by Freefire, and the program was never published. However, this inspired me for creating a new bms editor since I was not satisfied with the features current bms editors could provide me, and there exists several compatibility issues between BMSE and O2Mania. After I slightly added some features to BMS Speed Adjuster, I realized that VB6 is quite ancient and has a lot of limitations, so I decided to learn VB.NET, and started writing iBMSC on January 3, 2011.
-
BMS Speed Adjuster v0.4 (Nov 25, 2010)
- (lost)
-
BMS Speed Adjuster v0.3 (Nov 21, 2010)
- (lost)
-
BMS Speed Adjuster v0.2 (Jul 19, 2010)
- Cursor
- BPM Quantizer and Rounder
- Modifying BPM individually
- Changing BPM by multiple
-
BMS Speed Adjuster v0.1 (Jun 1, 2010)
- Import / Export BMS files
- Changing BPM for an entire BMS file