├── LICENSE ├── README.md ├── previmg.png └── source ├── .gitignore ├── Bitmap ├── Head.bmp ├── Left.bmp ├── Loupe_MINUS.bmp ├── Loupe_PLUS.bmp ├── Music.bmp ├── Note.bmp ├── Number.bmp ├── Pan.bmp ├── Play.bmp ├── Right.bmp ├── Solo.bmp ├── Stop.bmp ├── button_track_1.bmp ├── button_track_2.bmp ├── button_track_3.bmp ├── button_track_4.bmp ├── button_track_5.bmp ├── button_track_6.bmp ├── button_track_7.bmp ├── button_track_8.bmp ├── button_track_E.bmp ├── button_track_I.bmp ├── button_track_Q.bmp ├── button_track_R.bmp ├── button_track_T.bmp ├── button_track_U.bmp ├── button_track_W.bmp ├── button_track_Y.bmp ├── cursor.cur ├── cursor1.cur ├── ffff.ico ├── icon1.ico ├── org_back.bmp ├── org_back_step.bmp ├── org_end.bmp ├── org_home.bmp ├── org_next.bmp ├── org_next_step.bmp ├── org_play.bmp ├── org_stop.bmp └── wave100.bmp ├── Click.cpp ├── Click.h ├── DefOrg.h ├── DlgEZCopy.cpp ├── DlgEdit.cpp ├── DlgPlayer.cpp ├── DlgSet.cpp ├── DlgTrack.cpp ├── Filer.cpp ├── Filer.h ├── Gdi.cpp ├── Gdi.h ├── MainPut.cpp ├── Mouse.cpp ├── Mouse.h ├── Org13.dep ├── Org13.dsp ├── Org13.dsw ├── Org13.mak ├── Org13.vcxproj ├── Org13.vcxproj.filters ├── Org13.vcxproj.user ├── Org3.sln ├── OrgData.cpp ├── OrgData.h ├── OrgEdit.cpp ├── OrgFile.cpp ├── OrgFileMIDI.cpp ├── OrgPlay.cpp ├── Script1.rc ├── Scroll.cpp ├── Scroll.h ├── Setting.h ├── Sound.cpp ├── Sound.h ├── Timer.h ├── Wave ├── Cat.wav ├── Metro01.wav ├── Metro02.wav └── WAVE100.wdb ├── WinMain.cpp ├── WinTimer.cpp ├── help.txt ├── miniaudio.h ├── resource.h ├── resource.hm ├── rxoFunction.cpp └── rxoFunction.h /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2018, Rxo Inverse , Studio Pixel 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | * Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | * Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | * Neither the name of the copyright holder nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 🎼 *OrgMaker 3* 2 | 3 | **Fork of A music sequencer for retro video games** 4 | 5 | This does not use a MIDI device. 6 | This original library was created by [Studio Pixel](http://studiopixel.sakura.ne.jp/) in 1999, and was used in [Cave Story](https://www.cavestory.org/). 7 | 8 | 9 | 10 | ## 🍒 Introduction 11 | 12 | For the '[STARGAZER](http://www5b.biglobe.ne.jp/~kiss-me/aji/star/)' development, I inherited this library from [Studio Pixel](http://studiopixel.sakura.ne.jp/) in 2003. 13 | However, due to a change in my private life, it became inactive for a long time. On the other hand, the world expansion of Cave Story has increased the number of people requesting Organya. 14 | 15 | ----- 16 | 17 | Mastermind. 18 | 19 | In 1999, Studio Pixel produced the song composition software Organya for "Cave Story". 20 | 21 | >Basically an internal development tool, and not very general, occasionally people who say "I like the shabby sound for some reason" and even "I want to compose with that sound" call this tool perfect. 22 | 23 | With the world knowing the development of "Cave Story", which increased the demand of Organya, and the same for the opinion for how to manage the source code, I have made the repository public. 24 | 25 | ----- 26 | 27 | 28 | ## 🍒 Features 29 | * 8 Melody Tracks + 8 Drum Trucks (Each track can play one sound) 30 | * Melody track can be selected from 100 waveforms. 31 | * Drum track can be selected from 42 sounds. 32 | * Melody track can adjust the frequency to make the chorus effect. 33 | * You can loop music indefinitely in a measure. 34 | * Export to standard MIDI file (GM format). 35 | 36 | 37 | # 🍎 Requirements 38 | ## 🍒 for Utilization 39 | * Windows 7 and up (Vista may work but is untested) 40 | * [DirectX](https://www.google.com/search?q=DirectX+download) 8, 9, 10, 11, maybe more... 41 | * [Microsoft Visual C++ 6.0 Runtime Components](https://www.google.com/search?q=visual+c%2B%2B+6+runtime+library+download) 42 | 43 | ## 🍒 for Development 44 | * Microsoft Visual Studio 2022 45 | 46 | 47 | # 🍎 Usage 48 | 49 | If you only use OrgMaker, check out the [releases](https://github.com/Strultz/orgmaker-3/releases). 50 | 51 | # 🍎 Contributing 52 | This project was developed in Japanese. The help file is also written in Japanese as well. 53 | I translated it to English anyway 54 | 55 | # 🍎 Author 56 | ## 🍒 OrgMaker 3 57 | 58 | [Strultz](http://www.strultz.com/) 59 | ## 🍒 Twei 60 | 61 | [Rxo Inverse](http://www5b.biglobe.ne.jp/~kiss-me/aji/) (首謀) 62 | 63 | ## 🍒 Original 64 | [Studio Pixel](http://studiopixel.sakura.ne.jp/) (開発室Pixel) 65 | 66 | # 🍎 License 67 | BSD 68 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /previmg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/previmg.png -------------------------------------------------------------------------------- /source/.gitignore: -------------------------------------------------------------------------------- 1 | Debug/ 2 | Release/ 3 | .vs/ -------------------------------------------------------------------------------- /source/Bitmap/Head.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/Head.bmp -------------------------------------------------------------------------------- /source/Bitmap/Left.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/Left.bmp -------------------------------------------------------------------------------- /source/Bitmap/Loupe_MINUS.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/Loupe_MINUS.bmp -------------------------------------------------------------------------------- /source/Bitmap/Loupe_PLUS.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/Loupe_PLUS.bmp -------------------------------------------------------------------------------- /source/Bitmap/Music.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/Music.bmp -------------------------------------------------------------------------------- /source/Bitmap/Note.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/Note.bmp -------------------------------------------------------------------------------- /source/Bitmap/Number.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/Number.bmp -------------------------------------------------------------------------------- /source/Bitmap/Pan.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/Pan.bmp -------------------------------------------------------------------------------- /source/Bitmap/Play.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/Play.bmp -------------------------------------------------------------------------------- /source/Bitmap/Right.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/Right.bmp -------------------------------------------------------------------------------- /source/Bitmap/Solo.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/Solo.bmp -------------------------------------------------------------------------------- /source/Bitmap/Stop.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/Stop.bmp -------------------------------------------------------------------------------- /source/Bitmap/button_track_1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/button_track_1.bmp -------------------------------------------------------------------------------- /source/Bitmap/button_track_2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/button_track_2.bmp -------------------------------------------------------------------------------- /source/Bitmap/button_track_3.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/button_track_3.bmp -------------------------------------------------------------------------------- /source/Bitmap/button_track_4.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/button_track_4.bmp -------------------------------------------------------------------------------- /source/Bitmap/button_track_5.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/button_track_5.bmp -------------------------------------------------------------------------------- /source/Bitmap/button_track_6.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/button_track_6.bmp -------------------------------------------------------------------------------- /source/Bitmap/button_track_7.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/button_track_7.bmp -------------------------------------------------------------------------------- /source/Bitmap/button_track_8.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/button_track_8.bmp -------------------------------------------------------------------------------- /source/Bitmap/button_track_E.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/button_track_E.bmp -------------------------------------------------------------------------------- /source/Bitmap/button_track_I.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/button_track_I.bmp -------------------------------------------------------------------------------- /source/Bitmap/button_track_Q.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/button_track_Q.bmp -------------------------------------------------------------------------------- /source/Bitmap/button_track_R.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/button_track_R.bmp -------------------------------------------------------------------------------- /source/Bitmap/button_track_T.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/button_track_T.bmp -------------------------------------------------------------------------------- /source/Bitmap/button_track_U.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/button_track_U.bmp -------------------------------------------------------------------------------- /source/Bitmap/button_track_W.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/button_track_W.bmp -------------------------------------------------------------------------------- /source/Bitmap/button_track_Y.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/button_track_Y.bmp -------------------------------------------------------------------------------- /source/Bitmap/cursor.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/cursor.cur -------------------------------------------------------------------------------- /source/Bitmap/cursor1.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/cursor1.cur -------------------------------------------------------------------------------- /source/Bitmap/ffff.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/ffff.ico -------------------------------------------------------------------------------- /source/Bitmap/icon1.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/icon1.ico -------------------------------------------------------------------------------- /source/Bitmap/org_back.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/org_back.bmp -------------------------------------------------------------------------------- /source/Bitmap/org_back_step.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/org_back_step.bmp -------------------------------------------------------------------------------- /source/Bitmap/org_end.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/org_end.bmp -------------------------------------------------------------------------------- /source/Bitmap/org_home.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/org_home.bmp -------------------------------------------------------------------------------- /source/Bitmap/org_next.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/org_next.bmp -------------------------------------------------------------------------------- /source/Bitmap/org_next_step.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/org_next_step.bmp -------------------------------------------------------------------------------- /source/Bitmap/org_play.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/org_play.bmp -------------------------------------------------------------------------------- /source/Bitmap/org_stop.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/org_stop.bmp -------------------------------------------------------------------------------- /source/Bitmap/wave100.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Bitmap/wave100.bmp -------------------------------------------------------------------------------- /source/Click.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Click.cpp -------------------------------------------------------------------------------- /source/Click.h: -------------------------------------------------------------------------------- 1 | 2 | void ClickProcL(WPARAM wParam=NULL, LPARAM lParam=NULL); 3 | void ClickProcR(WPARAM wParam=NULL, LPARAM lParam=NULL); 4 | void ClickProcM(WPARAM wParam=NULL, LPARAM lParam=NULL); 5 | void ClearDrag(); 6 | void MouseDrag(WPARAM wParam, LPARAM lParam); 7 | void LButtonUP(WPARAM wParam, LPARAM lParam); 8 | void RButtonUP(WPARAM wParam, LPARAM lParam); 9 | void SelectAll(int FullTrack); 10 | void SelectReset(); 11 | 12 | -------------------------------------------------------------------------------- /source/DefOrg.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/DefOrg.h -------------------------------------------------------------------------------- /source/DlgEZCopy.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/DlgEZCopy.cpp -------------------------------------------------------------------------------- /source/DlgEdit.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/DlgEdit.cpp -------------------------------------------------------------------------------- /source/DlgPlayer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/DlgPlayer.cpp -------------------------------------------------------------------------------- /source/DlgSet.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/DlgSet.cpp -------------------------------------------------------------------------------- /source/DlgTrack.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/DlgTrack.cpp -------------------------------------------------------------------------------- /source/Filer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Filer.cpp -------------------------------------------------------------------------------- /source/Filer.h: -------------------------------------------------------------------------------- 1 | char GetFileNameSave(HWND hwnd,char *title); 2 | char GetFileNameMIDI(HWND hwnd,char *title, char *filename); 3 | char GetFileNameLoad(HWND hwnd,char *title/*, int OpenType=0*/); 4 | char GetFileNameExportWav(HWND hwnd, char* title, char* filename); 5 | -------------------------------------------------------------------------------- /source/Gdi.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Gdi.cpp -------------------------------------------------------------------------------- /source/Gdi.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Gdi.h -------------------------------------------------------------------------------- /source/MainPut.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/MainPut.cpp -------------------------------------------------------------------------------- /source/Mouse.cpp: -------------------------------------------------------------------------------- 1 | #include "Setting.h" 2 | #include "Mouse.h" 3 | void MouseData::GetMousePosition(long *x,long *y) 4 | { 5 | GetCursorPos(&point); 6 | ScreenToClient(hWnd,&point); 7 | *x = point.x; 8 | *y = point.y; 9 | } 10 | -------------------------------------------------------------------------------- /source/Mouse.h: -------------------------------------------------------------------------------- 1 | typedef struct MouseData{ 2 | private: 3 | POINT point; 4 | public: 5 | void GetMousePosition(long *x,long *y); 6 | }MOUSEDATA; 7 | extern MOUSEDATA mouse_data; 8 | 9 | -------------------------------------------------------------------------------- /source/Org13.dep: -------------------------------------------------------------------------------- 1 | # Microsoft Developer Studio Generated Dependency File, included by Org13.mak 2 | 3 | .\Click.cpp : \ 4 | ".\DefOrg.h"\ 5 | ".\Mouse.h"\ 6 | ".\OrgData.h"\ 7 | ".\rxoFunction.h"\ 8 | ".\Scroll.h"\ 9 | ".\Setting.h"\ 10 | "c:\program files (x86)\microsoft visual studio\vc98\include\basetsd.h"\ 11 | 12 | 13 | .\DlgEdit.cpp : \ 14 | ".\DefOrg.h"\ 15 | ".\Gdi.h"\ 16 | ".\OrgData.h"\ 17 | ".\rxoFunction.h"\ 18 | ".\Setting.h"\ 19 | ".\Sound.h"\ 20 | "c:\program files (x86)\microsoft visual studio\vc98\include\basetsd.h"\ 21 | 22 | 23 | .\DlgEZCopy.cpp : \ 24 | ".\DefOrg.h"\ 25 | ".\Gdi.h"\ 26 | ".\OrgData.h"\ 27 | ".\rxoFunction.h"\ 28 | ".\Scroll.h"\ 29 | ".\Setting.h"\ 30 | ".\Sound.h"\ 31 | ".\Timer.h"\ 32 | "c:\program files (x86)\microsoft visual studio\vc98\include\basetsd.h"\ 33 | 34 | 35 | .\DlgPlayer.cpp : \ 36 | ".\DefOrg.h"\ 37 | ".\Gdi.h"\ 38 | ".\OrgData.h"\ 39 | ".\Scroll.h"\ 40 | ".\Setting.h"\ 41 | ".\Sound.h"\ 42 | ".\Timer.h"\ 43 | "c:\program files (x86)\microsoft visual studio\vc98\include\basetsd.h"\ 44 | 45 | 46 | .\DlgSet.cpp : \ 47 | ".\DefOrg.h"\ 48 | ".\Gdi.h"\ 49 | ".\Mouse.h"\ 50 | ".\OrgData.h"\ 51 | ".\rxoFunction.h"\ 52 | ".\Setting.h"\ 53 | ".\Sound.h"\ 54 | "c:\program files (x86)\microsoft visual studio\vc98\include\basetsd.h"\ 55 | 56 | 57 | .\DlgTrack.cpp : \ 58 | ".\DefOrg.h"\ 59 | ".\Gdi.h"\ 60 | ".\OrgData.h"\ 61 | ".\rxoFunction.h"\ 62 | ".\Setting.h"\ 63 | ".\Sound.h"\ 64 | ".\Timer.h"\ 65 | "c:\program files (x86)\microsoft visual studio\vc98\include\basetsd.h"\ 66 | 67 | 68 | .\Filer.cpp : \ 69 | ".\DefOrg.h"\ 70 | ".\OrgData.h"\ 71 | ".\rxoFunction.h"\ 72 | ".\Setting.h"\ 73 | "c:\program files (x86)\microsoft visual studio\vc98\include\basetsd.h"\ 74 | 75 | 76 | .\Gdi.cpp : \ 77 | ".\DefOrg.h"\ 78 | ".\OrgData.h"\ 79 | ".\Setting.h"\ 80 | "c:\program files (x86)\microsoft visual studio\vc98\include\basetsd.h"\ 81 | 82 | 83 | .\MainPut.cpp : \ 84 | ".\DefOrg.h"\ 85 | ".\Gdi.h"\ 86 | ".\OrgData.h"\ 87 | ".\rxoFunction.h"\ 88 | ".\Scroll.h"\ 89 | ".\Setting.h"\ 90 | "c:\program files (x86)\microsoft visual studio\vc98\include\basetsd.h"\ 91 | 92 | 93 | .\Mouse.cpp : \ 94 | ".\Mouse.h"\ 95 | ".\Setting.h"\ 96 | "c:\program files (x86)\microsoft visual studio\vc98\include\basetsd.h"\ 97 | 98 | 99 | .\OrgData.cpp : \ 100 | ".\DefOrg.h"\ 101 | ".\Gdi.h"\ 102 | ".\OrgData.h"\ 103 | ".\rxoFunction.h"\ 104 | ".\Setting.h"\ 105 | ".\Sound.h"\ 106 | "c:\program files (x86)\microsoft visual studio\vc98\include\basetsd.h"\ 107 | 108 | 109 | .\OrgEdit.cpp : \ 110 | ".\DefOrg.h"\ 111 | ".\Gdi.h"\ 112 | ".\OrgData.h"\ 113 | ".\rxoFunction.h"\ 114 | ".\Setting.h"\ 115 | "c:\program files (x86)\microsoft visual studio\vc98\include\basetsd.h"\ 116 | 117 | 118 | .\OrgFile.cpp : \ 119 | ".\DefOrg.h"\ 120 | ".\Gdi.h"\ 121 | ".\OrgData.h"\ 122 | ".\rxoFunction.h"\ 123 | ".\Scroll.h"\ 124 | ".\Setting.h"\ 125 | ".\Sound.h"\ 126 | "c:\program files (x86)\microsoft visual studio\vc98\include\basetsd.h"\ 127 | 128 | 129 | .\OrgFileMIDI.cpp : \ 130 | ".\DefOrg.h"\ 131 | ".\Gdi.h"\ 132 | ".\OrgData.h"\ 133 | ".\rxoFunction.h"\ 134 | ".\Scroll.h"\ 135 | ".\Setting.h"\ 136 | ".\Sound.h"\ 137 | "c:\program files (x86)\microsoft visual studio\vc98\include\basetsd.h"\ 138 | 139 | 140 | .\OrgPlay.cpp : \ 141 | ".\DefOrg.h"\ 142 | ".\OrgData.h"\ 143 | ".\Scroll.h"\ 144 | ".\Setting.h"\ 145 | ".\Sound.h"\ 146 | "c:\program files (x86)\microsoft visual studio\vc98\include\basetsd.h"\ 147 | 148 | 149 | .\rxoFunction.cpp : \ 150 | ".\Click.h"\ 151 | ".\DefOrg.h"\ 152 | ".\Filer.h"\ 153 | ".\Gdi.h"\ 154 | ".\Mouse.h"\ 155 | ".\OrgData.h"\ 156 | ".\Scroll.h"\ 157 | ".\Setting.h"\ 158 | ".\Sound.h"\ 159 | ".\Timer.h"\ 160 | "c:\program files (x86)\microsoft visual studio\vc98\include\basetsd.h"\ 161 | 162 | 163 | .\Script1.rc : \ 164 | ".\Bitmap\button_track_1.bmp"\ 165 | ".\Bitmap\button_track_2.bmp"\ 166 | ".\Bitmap\button_track_3.bmp"\ 167 | ".\Bitmap\button_track_4.bmp"\ 168 | ".\Bitmap\button_track_5.bmp"\ 169 | ".\Bitmap\button_track_6.bmp"\ 170 | ".\Bitmap\button_track_7.bmp"\ 171 | ".\Bitmap\button_track_8.bmp"\ 172 | ".\Bitmap\button_track_E.bmp"\ 173 | ".\Bitmap\button_track_I.bmp"\ 174 | ".\Bitmap\button_track_Q.bmp"\ 175 | ".\Bitmap\button_track_R.bmp"\ 176 | ".\Bitmap\button_track_T.bmp"\ 177 | ".\Bitmap\button_track_U.bmp"\ 178 | ".\Bitmap\button_track_W.bmp"\ 179 | ".\Bitmap\button_track_Y.bmp"\ 180 | ".\Bitmap\ffff.ico"\ 181 | ".\Bitmap\Loupe_MINUS.bmp"\ 182 | ".\Bitmap\Loupe_PLUS.bmp"\ 183 | ".\Bitmap\Music.bmp"\ 184 | ".\Bitmap\Note.bmp"\ 185 | ".\Bitmap\Number.bmp"\ 186 | ".\Bitmap\org_back.bmp"\ 187 | ".\Bitmap\org_home.bmp"\ 188 | ".\Bitmap\org_next.bmp"\ 189 | ".\Bitmap\org_play.bmp"\ 190 | ".\Bitmap\org_stop.bmp"\ 191 | ".\Bitmap\Pan.bmp"\ 192 | ".\Bitmap\Solo.bmp"\ 193 | ".\Bitmap\wave100.bmp"\ 194 | ".\resource.hm"\ 195 | ".\Wave\Bass01.wav"\ 196 | ".\Wave\Bass02.wav"\ 197 | ".\Wave\Bass03.wav"\ 198 | ".\Wave\Bass04.wav"\ 199 | ".\Wave\Bass05.wav"\ 200 | ".\Wave\Bass06.wav"\ 201 | ".\Wave\Bass07.wav"\ 202 | ".\Wave\Bass08.wav"\ 203 | ".\Wave\Bell.wav"\ 204 | ".\Wave\cat.wav"\ 205 | ".\Wave\Clap01.wav"\ 206 | ".\Wave\Crash.wav"\ 207 | ".\Wave\Crash02.wav"\ 208 | ".\Wave\HiClose.wav"\ 209 | ".\Wave\HiClose03.wav"\ 210 | ".\Wave\HiClose04.wav"\ 211 | ".\Wave\HiClose05.wav"\ 212 | ".\Wave\HiClose2.wav"\ 213 | ".\Wave\HiOpen.wav"\ 214 | ".\Wave\HiOpen03.wav"\ 215 | ".\Wave\HiOpen04.wav"\ 216 | ".\Wave\HiOpen2.wav"\ 217 | ".\Wave\OrcDrm01.wav"\ 218 | ".\Wave\Per01.wav"\ 219 | ".\Wave\Per02.wav"\ 220 | ".\Wave\Per03.wav"\ 221 | ".\Wave\Pesi01.wav"\ 222 | ".\Wave\Quick01.wav"\ 223 | ".\Wave\RevSym01.wav"\ 224 | ".\Wave\Ride01.wav"\ 225 | ".\Wave\Snare01.wav"\ 226 | ".\Wave\Snare02.wav"\ 227 | ".\Wave\Snare03.wav"\ 228 | ".\Wave\Snare04.wav"\ 229 | ".\Wave\Snare05.wav"\ 230 | ".\Wave\Snare06.wav"\ 231 | ".\Wave\Snare07.wav"\ 232 | ".\Wave\Snare08.wav"\ 233 | ".\Wave\Tom01.wav"\ 234 | ".\Wave\Tom02.wav"\ 235 | ".\Wave\Tom03.wav"\ 236 | ".\Wave\Tom04.wav"\ 237 | ".\Wave\Tom05.wav"\ 238 | ".\Wave\Metro01.wav"\ 239 | ".\Wave\Metro02.wav"\ 240 | ".\Wave\Wave.dat"\ 241 | ".\help.txt"\ 242 | 243 | 244 | .\Scroll.cpp : \ 245 | ".\DefOrg.h"\ 246 | ".\OrgData.h"\ 247 | ".\Scroll.h"\ 248 | ".\Setting.h"\ 249 | "c:\program files (x86)\microsoft visual studio\vc98\include\basetsd.h"\ 250 | 251 | 252 | .\Sound.cpp : \ 253 | ".\DefOrg.h"\ 254 | ".\Setting.h"\ 255 | "c:\program files (x86)\microsoft visual studio\vc98\include\basetsd.h"\ 256 | 257 | 258 | .\WinMain.cpp : \ 259 | ".\Click.h"\ 260 | ".\DefOrg.h"\ 261 | ".\Filer.h"\ 262 | ".\Gdi.h"\ 263 | ".\Mouse.h"\ 264 | ".\OrgData.h"\ 265 | ".\rxoFunction.h"\ 266 | ".\Scroll.h"\ 267 | ".\Setting.h"\ 268 | ".\Sound.h"\ 269 | ".\Timer.h"\ 270 | "c:\program files (x86)\microsoft visual studio\vc98\include\basetsd.h"\ 271 | 272 | 273 | .\WinTimer.cpp : \ 274 | ".\DefOrg.h"\ 275 | ".\OrgData.h"\ 276 | "c:\program files (x86)\microsoft visual studio\vc98\include\basetsd.h"\ 277 | 278 | -------------------------------------------------------------------------------- /source/Org13.dsp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Org13.dsp -------------------------------------------------------------------------------- /source/Org13.dsw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Org13.dsw -------------------------------------------------------------------------------- /source/Org13.mak: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Org13.mak -------------------------------------------------------------------------------- /source/Org13.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | 14 | 15 | 16 | {CBF755F4-CE8D-438C-B711-BCAA6A826341} 17 | 10.0.22621.0 18 | Org3 19 | 20 | 21 | 22 | Application 23 | v143 24 | false 25 | MultiByte 26 | 27 | 28 | Application 29 | v143 30 | false 31 | MultiByte 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | .\Debug\ 47 | .\Debug\ 48 | true 49 | $(VC_ExecutablePath_x86);$(CommonExecutablePath);C:\Program Files (x86)\Microsoft DirectX 9.0 SDK (Summer 2004)\Utilities 50 | $(VC_IncludePath);$(WindowsSDK_IncludePath);C:\Program Files (x86)\Microsoft DirectX 9.0 SDK (Summer 2004)\Include 51 | $(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);C:\Program Files (x86)\Microsoft DirectX 9.0 SDK (Summer 2004)\Lib 52 | OrgMaker 53 | 54 | 55 | .\Release\ 56 | .\Release\ 57 | false 58 | $(VC_IncludePath);$(WindowsSDK_IncludePath);C:\Program Files (x86)\Microsoft DirectX 9.0 SDK (Summer 2004)\Include 59 | $(VC_ExecutablePath_x86);$(CommonExecutablePath);C:\Program Files (x86)\Microsoft DirectX 9.0 SDK (Summer 2004)\Utilities 60 | $(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);C:\Program Files (x86)\Microsoft DirectX 9.0 SDK (Summer 2004)\Lib 61 | OrgMaker 62 | 63 | 64 | 65 | MultiThreadedDebug 66 | Default 67 | true 68 | Disabled 69 | true 70 | Level3 71 | true 72 | EditAndContinue 73 | WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) 74 | .\Debug\ 75 | true 76 | .\Debug\Org13.pch 77 | .\Debug\ 78 | .\Debug\ 79 | EnableFastChecks 80 | 81 | 82 | true 83 | _DEBUG;%(PreprocessorDefinitions) 84 | .\Debug\Org13.tlb 85 | true 86 | Win32 87 | 88 | 89 | 0x0409 90 | _DEBUG;%(PreprocessorDefinitions) 91 | 92 | 93 | true 94 | .\Debug\Org3.bsc 95 | 96 | 97 | true 98 | true 99 | Windows 100 | ddraw.lib;dsound.lib;winmm.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) 101 | false 102 | 103 | 104 | 105 | 106 | MultiThreaded 107 | Default 108 | true 109 | true 110 | MaxSpeed 111 | true 112 | Level3 113 | WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) 114 | .\Release\ 115 | true 116 | .\Release\Org13.pch 117 | .\Release\ 118 | .\Release\ 119 | 120 | 121 | true 122 | NDEBUG;%(PreprocessorDefinitions) 123 | .\Release\Org13.tlb 124 | true 125 | Win32 126 | 127 | 128 | 0x0409 129 | NDEBUG;%(PreprocessorDefinitions) 130 | 131 | 132 | true 133 | .\Release\Org3.bsc 134 | 135 | 136 | true 137 | Windows 138 | ddraw.lib;ddraw.lib;winmm.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | -------------------------------------------------------------------------------- /source/Org13.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {97df6053-c887-4266-87d0-9f1edf341144} 6 | cpp;c;cxx;rc;def;r;odl;idl;hpj;bat 7 | 8 | 9 | {154d576a-a384-4772-a234-c5f1429570f0} 10 | h;hpp;hxx;hm;inl 11 | 12 | 13 | {8a795531-488d-4edb-8f31-d97d39331372} 14 | ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | {8eb12128-19e1-40db-a9b9-30b2a7b27103} 18 | 19 | 20 | {2fecc35b-2aa7-493e-a83b-72537f46e1fb} 21 | 22 | 23 | 24 | 25 | Source Files 26 | 27 | 28 | Source Files 29 | 30 | 31 | Source Files 32 | 33 | 34 | Source Files 35 | 36 | 37 | Source Files 38 | 39 | 40 | Source Files 41 | 42 | 43 | Source Files 44 | 45 | 46 | Source Files 47 | 48 | 49 | Source Files 50 | 51 | 52 | Source Files 53 | 54 | 55 | Source Files 56 | 57 | 58 | Source Files 59 | 60 | 61 | Source Files 62 | 63 | 64 | Source Files 65 | 66 | 67 | Source Files 68 | 69 | 70 | Source Files 71 | 72 | 73 | Source Files 74 | 75 | 76 | Source Files 77 | 78 | 79 | Source Files 80 | 81 | 82 | Source Files 83 | 84 | 85 | 86 | 87 | Source Files 88 | 89 | 90 | 91 | 92 | Header Files 93 | 94 | 95 | Header Files 96 | 97 | 98 | Header Files 99 | 100 | 101 | Header Files 102 | 103 | 104 | Header Files 105 | 106 | 107 | Header Files 108 | 109 | 110 | Header Files 111 | 112 | 113 | Header Files 114 | 115 | 116 | Header Files 117 | 118 | 119 | Header Files 120 | 121 | 122 | Header Files 123 | 124 | 125 | Header Files 126 | 127 | 128 | Header Files 129 | 130 | 131 | 132 | 133 | Resource Files\Bitmap 134 | 135 | 136 | Resource Files\Bitmap 137 | 138 | 139 | Resource Files\Bitmap 140 | 141 | 142 | Resource Files\Bitmap 143 | 144 | 145 | Resource Files\Bitmap 146 | 147 | 148 | Resource Files\Bitmap 149 | 150 | 151 | Resource Files\Bitmap 152 | 153 | 154 | Resource Files\Bitmap 155 | 156 | 157 | Resource Files\Bitmap 158 | 159 | 160 | Resource Files\Bitmap 161 | 162 | 163 | Resource Files\Bitmap 164 | 165 | 166 | Resource Files\Bitmap 167 | 168 | 169 | Resource Files\Bitmap 170 | 171 | 172 | Resource Files\Bitmap 173 | 174 | 175 | Resource Files\Bitmap 176 | 177 | 178 | Resource Files\Bitmap 179 | 180 | 181 | Resource Files\Bitmap 182 | 183 | 184 | Resource Files\Bitmap 185 | 186 | 187 | Resource Files\Bitmap 188 | 189 | 190 | Resource Files\Bitmap 191 | 192 | 193 | Resource Files\Bitmap 194 | 195 | 196 | Resource Files\Bitmap 197 | 198 | 199 | Resource Files\Bitmap 200 | 201 | 202 | Resource Files\Bitmap 203 | 204 | 205 | Resource Files 206 | 207 | 208 | Resource Files 209 | 210 | 211 | Resource Files 212 | 213 | 214 | Resource Files 215 | 216 | 217 | Resource Files 218 | 219 | 220 | Resource Files 221 | 222 | 223 | Resource Files 224 | 225 | 226 | Resource Files 227 | 228 | 229 | Resource Files 230 | 231 | 232 | Resource Files 233 | 234 | 235 | Resource Files 236 | 237 | 238 | Resource Files 239 | 240 | 241 | Resource Files 242 | 243 | 244 | Resource Files 245 | 246 | 247 | Resource Files 248 | 249 | 250 | 251 | 252 | Resource Files\Wave 253 | 254 | 255 | Resource Files\Wave 256 | 257 | 258 | Resource Files\Wave 259 | 260 | 261 | Resource Files\Wave 262 | 263 | 264 | Resource Files\Wave 265 | 266 | 267 | Resource Files\Wave 268 | 269 | 270 | Resource Files\Wave 271 | 272 | 273 | Resource Files\Wave 274 | 275 | 276 | Resource Files\Wave 277 | 278 | 279 | Resource Files\Wave 280 | 281 | 282 | Resource Files\Wave 283 | 284 | 285 | Resource Files\Wave 286 | 287 | 288 | Resource Files\Wave 289 | 290 | 291 | Resource Files\Wave 292 | 293 | 294 | Resource Files\Wave 295 | 296 | 297 | Resource Files\Wave 298 | 299 | 300 | Resource Files\Wave 301 | 302 | 303 | Resource Files\Wave 304 | 305 | 306 | Resource Files\Wave 307 | 308 | 309 | Resource Files\Wave 310 | 311 | 312 | Resource Files\Wave 313 | 314 | 315 | Resource Files\Wave 316 | 317 | 318 | Resource Files\Wave 319 | 320 | 321 | Resource Files\Wave 322 | 323 | 324 | Resource Files\Wave 325 | 326 | 327 | Resource Files\Wave 328 | 329 | 330 | Resource Files\Wave 331 | 332 | 333 | Resource Files\Wave 334 | 335 | 336 | Resource Files\Wave 337 | 338 | 339 | Resource Files\Wave 340 | 341 | 342 | Resource Files\Wave 343 | 344 | 345 | Resource Files\Wave 346 | 347 | 348 | Resource Files\Wave 349 | 350 | 351 | Resource Files\Wave 352 | 353 | 354 | Resource Files\Wave 355 | 356 | 357 | Resource Files\Wave 358 | 359 | 360 | Resource Files\Wave 361 | 362 | 363 | Resource Files\Wave 364 | 365 | 366 | Resource Files\Wave 367 | 368 | 369 | Resource Files\Wave 370 | 371 | 372 | Resource Files\Wave 373 | 374 | 375 | Resource Files\Wave 376 | 377 | 378 | Resource Files\Wave 379 | 380 | 381 | Resource Files\Wave 382 | 383 | 384 | Resource Files\Wave 385 | 386 | 387 | Resource Files\Wave 388 | 389 | 390 | Resource Files\Wave 391 | 392 | 393 | Resource Files\Wave 394 | 395 | 396 | Resource Files\Wave 397 | 398 | 399 | Resource Files\Wave 400 | 401 | 402 | Resource Files\Wave 403 | 404 | 405 | Resource Files\Wave 406 | 407 | 408 | Resource Files\Wave 409 | 410 | 411 | Resource Files\Wave 412 | 413 | 414 | Resource Files\Wave 415 | 416 | 417 | Resource Files\Wave 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | Resource Files\Bitmap 426 | 427 | 428 | Resource Files\Bitmap 429 | 430 | 431 | Resource Files\Wave 432 | 433 | 434 | -------------------------------------------------------------------------------- /source/Org13.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /source/Org3.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.32901.82 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Org13", "Org13.vcxproj", "{CBF755F4-CE8D-438C-B711-BCAA6A826341}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x86 = Debug|x86 11 | Release|x86 = Release|x86 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {CBF755F4-CE8D-438C-B711-BCAA6A826341}.Debug|x86.ActiveCfg = Debug|Win32 15 | {CBF755F4-CE8D-438C-B711-BCAA6A826341}.Debug|x86.Build.0 = Debug|Win32 16 | {CBF755F4-CE8D-438C-B711-BCAA6A826341}.Release|x86.ActiveCfg = Release|Win32 17 | {CBF755F4-CE8D-438C-B711-BCAA6A826341}.Release|x86.Build.0 = Release|Win32 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {A7546175-1E56-46F0-9057-7D23AFCA8F3E} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /source/OrgData.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/OrgData.cpp -------------------------------------------------------------------------------- /source/OrgData.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/OrgData.h -------------------------------------------------------------------------------- /source/OrgEdit.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/OrgEdit.cpp -------------------------------------------------------------------------------- /source/OrgFile.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/OrgFile.cpp -------------------------------------------------------------------------------- /source/OrgFileMIDI.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/OrgFileMIDI.cpp -------------------------------------------------------------------------------- /source/OrgPlay.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/OrgPlay.cpp -------------------------------------------------------------------------------- /source/Scroll.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Scroll.cpp -------------------------------------------------------------------------------- /source/Scroll.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Scroll.h -------------------------------------------------------------------------------- /source/Setting.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Setting.h -------------------------------------------------------------------------------- /source/Sound.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "Setting.h" 4 | #include "DefOrg.h" 5 | #include "Sound.h" 6 | #include "OrgData.h" 7 | 8 | #define MINIAUDIO_IMPLEMENTATION 9 | #define MA_NO_ENCODING 10 | #include "miniaudio.h" 11 | 12 | #define SE_MAX 512 13 | 14 | // ƒVƒ“ƒ{ƒ‹’è‹`. 15 | #define SMPFRQ 48000 //!< ƒTƒ“ƒvƒŠƒ“ƒOŽü”g”. 16 | #define BUFSIZE ((SMPFRQ * 4) / 10) //!< ƒf[ƒ^ƒoƒbƒtƒ@ƒTƒCƒY (100ms‘Š“–). 17 | 18 | #define MIN(a, b) ((a) < (b) ? (a) : (b)) 19 | #define MAX(a, b) ((a) > (b) ? (a) : (b)) 20 | #define CLAMP(x, y, z) MIN(MAX((x), (y)), (z)) 21 | 22 | static struct S_Sound 23 | { 24 | signed char samples[4]; 25 | long ring; 26 | 27 | signed char* buffer; 28 | size_t frames; 29 | long position; 30 | float sub_position; 31 | float advance_delta; 32 | long silence_count; 33 | bool playing; 34 | bool played_before; 35 | bool looping; 36 | 37 | float volume; 38 | float pan_l; 39 | float pan_r; 40 | float volume_l; 41 | float volume_r; 42 | float target_volume_l; 43 | float target_volume_r; 44 | long vol_ticks; 45 | 46 | signed long stop_in; 47 | 48 | struct S_Sound* next; 49 | }; 50 | 51 | static S_Sound* sound_list_head; 52 | static ma_device device; 53 | static ma_mutex mutex; 54 | static ma_mutex organya_mutex; 55 | 56 | static unsigned long output_frequency; 57 | static unsigned long vol_ticks; 58 | 59 | static unsigned short organya_timer; 60 | static unsigned long organya_countdown; 61 | 62 | static bool exporting = false; 63 | 64 | static inline long mmodi(long x, long n) { return ((x %= n) < 0) ? x + n : x; } 65 | static inline float mmodf(float x, float n) { return ((x = fmodf(x, n)) < 0) ? x + n : x; } 66 | 67 | static float MillibelToScale(long volume) { 68 | volume = CLAMP(volume, -10000, 0); 69 | return pow(10.0, volume / 2000.0); 70 | } 71 | 72 | static void S_SetSoundFrequency(S_Sound* sound, unsigned long long frequency) { 73 | if (sound == NULL) 74 | return; 75 | 76 | ma_mutex_lock(&mutex); 77 | 78 | sound->advance_delta = (float)frequency / output_frequency; 79 | 80 | ma_mutex_unlock(&mutex); 81 | } 82 | 83 | static void S_SetSoundVolume(S_Sound* sound, long volume) { 84 | if (sound == NULL) 85 | return; 86 | 87 | ma_mutex_lock(&mutex); 88 | 89 | sound->volume = MillibelToScale(volume); 90 | 91 | sound->target_volume_l = sound->pan_l * sound->volume; 92 | sound->target_volume_r = sound->pan_r * sound->volume; 93 | 94 | if (!sound->playing || !sound->played_before) { 95 | sound->volume_l = sound->target_volume_l; 96 | sound->volume_r = sound->target_volume_r; 97 | sound->vol_ticks = 0; 98 | } 99 | else { 100 | sound->vol_ticks = vol_ticks; 101 | } 102 | 103 | ma_mutex_unlock(&mutex); 104 | } 105 | 106 | static void S_SetSoundPan(S_Sound* sound, long pan) { 107 | if (sound == NULL) 108 | return; 109 | 110 | ma_mutex_lock(&mutex); 111 | 112 | sound->pan_l = MillibelToScale(-pan); 113 | sound->pan_r = MillibelToScale(pan); 114 | 115 | sound->target_volume_l = sound->pan_l * sound->volume; 116 | sound->target_volume_r = sound->pan_r * sound->volume; 117 | 118 | if (!sound->playing || !sound->played_before) { 119 | sound->volume_l = sound->target_volume_l; 120 | sound->volume_r = sound->target_volume_r; 121 | sound->vol_ticks = 0; 122 | } 123 | else { 124 | sound->vol_ticks = vol_ticks; 125 | } 126 | 127 | ma_mutex_unlock(&mutex); 128 | } 129 | 130 | static S_Sound* S_CreateSound(unsigned int frequency, const unsigned char* samples, size_t length) { 131 | S_Sound* sound = (S_Sound*)malloc(sizeof(S_Sound)); 132 | if (sound == NULL) 133 | return NULL; 134 | 135 | sound->buffer = (signed char*)malloc(length); 136 | if (sound->buffer == NULL) { 137 | free(sound); 138 | return NULL; 139 | } 140 | 141 | for (size_t i = 0; i < length; ++i) 142 | sound->buffer[i] = samples[i] - 0x80; 143 | 144 | memset(sound->samples, 0, 4); 145 | 146 | sound->frames = length; 147 | sound->playing = false; 148 | sound->played_before = false; 149 | sound->position = 0; 150 | sound->ring = 0; 151 | sound->sub_position = 0; 152 | sound->silence_count = 0; 153 | 154 | S_SetSoundFrequency(sound, frequency); 155 | S_SetSoundVolume(sound, 0); 156 | S_SetSoundPan(sound, 0); 157 | 158 | ma_mutex_lock(&mutex); 159 | 160 | sound->next = sound_list_head; 161 | sound_list_head = sound; 162 | 163 | ma_mutex_unlock(&mutex); 164 | 165 | return sound; 166 | } 167 | 168 | void S_DestroySound(S_Sound* sound) 169 | { 170 | if (sound == NULL) 171 | return; 172 | 173 | ma_mutex_lock(&mutex); 174 | 175 | for (S_Sound** sound_pointer = &sound_list_head; *sound_pointer != NULL; sound_pointer = &(*sound_pointer)->next) 176 | { 177 | if (*sound_pointer == sound) 178 | { 179 | *sound_pointer = sound->next; 180 | break; 181 | } 182 | } 183 | 184 | free(sound->buffer); 185 | free(sound); 186 | 187 | ma_mutex_unlock(&mutex); 188 | } 189 | 190 | static void S_PlaySound(S_Sound* sound, bool looping) { 191 | if (sound == NULL) 192 | return; 193 | 194 | ma_mutex_lock(&mutex); 195 | 196 | if (!sound->playing) { 197 | sound->position = 0; 198 | 199 | if (sound->silence_count == 0) { 200 | sound->sub_position = 0; 201 | } 202 | 203 | sound->playing = true; 204 | } 205 | 206 | sound->looping = looping; 207 | sound->stop_in = 0; 208 | 209 | ma_mutex_unlock(&mutex); 210 | } 211 | 212 | static void S_PlaySoundFor(S_Sound* sound, int ms) { 213 | if (sound == NULL || ms == 0) 214 | return; 215 | 216 | ma_mutex_lock(&mutex); 217 | 218 | if (!sound->playing) { 219 | sound->position = 0; 220 | 221 | if (sound->silence_count == 0) { 222 | sound->sub_position = 0; 223 | } 224 | 225 | sound->playing = true; 226 | } 227 | 228 | sound->looping = true; 229 | sound->stop_in = (ms * output_frequency) / 1000; 230 | 231 | ma_mutex_unlock(&mutex); 232 | } 233 | 234 | static void S_StopSound(S_Sound* sound) { 235 | if (sound == NULL) 236 | return; 237 | 238 | ma_mutex_lock(&mutex); 239 | 240 | if (sound->playing) { 241 | sound->playing = false; 242 | sound->silence_count = 4; 243 | } 244 | 245 | ma_mutex_unlock(&mutex); 246 | } 247 | 248 | static void S_RewindSound(S_Sound* sound) { 249 | if (sound == NULL) 250 | return; 251 | 252 | ma_mutex_lock(&mutex); 253 | 254 | sound->position = 0; 255 | 256 | ma_mutex_unlock(&mutex); 257 | } 258 | 259 | // This is for exporting 260 | static void S_ResetSounds() { 261 | ma_mutex_lock(&mutex); 262 | 263 | for (S_Sound* sound = sound_list_head; sound != NULL; sound = sound->next) { 264 | sound->playing = false; 265 | sound->looping = false; 266 | sound->played_before = false; 267 | sound->silence_count = 0; 268 | sound->ring = 0; 269 | sound->position = 0; 270 | sound->sub_position = 0; 271 | sound->volume = 1.0F; 272 | sound->pan_l = 1.0F; 273 | sound->pan_r = 1.0F; 274 | sound->target_volume_l = sound->pan_l * sound->volume; 275 | sound->target_volume_r = sound->pan_r * sound->volume; 276 | sound->volume_l = sound->target_volume_l; 277 | sound->volume_r = sound->target_volume_r; 278 | sound->vol_ticks = 0; 279 | } 280 | 281 | ma_mutex_unlock(&mutex); 282 | } 283 | 284 | static void S_MixSounds(float* stream, size_t frames_total) { 285 | for (S_Sound* sound = sound_list_head; sound != NULL; sound = sound->next) { 286 | if (sound->playing || sound->silence_count > 0) { 287 | float* stream_pointer = stream; 288 | 289 | sound->played_before = true; 290 | 291 | for (size_t frames_done = 0; frames_done < frames_total; ++frames_done) { 292 | // Update volume ramp 293 | if (sound->vol_ticks > 0) { 294 | sound->volume_l += (sound->target_volume_l - sound->volume_l) / (float)sound->vol_ticks; 295 | sound->volume_r += (sound->target_volume_r - sound->volume_r) / (float)sound->vol_ticks; 296 | 297 | --sound->vol_ticks; 298 | } 299 | 300 | // Perform lagrange interpolation 301 | const float subsample = sound->sub_position; 302 | const long sp = sound->position; 303 | 304 | const long margin = sound->ring - 2; 305 | 306 | const float sample_a = (float)sound->samples[mmodi(margin - 1, 4)] / (float)(1 << 7); 307 | const float sample_b = (float)sound->samples[mmodi(margin, 4)] / (float)(1 << 7); 308 | const float sample_c = (float)sound->samples[mmodi(margin + 1, 4)] / (float)(1 << 7); 309 | const float sample_d = (float)sound->samples[mmodi(margin + 2, 4)] / (float)(1 << 7); 310 | 311 | const float c0 = sample_b; 312 | const float c1 = sample_c - 1 / 3.0 * sample_a - 1 / 2.0 * sample_b - 1 / 6.0 * sample_d; 313 | const float c2 = 1 / 2.0 * (sample_a + sample_c) - sample_b; 314 | const float c3 = 1 / 6.0 * (sample_d - sample_a) + 1 / 2.0 * (sample_b - sample_c); 315 | 316 | const float interpolated_sample = ((c3 * subsample + c2) * subsample + c1) * subsample + c0; 317 | 318 | // Mix, and apply volume 319 | *stream_pointer++ += interpolated_sample * sound->volume_l; 320 | *stream_pointer++ += interpolated_sample * sound->volume_r; 321 | 322 | // Increment sample 323 | const long last_position = sound->position; 324 | 325 | sound->sub_position += sound->advance_delta; 326 | sound->position += (long)sound->sub_position; 327 | sound->sub_position = mmodf(sound->sub_position, 1.0F); 328 | 329 | if (sound->position > last_position) { 330 | /* Update ring buffer position and write new sample(s) */ 331 | for (int i = 0; i < (sound->position - last_position); ++i) { 332 | sound->ring = (sound->ring + 1) % 4; 333 | 334 | if (sound->playing) { 335 | if (sound->looping) { 336 | sound->samples[sound->ring] = (signed long)sound->buffer[(last_position + i) % sound->frames]; 337 | } 338 | else { 339 | sound->samples[sound->ring] = (signed long)((last_position + i) >= sound->frames ? 0 : sound->buffer[(last_position + i)]); 340 | } 341 | } 342 | else { 343 | sound->samples[sound->ring] = 0; 344 | --sound->silence_count; 345 | } 346 | } 347 | } 348 | 349 | // Stop or loop sample once it's reached its end 350 | if (sound->playing) { 351 | if (sound->stop_in > 0) { 352 | --sound->stop_in; 353 | if (sound->stop_in == 0) { 354 | sound->looping = FALSE; 355 | } 356 | } 357 | if (sound->position >= sound->frames) 358 | { 359 | if (sound->looping) 360 | { 361 | sound->position = sound->position % sound->frames; 362 | } 363 | else 364 | { 365 | sound->playing = FALSE; 366 | sound->silence_count = 4; 367 | } 368 | } 369 | } 370 | else { 371 | sound->position = 0; 372 | } 373 | } 374 | } 375 | } 376 | } 377 | 378 | void S_SetOrganyaTimer(unsigned short timer) 379 | { 380 | ma_mutex_lock(&organya_mutex); 381 | 382 | organya_timer = timer; 383 | organya_countdown = 0; 384 | 385 | ma_mutex_unlock(&organya_mutex); 386 | } 387 | 388 | 389 | // DirectSound\‘¢‘Ì 390 | //LPDIRECTSOUND lpDS = NULL; // DirectSoundƒIƒuƒWƒFƒNƒg 391 | //LPDIRECTSOUNDBUFFER lpPRIMARYBUFFER = NULL; // ˆêŽžƒoƒbƒtƒ@ 392 | S_Sound *lpSECONDARYBUFFER[SE_MAX] = {NULL}; 393 | S_Sound *lpORGANBUFFER[8][8][2] = {NULL}; 394 | S_Sound *lpDRAMBUFFER[8] = {NULL}; 395 | 396 | //˜^‰¹—p 397 | //HANDLE CapEvent[2]; //!< “ü—̓Cƒxƒ“ƒgEƒIƒuƒWƒFƒNƒg. 398 | //DWORD CapBufSize; //!< ƒLƒƒƒvƒ`ƒƒƒoƒbƒtƒ@EƒTƒCƒY. 399 | //DWORD GetPos; //!< ƒLƒƒƒvƒ`ƒƒƒoƒbƒtƒ@‚̓ǂݍž‚ÝŠJŽnˆÊ’u. 400 | //DWORD PutPos; //!< ƒLƒƒƒvƒ`ƒƒƒoƒbƒtƒ@‚̏‘‚«ž‚ÝŠJŽnˆÊ’u. 401 | //BYTE* DataBuff; //!< ƒf[ƒ^ƒoƒbƒtƒ@. 402 | //LPDIRECTSOUNDCAPTURE CapDev; //!< IDirectSoundCaptureƒCƒ“ƒ^[ƒtƒFƒCƒX ƒ|ƒCƒ“ƒ^. 403 | //LPDIRECTSOUNDCAPTUREBUFFER CapBuf; //!< IDirectSoundBufferƒCƒ“ƒ^[ƒtƒFƒCƒX ƒ|ƒCƒ“ƒ^. 404 | 405 | //DWORD OutBufSize; //!< ƒXƒgƒŠ[ƒ€ƒoƒbƒtƒ@EƒTƒCƒY. 406 | 407 | extern int s_solo; 408 | 409 | static void S_Callback(ma_device* device, void* output_stream, const void* input_stream, ma_uint32 frames_total) 410 | { 411 | (void)device; 412 | (void)input_stream; 413 | 414 | if (exporting) 415 | return; 416 | 417 | float* stream = (float *)output_stream; 418 | size_t frames_done = 0; 419 | while (frames_done != frames_total) { 420 | float mix_buffer[0x400 * 2]; 421 | size_t subframes = MIN(0x400, frames_total - frames_done); 422 | memset(mix_buffer, 0, subframes * sizeof(float) * 2); 423 | 424 | ma_mutex_lock(&organya_mutex); 425 | 426 | if (organya_timer == 0) { 427 | ma_mutex_lock(&mutex); 428 | S_MixSounds(mix_buffer, subframes); 429 | ma_mutex_unlock(&mutex); 430 | } 431 | else { 432 | unsigned int subframes_done = 0; 433 | while (subframes_done != subframes) { 434 | if (organya_countdown == 0) { 435 | organya_countdown = (organya_timer * output_frequency) / 1000; 436 | org_data.PlayData(); 437 | } 438 | const unsigned int frames_to_do = MIN(organya_countdown, subframes - subframes_done); 439 | ma_mutex_lock(&mutex); 440 | S_MixSounds(mix_buffer + subframes_done * 2, frames_to_do); 441 | ma_mutex_unlock(&mutex); 442 | subframes_done += frames_to_do; 443 | organya_countdown -= frames_to_do; 444 | } 445 | } 446 | 447 | ma_mutex_unlock(&organya_mutex); 448 | 449 | for (size_t i = 0; i < subframes * 2; ++i) { 450 | *stream++ = mix_buffer[i]; 451 | } 452 | frames_done += subframes; 453 | } 454 | } 455 | 456 | // DirectSound‚ÌŠJŽn 457 | BOOL InitDirectSound(HWND hwnd) 458 | { 459 | // int i; 460 | /*DSBUFFERDESC dsbd; 461 | 462 | // DirectDraw‚̏‰Šú‰» 463 | if(DirectSoundCreate(NULL, &lpDS, NULL) != DS_OK){ 464 | lpDS = NULL; 465 | return(FALSE); 466 | } 467 | lpDS->SetCooperativeLevel(hwnd, DSSCL_PRIORITY); 468 | 469 | // ˆêŽŸƒoƒbƒtƒ@‚̏‰Šú‰» 470 | ZeroMemory(&dsbd, sizeof(DSBUFFERDESC)); 471 | dsbd.dwSize = sizeof(DSBUFFERDESC); 472 | dsbd.dwFlags = DSBCAPS_PRIMARYBUFFER; // | DSBCAPS_CTRLPOSITIONNOTIFY; 473 | lpDS->CreateSoundBuffer(&dsbd, &lpPRIMARYBUFFER, NULL);*/ 474 | 475 | // for(i = 0; i < SE_MAX; i++) lpSECONDARYBUFFER[i] = NULL; 476 | 477 | //ƒLƒƒƒvƒ`ƒƒƒoƒbƒtƒ@‚̍쐬 ‘æˆêˆø”NULL‚ŃfƒtƒHƒ‹ƒgB‚±‚ê‚͂ǂ¤‚©B 478 | // if( DirectSoundCaptureCreate( NULL, &CapDev, NULL ) != S_OK ){ 479 | // return FALSE; 480 | // } 481 | // dsbd.dwFlags = 0; //ƒZƒJƒ“ƒ_ƒŠƒoƒbƒtƒ@ 482 | // CapDev->CreateCaptureBuffer(&dsbd, &CapBuf, NULL); 483 | 484 | sound_list_head = NULL; 485 | 486 | ma_device_config config = ma_device_config_init(ma_device_type_playback); 487 | config.playback.pDeviceID = NULL; 488 | config.playback.format = ma_format_f32; 489 | config.playback.channels = 2; 490 | config.sampleRate = 0; 491 | config.dataCallback = S_Callback; 492 | config.pUserData = NULL; 493 | config.periodSizeInMilliseconds = 10; 494 | //config.performanceProfile = ma_performance_profile_conservative; 495 | 496 | if (ma_device_init(NULL, &config, &device) == MA_SUCCESS) 497 | { 498 | output_frequency = device.sampleRate; 499 | 500 | // Should be 4 MS 501 | vol_ticks = (long)((float)output_frequency * 0.004F); 502 | 503 | if (ma_mutex_init(&mutex) == MA_SUCCESS) 504 | { 505 | if (ma_mutex_init(&organya_mutex) == MA_SUCCESS) 506 | { 507 | if (ma_device_start(&device) == MA_SUCCESS) { 508 | memset(lpSECONDARYBUFFER, 0, sizeof(lpSECONDARYBUFFER)); 509 | memset(lpORGANBUFFER, 0, sizeof(lpORGANBUFFER)); 510 | memset(lpDRAMBUFFER, 0, sizeof(lpDRAMBUFFER)); 511 | 512 | return TRUE; 513 | } 514 | 515 | ma_mutex_uninit(&organya_mutex); 516 | } 517 | 518 | ma_mutex_uninit(&mutex); 519 | } 520 | 521 | ma_device_uninit(&device); 522 | } 523 | 524 | return FALSE; 525 | } 526 | 527 | // DirectSound‚̏I—¹ 528 | void EndDirectSound(void) 529 | { 530 | int i; 531 | 532 | for(i = 0; i < 8; i++){ 533 | if(lpSECONDARYBUFFER[i] != NULL){ 534 | S_DestroySound(lpSECONDARYBUFFER[i]); 535 | lpSECONDARYBUFFER[i] = NULL; 536 | } 537 | } 538 | /*if(lpPRIMARYBUFFER != NULL){ 539 | lpPRIMARYBUFFER->Release(); 540 | lpPRIMARYBUFFER = NULL; 541 | } 542 | if(lpDS != NULL){ 543 | lpDS->Release(); 544 | lpDS = NULL; 545 | }*/ 546 | // if( CapBuf ){ 547 | // CapBuf->Stop(); 548 | // } 549 | // if(CapDev != NULL){ 550 | // CapDev->Release(); 551 | // CapDev = NULL; 552 | // } 553 | 554 | ma_device_stop(&device); 555 | ma_mutex_uninit(&organya_mutex); 556 | ma_mutex_uninit(&mutex); 557 | ma_device_uninit(&device); 558 | } 559 | void ReleaseSoundObject(int no){ 560 | if(lpSECONDARYBUFFER[no] != NULL){ 561 | S_DestroySound(lpSECONDARYBUFFER[no]); 562 | lpSECONDARYBUFFER[no] = NULL; 563 | } 564 | } 565 | 566 | 567 | // ƒTƒEƒ“ƒh‚̐ݒè 568 | BOOL InitSoundObject(LPCSTR resname, int no) 569 | { 570 | /*HRSRC hrscr; 571 | DSBUFFERDESC dsbd; 572 | DWORD *lpdword;//ƒŠƒ\[ƒX‚̃AƒhƒŒƒX 573 | // ƒŠƒ\[ƒX‚ÌŒŸõ 574 | if((hrscr = FindResource(NULL, resname, "WAVE")) == NULL) 575 | return(FALSE); 576 | // ƒŠƒ\[ƒX‚̃AƒhƒŒƒX‚ðŽæ“¾ 577 | lpdword = (DWORD*)LockResource(LoadResource(NULL, hrscr)); 578 | // “ñŽŸƒoƒbƒtƒ@‚̐¶¬ 579 | ZeroMemory(&dsbd, sizeof(DSBUFFERDESC)); 580 | dsbd.dwSize = sizeof(DSBUFFERDESC); 581 | dsbd.dwFlags = 582 | DSBCAPS_STATIC| 583 | DSBCAPS_GLOBALFOCUS 584 | |DSBCAPS_CTRLPAN | DSBCAPS_CTRLVOLUME | DSBCAPS_CTRLFREQUENCY; 585 | dsbd.dwBufferBytes = *(DWORD*)((BYTE*)lpdword+0x36);//WAVEƒf[ƒ^‚̃TƒCƒY 586 | dsbd.lpwfxFormat = (LPWAVEFORMATEX)(lpdword+5); 587 | if(lpDS->CreateSoundBuffer(&dsbd, &lpSECONDARYBUFFER[no], 588 | NULL) != DS_OK) return(FALSE); 589 | LPVOID lpbuf1, lpbuf2; 590 | DWORD dwbuf1, dwbuf2; 591 | // “ñŽŸƒoƒbƒtƒ@‚̃ƒbƒN 592 | lpSECONDARYBUFFER[no]->Lock(0, *(DWORD*)((BYTE*)lpdword+0x36), 593 | &lpbuf1, &dwbuf1, &lpbuf2, &dwbuf2, 0); 594 | // ‰¹Œ¹ƒf[ƒ^‚̐ݒè 595 | CopyMemory(lpbuf1, (BYTE*)lpdword+0x3a, dwbuf1); 596 | if(dwbuf2 != 0) CopyMemory(lpbuf2, (BYTE*)lpdword+0x3a+dwbuf1, dwbuf2); 597 | // “ñŽŸƒoƒbƒtƒ@‚̃ƒbƒN‰ðœ 598 | lpSECONDARYBUFFER[no]->Unlock(lpbuf1, dwbuf1, lpbuf2, dwbuf2); 599 | 600 | return(TRUE);*/ 601 | 602 | ReleaseSoundObject(no); 603 | 604 | HRSRC hrscr; 605 | unsigned char* lpdword; 606 | if ((hrscr = FindResource(NULL, resname, "WAVE")) == NULL) 607 | return FALSE; 608 | lpdword = (unsigned char*)LockResource(LoadResource(NULL, hrscr)); 609 | 610 | lpSECONDARYBUFFER[no] = S_CreateSound(22050, lpdword + 0x2C, *(unsigned int*)(lpdword+0x28)); 611 | 612 | if (lpSECONDARYBUFFER[no] == NULL) 613 | return FALSE; 614 | 615 | S_RewindSound(lpSECONDARYBUFFER[no]); 616 | 617 | return TRUE; 618 | } 619 | 620 | //extern LPDIRECTDRAW lpDD; // DirectDrawƒIƒuƒWƒFƒNƒg 621 | BOOL LoadSoundObject(char *file_name, int no) 622 | { 623 | /*DWORD i; 624 | DWORD file_size = 0; 625 | char check_box[58]; 626 | FILE *fp; 627 | if((fp=fopen(file_name,"rb"))==NULL){ 628 | // char msg_str[64]; //”’lŠm”F—p 629 | // lpDD->FlipToGDISurface(); //ƒƒbƒZ[ƒW•\ަ‚Ì•û‚ɃtƒŠƒbƒv 630 | // sprintf(msg_str,"%s‚ªŒ©“–‚½‚è‚Ü‚¹‚ñ",file_name); 631 | // MessageBox(hWND,msg_str,"title",MB_OK); 632 | // SetCursor(FALSE); // ƒJ[ƒ\ƒ‹Á‹Ž 633 | return(FALSE); 634 | } 635 | for(i = 0; i < 58; i++){ 636 | fread(&check_box[i],sizeof(char),1,fp); 637 | } 638 | if(check_box[0] != 'R')return(FALSE); 639 | if(check_box[1] != 'I')return(FALSE); 640 | if(check_box[2] != 'F')return(FALSE); 641 | if(check_box[3] != 'F')return(FALSE); 642 | file_size = *((DWORD *)&check_box[4]); 643 | 644 | DWORD *wp; 645 | wp = (DWORD*)malloc(file_size);//ƒtƒ@ƒCƒ‹‚̃[ƒNƒXƒy[ƒX‚ðì‚é 646 | fseek(fp,0,SEEK_SET); 647 | for(i = 0; i < file_size; i++){ 648 | fread((BYTE*)wp+i,sizeof(BYTE),1,fp); 649 | } 650 | fclose(fp); 651 | //ƒZƒJƒ“ƒ_ƒŠƒoƒbƒtƒ@‚̐¶¬ 652 | DSBUFFERDESC dsbd; 653 | ZeroMemory(&dsbd, sizeof(DSBUFFERDESC)); 654 | dsbd.dwSize = sizeof(DSBUFFERDESC); 655 | dsbd.dwFlags = DSBCAPS_STATIC|DSBCAPS_GLOBALFOCUS|DSBCAPS_CTRLPAN | DSBCAPS_CTRLVOLUME | DSBCAPS_CTRLFREQUENCY; 656 | dsbd.dwBufferBytes = *(DWORD*)((BYTE*)wp+0x36);//WAVEƒf[ƒ^‚̃TƒCƒY 657 | dsbd.lpwfxFormat = (LPWAVEFORMATEX)(wp+5); 658 | if(lpDS->CreateSoundBuffer(&dsbd, &lpSECONDARYBUFFER[no], 659 | NULL) != DS_OK){ 660 | free(wp); 661 | return(FALSE); 662 | } 663 | LPVOID lpbuf1, lpbuf2; 664 | DWORD dwbuf1, dwbuf2; 665 | HRESULT hr; 666 | hr = lpSECONDARYBUFFER[no]->Lock(0, file_size-58, 667 | &lpbuf1, &dwbuf1, &lpbuf2, &dwbuf2, 0); 668 | if(hr != DS_OK){ 669 | free(wp); 670 | return (FALSE); 671 | } 672 | CopyMemory(lpbuf1, (BYTE*)wp+0x3a, dwbuf1);//+3a‚̓f[ƒ^‚Ì“ª 673 | if(dwbuf2 != 0) CopyMemory(lpbuf2, (BYTE*)wp+0x3a+dwbuf1, dwbuf2); 674 | lpSECONDARYBUFFER[no]->Unlock(lpbuf1, dwbuf1, lpbuf2, dwbuf2); 675 | 676 | free(wp); 677 | return(TRUE);*/ 678 | return FALSE; 679 | } 680 | 681 | // ƒTƒEƒ“ƒh‚̍ж 682 | void PlaySoundObject(int no, int mode) 683 | { 684 | if(lpSECONDARYBUFFER[no] != NULL){ 685 | switch(mode){ 686 | case 0: // ’âŽ~ 687 | S_StopSound(lpSECONDARYBUFFER[no]); 688 | S_RewindSound(lpSECONDARYBUFFER[no]); 689 | break; 690 | case 1: // Ä¶ 691 | S_StopSound(lpSECONDARYBUFFER[no]); 692 | S_RewindSound(lpSECONDARYBUFFER[no]); 693 | S_PlaySound(lpSECONDARYBUFFER[no], false); 694 | break; 695 | case -1: // ƒ‹[ƒvÄ¶ 696 | S_PlaySound(lpSECONDARYBUFFER[no], true); 697 | break; 698 | } 699 | } 700 | } 701 | 702 | void ChangeSoundFrequency(int no, DWORD rate)//100‚ªMIN9999‚ªMAX‚Å2195?‚ªÉ°ÏÙ 703 | { 704 | if(lpSECONDARYBUFFER[no] != NULL) 705 | S_SetSoundFrequency(lpSECONDARYBUFFER[no], rate); 706 | } 707 | void ChangeSoundVolume(int no, long volume)//300‚ªMAX‚Å300‚ªÉ°ÏÙ 708 | { 709 | if(lpSECONDARYBUFFER[no] != NULL) 710 | S_SetSoundVolume(lpSECONDARYBUFFER[no], (volume-300)*8); 711 | } 712 | void ChangeSoundPan(int no, long pan)//512‚ªMAX‚Å256‚ªÉ°ÏÙ 713 | { 714 | if(lpSECONDARYBUFFER[no] != NULL) 715 | S_SetSoundPan(lpSECONDARYBUFFER[no], (pan-256)*10); 716 | } 717 | 718 | ///////////////////////////////////////////// 719 | //¡ƒIƒ‹ƒK[ƒjƒƒ¡¡¡¡¡¡¡¡¡¡¡¡/////// 720 | ///////////////////// 721 | 722 | 723 | OCTWAVE oct_wave[8] = { 724 | {256, 1, 4},//0 Oct 725 | {256, 2, 8},//1 Oct 726 | {128, 4, 12},//2 Oct 727 | {128, 8, 16},//3 Oct 728 | { 64, 16, 20},//4 Oct 729 | { 32, 32, 24}, 730 | { 16, 64, 28}, 731 | { 8,128, 32}, 732 | }; 733 | 734 | //WAVEFORMATEX format_tbl2 = { WAVE_FORMAT_PCM, 1, 22050, 22050, 1, 8, 0 }; // 22050Hz Format 735 | 736 | //BYTE format_tbl3[] = {0x01,0x00,0x01,0x00,0x44,0xac,0x00,//441000Hz‚ÌFormat 737 | //0x00,0x44,0xac,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x61}; 738 | BOOL MakeSoundObject8(char *wavep,char track, char pipi ) 739 | { 740 | DWORD i,j,k; 741 | unsigned long wav_tp;//WAVƒe[ƒuƒ‹‚ð‚³‚·ƒ|ƒCƒ“ƒ^ 742 | DWORD wave_size;//256; 743 | DWORD data_size; 744 | BYTE *wp; 745 | BYTE *wp_sub; 746 | int work; 747 | //ƒZƒJƒ“ƒ_ƒŠƒoƒbƒtƒ@‚̐¶¬ 748 | //DSBUFFERDESC dsbd; 749 | 750 | for(j = 0; j < 8; j++){ 751 | for(k = 0; k < 2; k++){ 752 | wave_size = oct_wave[j].wave_size; 753 | if( pipi )data_size = wave_size * oct_wave[j].oct_size; 754 | else data_size = wave_size; 755 | /*ZeroMemory(&dsbd, sizeof(DSBUFFERDESC)); 756 | dsbd.dwSize = sizeof(DSBUFFERDESC); 757 | dsbd.dwFlags = DSBCAPS_STATIC| 758 | DSBCAPS_GLOBALFOCUS| 759 | DSBCAPS_CTRLPAN | DSBCAPS_CTRLVOLUME | DSBCAPS_CTRLFREQUENCY;//DSBCAPS_STATIC|DSBCAPS_CTRLDEFAULT; 760 | dsbd.dwBufferBytes = data_size;//file_size; 761 | dsbd.lpwfxFormat = (LPWAVEFORMATEX)(&format_tbl2); 762 | if(lpDS->CreateSoundBuffer(&dsbd, &lpORGANBUFFER[track][j][k],//j = se_no 763 | NULL) != DS_OK) return(FALSE);*/ 764 | wp = (BYTE*)malloc(data_size);//ƒtƒ@ƒCƒ‹‚̃[ƒNƒXƒy[ƒX‚ðì‚é 765 | wp_sub = wp; 766 | wav_tp = 0; 767 | for(i = 0; i < data_size; i++){ 768 | work = *(wavep+wav_tp); 769 | work+=0x80; 770 | *wp_sub=(BYTE)work; 771 | wav_tp += 256/wave_size; 772 | if( wav_tp > 255 ) wav_tp -= 256; 773 | wp_sub++; 774 | } 775 | lpORGANBUFFER[track][j][k] = S_CreateSound(22050, wp, data_size); 776 | 777 | free(wp); 778 | 779 | if (lpORGANBUFFER[track][j][k] == NULL) 780 | return FALSE; 781 | 782 | S_RewindSound(lpORGANBUFFER[track][j][k]); 783 | } 784 | } 785 | return(TRUE); 786 | } 787 | //2.1.0‚Å ®”Œ^‚©‚珬”“_Œ^‚ɕύX‚µ‚Ă݂½B20140401 788 | short freq_tbl[12] = { 262, 277, 294, 311, 330, 349, 370, 392, 415, 440, 466, 494 }; 789 | //double freq_tbl[12] = {261.62556530060, 277.18263097687, 293.66476791741, 311.12698372208, 329.62755691287, 349.22823143300, 369.99442271163, 391.99543598175, 415.30469757995, 440.00000000000, 466.16376151809, 493.88330125612}; 790 | void ChangeOrganFrequency(unsigned char key,char track, DWORD a) 791 | { 792 | //double tmpDouble; 793 | for(int j = 0; j < 8; j++) 794 | for(int i = 0; i < 2; i++){ 795 | //dmmult = (0.98f + ((double)a / 50000.0f)); 796 | //tmpDouble = (((double)oct_wave[j].wave_size * freq_tbl[key]) * (double)oct_wave[j].oct_par) / (8.00f * (2.0f - dmmult)); 797 | 798 | if (lpORGANBUFFER[track][j][i] != NULL) 799 | S_SetSoundFrequency(lpORGANBUFFER[track][j][i], //1000‚ð+ƒ¿‚̃fƒtƒHƒ‹ƒg’l‚Æ‚·‚é 800 | (DWORD)((oct_wave[j].wave_size * freq_tbl[key]) * oct_wave[j].oct_par) / 8 + (a - 1000) 801 | // ((oct_wave[j].wave_size*freq_tbl[key])*oct_wave[j].oct_par)/8 + (a-1000) 802 | ); 803 | } 804 | } 805 | short pan_tbl[13] = {0,43,86,129,172,215,256,297,340,383,426,469,512}; 806 | unsigned char old_key[MAXTRACK] = {255,255,255,255,255,255,255,255};//Ä¶’†‚̉¹ 807 | unsigned char key_on[MAXTRACK] = {0,0,0,0,0,0,0,0};//ƒL[ƒXƒCƒbƒ` 808 | unsigned char key_twin[MAXTRACK] = {0,0,0,0,0,0,0,0};//¡Žg‚Á‚Ä‚¢‚éƒL[(˜A‘±Žž‚̃mƒCƒY–hŽ~‚ׂ̈ɓñ‚—pˆÓ) 809 | void ChangeOrganPan(unsigned char key, unsigned char pan,char track)//512‚ªMAX‚Å256‚ªÉ°ÏÙ 810 | { 811 | if(lpORGANBUFFER[track][old_key[track] / 12][key_twin[track]] != NULL && old_key[track] != 255) 812 | S_SetSoundPan(lpORGANBUFFER[track][old_key[track] / 12][key_twin[track]], (pan_tbl[pan]-256)*10); 813 | } 814 | void ChangeOrganVolume(int no, long volume,char track)//300‚ªMAX‚Å300‚ªÉ°ÏÙ 815 | { 816 | if(lpORGANBUFFER[track][old_key[track] / 12][key_twin[track]] != NULL && old_key[track] != 255) 817 | S_SetSoundVolume(lpORGANBUFFER[track][old_key[track] / 12][key_twin[track]], (volume-255)*8); 818 | } 819 | // ƒTƒEƒ“ƒh‚̍ж 820 | void PlayOrganObject(unsigned char key, int mode,char track,DWORD freq, bool pipi) 821 | { 822 | 823 | if(lpORGANBUFFER[track][key/12][key_twin[track]] != NULL){ 824 | switch(mode){ 825 | case 0: // ’âŽ~ 826 | if (old_key[track] != 255) { 827 | S_StopSound(lpORGANBUFFER[track][old_key[track] / 12][key_twin[track]]); 828 | S_RewindSound(lpORGANBUFFER[track][old_key[track] / 12][key_twin[track]]); 829 | } 830 | break; 831 | case 1: // Ä¶ 832 | // if(key_on == 1 && no == old_key/12)// 833 | // lpORGANBUFFER[old_key/12]->Stop(); 834 | // ChangeOrganFrequency(key%12);//Žü”g”‚ðÝ’肵‚Ä 835 | // lpORGANBUFFER[no]->Play(0, 0, 0); 836 | // if(key_on == 1 && no == old_key/12){//–‚Á‚Ä‚éWAV‚ª“¯‚¶WAVNO‚È‚ç 837 | // old_key = key; 838 | // ChangeOrganFrequency(key%12);//Žü”g”‚ð•Ï‚¦‚邾‚¯ 839 | // } 840 | break; 841 | case 2: // •à‚©‚¹’âŽ~ 842 | if(old_key[track] != 255){ 843 | if (!pipi) 844 | S_PlaySound(lpORGANBUFFER[track][old_key[track] / 12][key_twin[track]], false); 845 | old_key[track] = 255; 846 | } 847 | break; 848 | case -1: 849 | if(old_key[track] == 255){//V‹K–‚炷 850 | ChangeOrganFrequency(key%12,track,freq);//Žü”g”‚ðÝ’肵‚Ä 851 | S_PlaySound(lpORGANBUFFER[track][key / 12][key_twin[track]], !pipi); 852 | old_key[track] = key; 853 | key_on[track] = 1; 854 | }else if(key_on[track] == 1 && old_key[track] == key){//“¯‚¶‰¹ 855 | //¡‚È‚Á‚Ä‚¢‚é‚Ì‚ð•à‚©‚¹’âŽ~ 856 | if (!pipi) 857 | S_PlaySound(lpORGANBUFFER[track][old_key[track] / 12][key_twin[track]], false); 858 | key_twin[track] ^= 1; 859 | 860 | S_PlaySound(lpORGANBUFFER[track][key / 12][key_twin[track]], !pipi); 861 | }else{//ˆá‚¤‰¹‚ð–‚炷‚È‚ç 862 | if (!pipi) 863 | S_PlaySound(lpORGANBUFFER[track][old_key[track] / 12][key_twin[track]], false); 864 | key_twin[track] ^= 1; 865 | 866 | ChangeOrganFrequency(key%12,track,freq);//Žü”g”‚ðÝ’肵‚Ä 867 | S_PlaySound(lpORGANBUFFER[track][key / 12][key_twin[track]], !pipi); 868 | old_key[track] = key; 869 | } 870 | break; 871 | } 872 | } 873 | } 874 | //ƒIƒ‹ƒK[ƒjƒƒƒIƒuƒWƒFƒNƒg‚ðŠJ•ú 875 | void ReleaseOrganyaObject(char track){ 876 | for(int i = 0; i < 8; i++){ 877 | if(lpORGANBUFFER[track][i][0] != NULL){ 878 | S_DestroySound(lpORGANBUFFER[track][i][0]); 879 | lpORGANBUFFER[track][i][0] = NULL; 880 | } 881 | if(lpORGANBUFFER[track][i][1] != NULL){ 882 | S_DestroySound(lpORGANBUFFER[track][i][1]); 883 | lpORGANBUFFER[track][i][1] = NULL; 884 | } 885 | } 886 | } 887 | //”gŒ`ƒf[ƒ^‚ðƒ[ƒh 888 | //char wave_data[100*256]; 889 | 890 | char *wave_data = NULL; 891 | 892 | struct { 893 | int length; 894 | unsigned char* data; 895 | } drumsData[NUMDRAMITEM]; 896 | 897 | BOOL InitWaveData100(void) 898 | { 899 | if (wave_data == NULL) wave_data = (char *)malloc(sizeof(char) * 256 * 100); 900 | if (wave_data == NULL) return FALSE; 901 | HRSRC hrscr; 902 | unsigned char *bybuffer;//ƒŠƒ\[ƒX‚̃AƒhƒŒƒX 903 | // ƒŠƒ\[ƒX‚ÌŒŸõ 904 | if((hrscr = FindResource(NULL, "WAVE100", "WAVE")) == NULL) 905 | return(FALSE); 906 | // ƒŠƒ\[ƒX‚̃AƒhƒŒƒX‚ðŽæ“¾ 907 | bybuffer = (unsigned char *)LockResource(LoadResource(NULL, hrscr)); 908 | 909 | memcpy(wave_data, bybuffer,100*256); 910 | bybuffer += (100 * 256); 911 | 912 | for (int i = 0; i < NUMDRAMITEM; ++i) { 913 | if (drumsData[i].data != NULL) { 914 | free(drumsData[i].data); 915 | drumsData[i].data = NULL; 916 | } 917 | 918 | int length = (bybuffer[3] << 24) | (bybuffer[2] << 16) | (bybuffer[1] << 8) | bybuffer[0]; 919 | bybuffer += 4; 920 | 921 | unsigned char* drumsample = (unsigned char*)malloc(length); 922 | 923 | if (drumsample == NULL) { 924 | return FALSE; 925 | } 926 | 927 | memcpy(drumsample, bybuffer, length); 928 | bybuffer += length; 929 | 930 | drumsData[i].length = length; 931 | 932 | drumsData[i].data = drumsample; 933 | } 934 | 935 | return TRUE; 936 | } 937 | BOOL LoadWaveData100(const char *file) 938 | { 939 | unsigned char bytes[4]; 940 | 941 | if (strlen(file) <= 0) { 942 | return InitWaveData100(); // Init from resource 943 | } 944 | if (wave_data == NULL) wave_data = (char *)malloc(sizeof(char) * 256 * 100); 945 | if (wave_data == NULL) return FALSE; 946 | FILE *fp = fopen(file, "rb"); 947 | if (fp == NULL) { 948 | return InitWaveData100(); // Init from resource 949 | } 950 | // wave_data = new char[100*256]; 951 | if (fread(wave_data, sizeof(char), 256 * 100, fp) == 0) { 952 | fclose(fp); 953 | return FALSE; 954 | } 955 | 956 | for (int i = 0; i < NUMDRAMITEM; ++i) { 957 | if (drumsData[i].data != NULL) { 958 | free(drumsData[i].data); 959 | drumsData[i].data = NULL; 960 | } 961 | 962 | if (fread(bytes, 4, 1, fp) == 0) { 963 | memset(drumsData, 0, sizeof(drumsData)); 964 | fclose(fp); 965 | return FALSE; 966 | } 967 | 968 | int length = (bytes[3] << 24) | (bytes[2] << 16) | (bytes[1] << 8) | bytes[0]; 969 | 970 | unsigned char* drumsample = (unsigned char*)malloc(length); 971 | 972 | if (drumsample == NULL) { 973 | fclose(fp); 974 | return FALSE; 975 | } 976 | 977 | if (fread(drumsample, sizeof(unsigned char), length, fp) == 0) { 978 | free(drumsample); 979 | fclose(fp); 980 | return FALSE; 981 | } 982 | 983 | drumsData[i].length = length; 984 | 985 | drumsData[i].data = drumsample; 986 | } 987 | 988 | fclose(fp); 989 | return TRUE; 990 | } 991 | BOOL DeleteWaveData100(void) 992 | { 993 | // delete wave_data; 994 | free(wave_data); 995 | wave_data = NULL; 996 | for (int i = 0; i < NUMDRAMITEM; ++i) { 997 | free(drumsData[i].data); 998 | drumsData[i].data = NULL; 999 | } 1000 | return TRUE; 1001 | } 1002 | //”gŒ`‚ð‚P‚O‚OŒÂ‚Ì’†‚©‚ç‘I‘ð‚µ‚Äì¬ 1003 | BOOL MakeOrganyaWave(char track,char wave_no, char pipi) 1004 | { 1005 | if(wave_no > 99)return FALSE; 1006 | ReleaseOrganyaObject(track); 1007 | MakeSoundObject8(&wave_data[0] + wave_no*256,track, pipi); 1008 | return TRUE; 1009 | } 1010 | ///////////////////////////////////////////// 1011 | //¡ƒIƒ‹ƒK[ƒjƒƒƒhƒ‰ƒ€ƒX¡¡¡¡¡¡¡¡/////// 1012 | ///////////////////// 1013 | //ƒIƒ‹ƒK[ƒjƒƒƒIƒuƒWƒFƒNƒg‚ðŠJ•ú 1014 | void ReleaseDramObject(char track){ 1015 | for(int i = 0; i < 8; i++){ 1016 | if(lpDRAMBUFFER[track] != NULL){ 1017 | S_DestroySound(lpDRAMBUFFER[track]); 1018 | lpDRAMBUFFER[track] = NULL; 1019 | } 1020 | } 1021 | } 1022 | // ƒTƒEƒ“ƒh‚̐ݒè 1023 | BOOL InitDramObject(char drum, int no) 1024 | { 1025 | //HRSRC hrscr; 1026 | //DSBUFFERDESC dsbd; 1027 | //DWORD *lpdword;//ƒŠƒ\[ƒX‚̃AƒhƒŒƒX 1028 | // ƒŠƒ\[ƒX‚ÌŒŸõ 1029 | ReleaseDramObject(no); //‚±‚±‚É‚¨‚¢‚Ă݂½B 1030 | 1031 | if (drum < 0 || drum >= NUMDRAMITEM || drumsData[drum].data == NULL) { 1032 | return FALSE; 1033 | } 1034 | 1035 | lpDRAMBUFFER[no] = S_CreateSound(22050, drumsData[drum].data, drumsData[drum].length); 1036 | 1037 | if (lpDRAMBUFFER[no] == NULL) 1038 | return FALSE; 1039 | 1040 | S_RewindSound(lpDRAMBUFFER[no]); 1041 | 1042 | /*if((hrscr = FindResource(NULL, resname, "WAVE")) == NULL) 1043 | return(FALSE); 1044 | // ƒŠƒ\[ƒX‚̃AƒhƒŒƒX‚ðŽæ“¾ 1045 | lpdword = (DWORD*)LockResource(LoadResource(NULL, hrscr));*/ 1046 | // “ñŽŸƒoƒbƒtƒ@‚̐¶¬ 1047 | /*ZeroMemory(&dsbd, sizeof(DSBUFFERDESC)); 1048 | dsbd.dwSize = sizeof(DSBUFFERDESC); 1049 | dsbd.dwFlags = 1050 | DSBCAPS_STATIC | DSBCAPS_GLOBALFOCUS | DSBCAPS_CTRLPAN | DSBCAPS_CTRLVOLUME | DSBCAPS_CTRLFREQUENCY; 1051 | dsbd.dwBufferBytes = drumsData[drum].length; // WAVEƒf[ƒ^‚̃TƒCƒY 1052 | dsbd.lpwfxFormat = (LPWAVEFORMATEX)(&format_tbl2);*/ 1053 | 1054 | /*if (lpDS->CreateSoundBuffer(&dsbd, &lpDRAMBUFFER[no],NULL) != DS_OK) return FALSE;*/ 1055 | /*LPVOID lpbuf1, lpbuf2; 1056 | DWORD dwbuf1, dwbuf2; 1057 | // “ñŽŸƒoƒbƒtƒ@‚̃ƒbƒN 1058 | lpDRAMBUFFER[no]->Lock(0, drumsData[drum].length, &lpbuf1, &dwbuf1, &lpbuf2, &dwbuf2, 0); 1059 | // ‰¹Œ¹ƒf[ƒ^‚̐ݒè 1060 | CopyMemory(lpbuf1, drumsData[drum].data, dwbuf1); 1061 | if(dwbuf2 != 0){ 1062 | CopyMemory(lpbuf2, drumsData[drum].data + dwbuf1, dwbuf2); 1063 | } 1064 | 1065 | // “ñŽŸƒoƒbƒtƒ@‚̃ƒbƒN‰ðœ 1066 | lpDRAMBUFFER[no]->Unlock(lpbuf1, dwbuf1, lpbuf2, dwbuf2); 1067 | lpDRAMBUFFER[no]->SetCurrentPosition(0);*/ 1068 | 1069 | return TRUE; 1070 | } 1071 | 1072 | /* 1073 | BOOL LoadDramObject(char *file_name, int no) 1074 | { 1075 | DWORD i; 1076 | DWORD file_size = 0; 1077 | char check_box[58]; 1078 | FILE *fp; 1079 | ReleaseDramObject(no); 1080 | if((fp=fopen(file_name,"rb"))==NULL){ 1081 | // char msg_str[64]; //”’lŠm”F—p 1082 | // lpDD->FlipToGDISurface(); //ƒƒbƒZ[ƒW•\ަ‚Ì•û‚ɃtƒŠƒbƒv 1083 | // sprintf(msg_str,"%s‚ªŒ©“–‚½‚è‚Ü‚¹‚ñ",file_name); 1084 | // MessageBox(hWND,msg_str,"title",MB_OK); 1085 | // SetCursor(FALSE); // ƒJ[ƒ\ƒ‹Á‹Ž 1086 | return(FALSE); 1087 | } 1088 | for(i = 0; i < 58; i++){ 1089 | fread(&check_box[i],sizeof(char),1,fp); 1090 | } 1091 | if(check_box[0] != 'R')return(FALSE); 1092 | if(check_box[1] != 'I')return(FALSE); 1093 | if(check_box[2] != 'F')return(FALSE); 1094 | if(check_box[3] != 'F')return(FALSE); 1095 | file_size = *((DWORD *)&check_box[4]); 1096 | 1097 | DWORD *wp; 1098 | wp = (DWORD*)malloc(file_size);//ƒtƒ@ƒCƒ‹‚̃[ƒNƒXƒy[ƒX‚ðì‚é 1099 | fseek(fp,0,SEEK_SET); 1100 | for(i = 0; i < file_size; i++){ 1101 | fread((BYTE*)wp+i,sizeof(BYTE),1,fp); 1102 | } 1103 | fclose(fp); 1104 | //ƒZƒJƒ“ƒ_ƒŠƒoƒbƒtƒ@‚̐¶¬ 1105 | DSBUFFERDESC dsbd; 1106 | ZeroMemory(&dsbd, sizeof(DSBUFFERDESC)); 1107 | dsbd.dwSize = sizeof(DSBUFFERDESC); 1108 | dsbd.dwFlags = DSBCAPS_STATIC| 1109 | DSBCAPS_GLOBALFOCUS 1110 | |DSBCAPS_CTRLDEFAULT; 1111 | dsbd.dwBufferBytes = *(DWORD*)((BYTE*)wp+0x36);//WAVEƒf[ƒ^‚̃TƒCƒY 1112 | dsbd.lpwfxFormat = (LPWAVEFORMATEX)(wp+5); 1113 | if(lpDS->CreateSoundBuffer(&dsbd, &lpDRAMBUFFER[no], 1114 | NULL) != DS_OK) return(FALSE); 1115 | LPVOID lpbuf1, lpbuf2; 1116 | DWORD dwbuf1, dwbuf2; 1117 | HRESULT hr; 1118 | hr = lpDRAMBUFFER[no]->Lock(0, file_size-58, 1119 | &lpbuf1, &dwbuf1, &lpbuf2, &dwbuf2, 0); 1120 | if(hr != DS_OK)return (FALSE); 1121 | CopyMemory(lpbuf1, (BYTE*)wp+0x3a, dwbuf1);//+3a‚̓f[ƒ^‚Ì“ª 1122 | if(dwbuf2 != 0) CopyMemory(lpbuf2, (BYTE*)wp+0x3a+dwbuf1, dwbuf2); 1123 | lpDRAMBUFFER[no]->Unlock(lpbuf1, dwbuf1, lpbuf2, dwbuf2); 1124 | 1125 | free(wp); 1126 | return(TRUE); 1127 | }*/ 1128 | void ChangeDramFrequency(unsigned char key,char track) 1129 | { 1130 | if (lpDRAMBUFFER[track] != NULL) 1131 | S_SetSoundFrequency(lpDRAMBUFFER[track], key*800+100); 1132 | } 1133 | void ChangeDramPan(unsigned char pan,char track)//512‚ªMAX‚Å256‚ªÉ°ÏÙ 1134 | { 1135 | if (lpDRAMBUFFER[track] != NULL) 1136 | S_SetSoundPan(lpDRAMBUFFER[track], (pan_tbl[pan]-256)*10); 1137 | } 1138 | void ChangeDramVolume(long volume,char track)// 1139 | { 1140 | if (lpDRAMBUFFER[track] != NULL) 1141 | S_SetSoundVolume(lpDRAMBUFFER[track], (volume-255)*8); 1142 | } 1143 | // ƒTƒEƒ“ƒh‚̍ж 1144 | void PlayDramObject(unsigned char key, int mode,char track) 1145 | { 1146 | 1147 | if(lpDRAMBUFFER[track] != NULL){ 1148 | switch(mode){ 1149 | case 0: // ’âŽ~ 1150 | S_StopSound(lpDRAMBUFFER[track]); 1151 | S_RewindSound(lpDRAMBUFFER[track]); 1152 | break; 1153 | case 1: // Ä¶ 1154 | S_StopSound(lpDRAMBUFFER[track]); 1155 | S_RewindSound(lpDRAMBUFFER[track]); 1156 | ChangeDramFrequency(key,track);//Žü”g”‚ðÝ’肵‚Ä 1157 | S_PlaySound(lpDRAMBUFFER[track], false); 1158 | break; 1159 | case 2: // •à‚©‚¹’âŽ~ 1160 | break; 1161 | case -1: 1162 | break; 1163 | } 1164 | } 1165 | } 1166 | 1167 | void PlayOrganKey(unsigned char key,char track,DWORD freq,int Nagasa) 1168 | { 1169 | if (key >= 96) return; 1170 | if (track < MAXMELODY && lpORGANBUFFER[track][key/12][0] != NULL){ 1171 | DWORD wait = timeGetTime(); 1172 | ChangeOrganFrequency(key%12,track,freq);//Žü”g”‚ðÝ’肵‚Ä 1173 | S_SetSoundVolume(lpORGANBUFFER[track][key / 12][0], ((200 * 100 / 0x7F) - 255) * 8); 1174 | S_SetSoundPan(lpORGANBUFFER[track][key / 12][0], 0); 1175 | S_PlaySoundFor(lpORGANBUFFER[track][key / 12][0], Nagasa); 1176 | // lpORGANBUFFER[track][key/12][0]->Play(0, 0, 0); //C 2010.09.23 ‘¦Žž’âŽ~‚·‚éB 1177 | } else if (lpDRAMBUFFER[track - MAXMELODY] != NULL) { 1178 | S_StopSound(lpDRAMBUFFER[track - MAXMELODY]); 1179 | S_RewindSound(lpDRAMBUFFER[track - MAXMELODY]); 1180 | ChangeDramFrequency(key, track - MAXMELODY);//Žü”g”‚ðÝ’肵‚Ä 1181 | S_SetSoundVolume(lpDRAMBUFFER[track - MAXMELODY], ((200 * 100 / 0x7F) - 255) * 8); 1182 | S_SetSoundPan(lpDRAMBUFFER[track - MAXMELODY], 0); 1183 | S_PlaySound(lpDRAMBUFFER[track - MAXMELODY], false); 1184 | } 1185 | } 1186 | 1187 | 1188 | //2010.08.14 A 1189 | void Rxo_PlayKey(unsigned char key,char track,DWORD freq, int Phase) 1190 | { 1191 | if (key >= 96) return; 1192 | if (track < MAXMELODY && lpORGANBUFFER[track][key/12][Phase] != NULL) { 1193 | ChangeOrganFrequency(key%12,track,freq); 1194 | S_SetSoundVolume(lpORGANBUFFER[track][key/12][Phase], ((200 * 100 / 0x7F) - 255) * 8); 1195 | S_SetSoundPan(lpORGANBUFFER[track][key/12][Phase], 0); 1196 | S_PlaySound(lpORGANBUFFER[track][key/12][Phase], true); 1197 | } else if (lpDRAMBUFFER[track - MAXMELODY] != NULL) { 1198 | S_StopSound(lpDRAMBUFFER[track - MAXMELODY]); 1199 | S_RewindSound(lpDRAMBUFFER[track - MAXMELODY]); 1200 | ChangeDramFrequency(key, track - MAXMELODY);//Žü”g”‚ðÝ’肵‚Ä 1201 | S_SetSoundVolume(lpDRAMBUFFER[track - MAXMELODY], ((200 * 100 / 0x7F) - 255) * 8); 1202 | S_SetSoundPan(lpDRAMBUFFER[track - MAXMELODY], 0); 1203 | S_PlaySound(lpDRAMBUFFER[track - MAXMELODY], false); 1204 | } 1205 | } 1206 | //2010.08.14 A 1207 | void Rxo_StopKey(unsigned char key,char track, int Phase) 1208 | { 1209 | if (key >= 96) return; 1210 | if (track < MAXMELODY && lpORGANBUFFER[track][key/12][Phase] != NULL) { 1211 | //lpORGANBUFFER[track][key/12][Phase]->Play(0, 0, 0); // 2010.08.14 D 1212 | S_StopSound(lpORGANBUFFER[track][key/12][Phase]); // 2010.08.14 A 1213 | S_RewindSound(lpORGANBUFFER[track][key / 12][Phase]); // 2010.08.14 A 1214 | } else if (lpDRAMBUFFER[track - MAXMELODY] != NULL) { 1215 | S_StopSound(lpDRAMBUFFER[track - MAXMELODY]); 1216 | S_RewindSound(lpDRAMBUFFER[track - MAXMELODY]); 1217 | } 1218 | } 1219 | 1220 | //ƒfƒoƒbƒO—pB‚¢‚ë‚ñ‚ȏó‘Ô‚ðo—́B 1221 | void Rxo_ShowDirectSoundObject(HWND hwnd) 1222 | { 1223 | // ?? 1224 | } 1225 | 1226 | //‰¹‚ð‚·‚®‚É‘S•”Ž~‚ß‚é 1227 | void Rxo_StopAllSoundNow(void) 1228 | { 1229 | int i,j,k; 1230 | for (i = 0; i < SE_MAX; i++) 1231 | if (lpSECONDARYBUFFER[i] != NULL) { 1232 | S_StopSound(lpSECONDARYBUFFER[i]); 1233 | S_RewindSound(lpSECONDARYBUFFER[i]); 1234 | } 1235 | 1236 | for (i = 0; i < 8; i++){ 1237 | for (j = 0; j < 8; j++) { 1238 | for (k = 0; k < 2; k++) { 1239 | if (lpORGANBUFFER[i][j][k] != NULL) { 1240 | S_StopSound(lpORGANBUFFER[i][j][k]); 1241 | S_RewindSound(lpORGANBUFFER[i][j][k]); 1242 | } 1243 | } 1244 | } 1245 | if (lpDRAMBUFFER[i] != NULL) { 1246 | S_StopSound(lpDRAMBUFFER[i]); 1247 | S_RewindSound(lpDRAMBUFFER[i]); 1248 | } 1249 | } 1250 | for (i = 0; i < MAXTRACK; i++) 1251 | old_key[i]=255; //2014.05.02 A ‚±‚ê‚Å“ª‚ª•ςȉ¹‚ɂȂç‚È‚­‚·‚éB 1252 | } 1253 | 1254 | extern int sMetronome; 1255 | 1256 | void ExportOrganyaBuffer(unsigned long sample_rate, float* output_stream, size_t frames_total, size_t fade_frames) { 1257 | MUSICINFO mi; 1258 | org_data.GetMusicInfo(&mi); 1259 | 1260 | output_frequency = sample_rate; 1261 | vol_ticks = (long)((float)output_frequency * 0.004F); 1262 | 1263 | exporting = true; 1264 | 1265 | Rxo_StopAllSoundNow(); 1266 | S_ResetSounds(); 1267 | 1268 | org_data.SetPlayPointer(0); 1269 | 1270 | ma_mutex_lock(&organya_mutex); 1271 | 1272 | int lastMetro = sMetronome; 1273 | sMetronome = 0; 1274 | 1275 | organya_timer = mi.wait; 1276 | organya_countdown = 0; 1277 | 1278 | float* stream = output_stream; 1279 | size_t frames_done = 0; 1280 | while (frames_done != frames_total) { 1281 | float mix_buffer[0x400 * 2]; 1282 | size_t subframes = MIN(0x400, frames_total - frames_done); 1283 | memset(mix_buffer, 0, subframes * sizeof(float) * 2); 1284 | if (organya_timer == 0) { 1285 | ma_mutex_lock(&mutex); 1286 | S_MixSounds(mix_buffer, subframes); 1287 | ma_mutex_unlock(&mutex); 1288 | } 1289 | else { 1290 | unsigned int subframes_done = 0; 1291 | while (subframes_done != subframes) { 1292 | if (organya_countdown == 0) { 1293 | organya_countdown = (organya_timer * output_frequency) / 1000; 1294 | org_data.PlayData(); 1295 | } 1296 | const unsigned int frames_to_do = MIN(organya_countdown, subframes - subframes_done); 1297 | ma_mutex_lock(&mutex); 1298 | S_MixSounds(mix_buffer + subframes_done * 2, frames_to_do); 1299 | ma_mutex_unlock(&mutex); 1300 | subframes_done += frames_to_do; 1301 | organya_countdown -= frames_to_do; 1302 | } 1303 | } 1304 | 1305 | float fd = 1.0F; 1306 | for (size_t i = 0; i < subframes * 2; ++i) { 1307 | if (fade_frames > 0 && frames_done + i / 2 > frames_total - fade_frames) { 1308 | if (i % 2 == 0) 1309 | fd = ((float)(fade_frames - ((frames_done + i / 2) - (frames_total - fade_frames))) / (float)fade_frames); 1310 | mix_buffer[i] = mix_buffer[i] * fd; 1311 | } 1312 | 1313 | *stream++ = mix_buffer[i]; 1314 | } 1315 | frames_done += subframes; 1316 | } 1317 | 1318 | Rxo_StopAllSoundNow(); 1319 | 1320 | organya_countdown = 0; 1321 | organya_timer = 0; 1322 | 1323 | sMetronome = lastMetro; 1324 | 1325 | ma_mutex_unlock(&organya_mutex); 1326 | 1327 | output_frequency = device.sampleRate; 1328 | vol_ticks = (long)((float)output_frequency * 0.004F); 1329 | 1330 | exporting = false; 1331 | } 1332 | 1333 | void SetExportChannel(int track) { 1334 | s_solo = track; 1335 | } 1336 | -------------------------------------------------------------------------------- /source/Sound.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Sound.h -------------------------------------------------------------------------------- /source/Timer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Timer.h -------------------------------------------------------------------------------- /source/Wave/Cat.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Wave/Cat.wav -------------------------------------------------------------------------------- /source/Wave/Metro01.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Wave/Metro01.wav -------------------------------------------------------------------------------- /source/Wave/Metro02.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Wave/Metro02.wav -------------------------------------------------------------------------------- /source/Wave/WAVE100.wdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/Wave/WAVE100.wdb -------------------------------------------------------------------------------- /source/WinMain.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/WinMain.cpp -------------------------------------------------------------------------------- /source/WinTimer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/WinTimer.cpp -------------------------------------------------------------------------------- /source/help.txt: -------------------------------------------------------------------------------- 1 | OrgMaker 3 Ver3.0.9 Simple Help 2 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3 | 4 | Basic usage is the same as "OrgMaker 1" developed by Mr. Pixel. 5 | I have added variable window size, colored notes, 6 | changed "Dram" wording to "Drum" wording (laugh), 7 | released drum objects that weren't released (smile), 8 | and added lots and lots of functions I wanted for myself. 9 | 10 | The exact same added drum sounds will be used in game 11 | software that I'm making now. 12 | 13 | Although I didn't really intend to publish, 14 | Mr. Pixel's occasional guidance in the BBS helped me modify Organya, 15 | with this dependence on help with anything it has been released. 16 | 17 | ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 18 | 19 | << Important changes and notes >> 20 | 21 | 22 | # File format (2.0.0 and up) 23 | 24 | If you use the new drum sounds in Organya 2, it won't load in Organya 1. 25 | If you do not select any new drum sounds, it can be read in Organya 1. 26 | 27 | [Track names] 28 | Melody tracks 29 | 0 ~ 7 => 1 ~ 8 30 | Drum tracks 31 | 8 ~ 15 => Q ~ I 32 | 33 | When inputting track numbers (for example in Copy), please enter 34 | 1, 2, 3, 4, 5, 6, 7, 8, Q, W, E, R, T, Y, U, or I. 35 | 36 | 37 | # Export to MIDI Format (2.1.0 and up) 38 | 39 | Making this function was 10 years late! You'll notice it's already the mid 40 | 2010s. The difference between MIDI tracks and channels is where it was 41 | reborn. Because it's a bonus feature, there are rough places. 42 | 43 | I'm trying the following. 44 | 45 | [COMMON] 46 | * For now, it uses GM standards. That said, it doesn't insert a GM System On 47 | message because that only causes restrictions. There should be no problem 48 | with GS (Roland) or XG (Yamaha), because they're upwardly compatible 49 | with GM. 50 | * Extra CC events for operation aren't inserted. 51 | * The unused first bar is for control changes. Therefore, the sequencer 52 | measures are shifted by one with respect to Organya measures. To shorten 53 | the silence at the beginning, the first bar uses a fast tempo. 54 | * Each Organya track is assigned to a MIDI channel. 55 | 56 | [MELODY] 57 | * The Program Change value is based on the Organya instrument. (That said, 58 | you can change it when exporting.) 59 | * Tone change (RPN) isn't used. 60 | * The Freq setting is inherited. (Organya reference value is 1000, MIDI 61 | standard is 16,384.) 62 | * For Pan values, a CC event is inserted only when the Pan value is 63 | different than the previous note. 64 | * Volume values are reflected in the velocity values. 65 | * Events without a pitch are ignored (not converted). 66 | * When pipi is specified, the sound will be 2/3 the original length. 67 | 68 | [DRUM] 69 | * Of course, drums use channel 10. The eight Organya tracks Q to I are 70 | aggregated into one channel. 71 | * For drums only, the Pan value is ignored (not converted). 72 | * Drums are converted into plausible drum sounds. Although it's impossible 73 | to convert Cat. For cymbals and toms only, the pitch value will cause a 74 | change in the note number. 75 | 76 | [DIALOG] 77 | * Enter the number of repeats when exporting. 78 | You can export a crazy MIDI file size depending on the input value. 79 | It will insert the author information into the Conductor track. 80 | * Program Change values can be selected in the dialog. 81 | 82 | After exporting, it is assumed you will modify as appropriate in a MIDI 83 | sequencer. 84 | 85 | 86 | # Volume operations (2.1.0 and up) 87 | 88 | Use it when you want to draw a beautiful curve to attenuate the sound. 89 | It is useless to people who can draw beautiful curves freehand. 90 | 91 | The effect of the operations is slightly different, (1) modifies existing 92 | events, (2) automatically adds events. For example, in the case of 93 | linear decay, 94 | 95 | (1) Modify existing events only: 96 | Note length is not considered. All existing events are affected. 97 | 98 | <> => <> 99 | 100 | |O----------- O------------- |O----------- O------------- 101 | | O------- | O------- 102 | VOL|* * * |* 103 | | * | * 104 | | | * 105 | | | * 106 | 107 | Use for fade-outs. 108 | 109 | (2) Automatically add events: 110 | Note length is considered. Events are added to the entire selection, 111 | each note is processed individually. 112 | 113 | <> => <> 114 | 115 | |O----------- O------------- |O----------- O------------- 116 | | O------- | O------- 117 | VOL|* * * |*** ** *** 118 | | * | *** ** **** 119 | | | *** ** *** 120 | | | *** ** **** 121 | 122 | I wanted to add this feature. 123 | Internally, it first adds events to the entire selection, 124 | then calls (1) on each note. 125 | 126 | 127 | # Extend Note Heads (2.1.0 and up) 128 | 129 | @ When unchecked: 130 | When you zoom out, the notehead is reduced. 131 | 132 | @ When checked: 133 | When you zoom out, the notehead is increased up to 16 pixels. 134 | 135 | 136 | # Slide Overlapping Notes (2.1.0 and up) 137 | 138 | By shifting the notes of each track by about 1 pixel, you can see when the 139 | notes of another track are behind the notes of the current track. 140 | 141 | 142 | # Keyboard (2.0.7 and up) 143 | 144 | S F G J K L ; ] 145 | 146 | Z X C V B N M , . / 147 | ------------------------------------------- 148 | A B C D E F G A B C D 149 | 150 | [Tab] 1 octave up 151 | [Shift] 1 octave down 152 | 153 | 154 | # Shortcut keys (not shown in the menu) 155 | 156 | 1 ~ 8 Select track (melody) 157 | Q ~ I Select track (drums) 158 | Shift+1 ~ 8 Mute track (melody) 159 | Shift+Q ~ I Mute track (drums) 160 | 161 | F5 Play / Stop 162 | Num Pad 0 Play / Stop 163 | Alt+Right Play 164 | Alt+Left Rewind (stop) 165 | Arrows Scroll 166 | 167 | Wheel Scroll vertically 168 | Hold down wheel Scroll horizontally 169 | Shift+wheel Scroll horizontally 170 | Ctrl+wheel Scroll horizontally 171 | 172 | X Equivalent to right click 173 | Z Equivalent to left click 174 | 175 | Some mouse models Button 1 Select track +1 176 | Some mouse models Button 2 Select track -1 177 | * In IE, buttons used for "Back" and "Forward" 178 | * This function is mostly for my own use. 179 | 180 | Num Pad 1 Select current track + 1 from the left edge [with Ctrl, all tracks] 181 | Num Pad 2 Select current track + 2 from the left edge [with Ctrl, all tracks] 182 | Num Pad 3 Select current track + 3 from the left edge [with Ctrl, all tracks] 183 | Num Pad 4 Select current track + 4 from the left edge [with Ctrl, all tracks] 184 | Num Pad 5 Select current track + 8 from the left edge [with Ctrl, all tracks] 185 | Num Pad 6 Select current track +16 from the left edge [with Ctrl, all tracks] 186 | 187 | Num Pad 7 Duplicate selection x 1 from the left edge 188 | Num Pad 8 Duplicate selection x 2 from the left edge 189 | Num Pad 9 Duplicate selection x 3 from the left edge 190 | Num Pad + Duplicate selection x 4 from the left edge 191 | 192 | 193 | # Mouse operation 194 | 195 | Tab + left click and drag Select range 196 | (Mouse pointer doesn't have to be at the bottom) 197 | 198 | Tab + right click Deselect range 199 | (Mouse pointer doesn't have to be at the bottom) 200 | 201 | Menu + select range Select in measure units 202 | 203 | Alt + select range Select in beat units 204 | 205 | 206 | # Feature Description 207 | 208 | [Stretch to n times] 209 | Extend the interval and length of the notes. Adjustment of repeat position is 210 | not preformed. Use if you ever want to use a triplet in the middle. 211 | 212 | [Shorten 1/n times] 213 | Reverse the above operation. 214 | Notes not in the position of a multiple of n are removed. 215 | 216 | * Current track ~ If the selection range is selected on 217 | a drum track, changes only the notes included in the range. 218 | 219 | [The target is always the current track] 220 | This is also a special feature. 221 | When the track changes, the selection will be changed to the current track 222 | automatically. In addition, "select all tracks" is interpreted as follows: 223 | * Current track 1 ~ 8 => Only select melody tracks. 224 | * Current track Q ~ I => Only select drum tracks. 225 | Use when you want to copy and paste melody line and drum line separately. 226 | 227 | 228 | # Range selection operator 229 | The base measure is the measure located on the LEFT SIDE OF THE SCREEN. 230 | Clear the range by right-clicking. 231 | Will be selected in units of beats when you check "~ in units of the grid." 232 | 233 | I think this operator is intuitive. 234 | * This function is mostly for my own use. 235 | 236 | 237 | [] Pan and Volume headers light up when you click on them. 238 | They only light up in version 3.0.8. It has no significance. 239 | Clicking Select toggles the "Always Select Current Track" function. 240 | 241 | 242 | # Revision History 243 | 244 | 3.0.9 2024/10/16 Added soundbanks, which are like MIDI soundfonts but for 245 | Organya 246 | Added separate channel export option when exporting to .wav 247 | Added length options for volume decay commands 248 | Added decimals to BPM conversion in song properties 249 | Updated backend for rendering and audio, should hopefully be 250 | more stable now 251 | .wav exports are now more accurate to actual playback 252 | Fixed drum note lengths not updating properly (for volume 253 | decays) 254 | 255 | 3.0.8 2024/05/07 Added exporting to .wav format 256 | Fixed keyboard ignoring Freq. property 257 | Fixed swap tracks crash 258 | More tweaks and small bug fixes 259 | 260 | 3.0.7 2024/01/22 Themes now support editing the main cursor 261 | Fixed a crash with keyboard preview 262 | Fixed small issues with loading/saving .org files 263 | Theme image files now use .bmp extension 264 | Fixed pipi setting not updating properly 265 | Fixed bug with note length while copying 266 | Fixed broken visuals on very small window sizes 267 | Fixed visual layers being incorrect 268 | 269 | 3.0.6 2023/12/02 Default repeat end changed to 100 measures 270 | Smooth scrolling no longer slows down song playback in 271 | certain cases 272 | Fixed a quick copy crash 273 | Fixed a crash with 16/16 time 274 | 275 | 3.0.5 2023/08/29 Added Page Left/Right keybinds (shift+arrow key) 276 | Updated dialogs to allow 3-digit step input 277 | Fixed "Open with..."/dropped file not working 278 | 279 | 3.0.4 2023/08/03 Removed "Precise" checkbox from repeat range and replaced it 280 | with a separate step textbox 281 | Exiting with unsaved changes will now ask you and let you 282 | save the file 283 | Maximum song length is now 999 measures 284 | Improved note testing function (clicking on the piano keyboard) 285 | Improved workaround for smooth scrolling slowing down faster 286 | songs 287 | Even more tweaks and small bug fixes 288 | 289 | 3.0.3 2023/07/15 Updated some low quality strings 290 | Automatically detect loop precise mode on song load 291 | Added "to end" button and re-arranged player dialog 292 | 293 | 3.0.2 2023/07/01 Fixed crash when swapping drum tracks 294 | Increased max song length from 256 to 1024 measures 295 | 296 | 3.0.1 2023/06/28 Fixed incorrect save for some options 297 | Fixed option bug with TAB & SHIFT key 298 | 299 | 3.0.0 2023/06/28 Added smoother horizontal scrolling (per note instead 300 | of per measure) 301 | Added metronome option 302 | Added custom theme support 303 | Added support for more precise loop regions (per note 304 | instead of per measure) 305 | Fixed "crash" bug when zooming/scrolling while playing song 306 | Very many bug fixes 307 | Some small tweaks to scrolling 308 | 309 | 2.1.1 2014/10/19 Bug fix when selecting number 0 of the recently used files 310 | Use String Table for messages to be displayed (halfway) 311 | Other minor corrections 312 | 313 | 2.1.0 2014/05/31 Added Insert and Remove functions 314 | Added Export to Standard MIDI Format function 315 | Added Volume Operation functions 316 | Added Swap Track function 317 | Added Zoom functions 318 | 319 | 2.0.8b 2011/10/17 Added drum sounds 320 | 321 | 2.0.8a 2010/12/01 Modified Silence Hung Notes to completely stop sound 322 | Numeric keypad simulates measure selection and Duplicate 323 | 324 | 2.0.8 2010/09/28 To move comfortably to Windows 7 (x64), partially 325 | modified and tweaked the menu structure 326 | Corrected the volume of drums added in 2.0.1 327 | 328 | 2.0.7 2010/08/14 Revisions regarding rendering to reduce CPU load and 329 | reduce frustration when editing 330 | Playable keyboard with ZXCVB... 331 | Revised the range width of the vertical scroll bar 332 | 333 | 2.0.6 2008/05/13 Bug fixes, Added function to mute only melody or drums 334 | 335 | 2.0.5 2005/02/24 Redesigned the dialog window, Always Select Current Track, 336 | Recent Files, Show All Tracks (Translucent), 337 | Automatic load if you pass a file name to the application 338 | 339 | 2.0.4 2005/02/13 Modified note drawing routines 340 | Initial pan value for each track 341 | 342 | 2.0.3 2005/02/13 Supports odd time signatures 343 | 344 | 2.0.2 2005/02/11 Implemented Undo and Redo 345 | Implemented range selection operations 346 | 347 | 2.0.1 2005/02/07 Down date - Scroll related bugs (RECT instruction 348 | differences) 349 | 350 | 2.0.0 2004/02/06 351 | 352 | 353 | # Distributor 354 | http://www5b.biglobe.ne.jp/~kiss-me/aji/index.html 355 | 356 | 357 | # Limitations 358 | 359 | In dual screen (multi-monitor) environments, the music notation is not drawn 360 | beyond an area the size of the main monitor. 361 | Once you enlarge the window and restart, it will draw to the second screen. 362 | ...Because the function that returns the size of the virtual display is not 363 | supported by VC++ 6.0, it is a last resort. 364 | 365 | The playing keyboard has limited polyphony. 366 | Occasionally, audio will keep sounding. 367 | 368 | Characters allowed in the file name are limited to what the char type can 369 | handle: ASCII and Shift_JIS. You can use the third and forth level kanji 370 | that are specified in Shift_JIS. However, without Unicode, you can't use 371 | other strange characters and symbols. 372 | I would handle if you specify the appropriate string manipulation functions 373 | and file manipulation functions to change type char to wchar_t. 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 384 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 385 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 386 | The following is the help file that came with OrgMaker 1.3.4. 387 | There are points where the specifications are slightly 388 | different, for your information. 389 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 390 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 391 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 392 | 393 | Organya Documentation 394 | 395 | - - - Version November 3 1999 (Ver1.0) - - - 396 | Notation is heavier. 397 | 398 | - - - Version November 10 1999 (Ver1.1) - - - 399 | A problem with the copy (series) function. 400 | 401 | - - - Version November 16 1999 (Ver1.2) - - - 402 | Bugs such as the inability to release mute during playback. 403 | It does not have the so-called PiPi. 404 | 405 | - - - Version November 25 2000 (Ver1.3) - - - 406 | Track 6 mute bug 407 | 408 | ------Version 1.3.1 2001/03/21 -------------- 409 | "Has been cleared" messages after Delete. 410 | 411 | ------Version 1.3.1 2001/04/07 -------------- 412 | 413 | ------Version 1.3.4 2003/03/23 -------------- 414 | Minimum value of Wait is set to 1. 415 | 416 | 417 | 418 | This is Amaya of Studio Pixel. 419 | 420 | In the studio, an earlier composition software that doesn't use a MIDI 421 | sound source, called "PiyoPiyo", had been used to make things. With that 422 | referred to as the first publicly available tool, slight issues came up 423 | during its use and after. 424 | 425 | Based on it, from August 1999 through now, finally the next work "Organya" 426 | is complete. Previously the strength, I decided to compromise PiyoPiyo's 427 | additional expression system (although pale in sound). 428 | 429 | Basically an internal development tool, and not very general, occasionally 430 | people who say "I like the pale sound for some reason" and even "I want to 431 | compose that sound" call this tool perfect. 432 | 433 | 434 | 435 | ||| "Organya" Basic Specifications ||||||||||||||||||||||||||||||||| 436 | 437 | < Main space > - - - - - - - - - - - - - - - - - - - - - - - - - - - 438 | 188 Kbytes (192,512 bytes) 439 | 440 | < Tested specifications >- - - - - - - - - - - - - - - - - - - - - - 441 | Windows95, DirectX5, CPU: 166MHz, MMX, VRAM: 2MByte, Memory: 32MByte 442 | 443 | < Maximum polyphony >- - - - - - - - - - - - - - - - - - - - - - - - 444 | 1 sound in 1 track, a total of 16 sounds output at the same time. 445 | 446 | < Tone > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 447 | Tracks 0-7 are selected from 100 types of waveforms. (Main melody) 448 | Tracks 8-15 are selected from 10 types of waveforms. (Mainly percussion) 449 | 450 | < Number of notations recordable > - - - - - - - - - - - - - - - - - 451 | In this version, you can record 4069 notations in one track, 65536 452 | total in a song. You can check the remaining amount and the amount 453 | currently in use in in the "debug" menu. 454 | 455 | 456 | ||| Reproduction, etc. ||||||||||||||||||||||||||||||||||||||||||||| 457 | 458 | This software is free software. I allow copying and reproduction. 459 | It would be greatly appreciated if you could contact by e-mail. 460 | No responsibility is assumed for problems caused by this software. 461 | Please understand that there is no malice in the production. 462 | 463 | 464 | ||| How to use ||||||||||||||||||||||||||||||||||||||||||||||||||||| 465 | 466 | 467 | < Notation placement guide > - - - - - - - - - - - - - - - - - - - - 468 | 469 | @ Place a note 470 | 471 | Left click to place a note. 472 | Further, when you click on a note, the note is extended. 473 | 474 | @ Erase a note 475 | 476 | Erase the note by right-clicking. 477 | In case of long note, the note will shrink. 478 | 479 | @ Changing the pan 480 | 481 | When you left-click pan line you can put a pan symbol. 482 | 483 | @ Changing the volume 484 | 485 | When you left-click the volume line, you can put a volume symbol. 486 | 487 | 488 | @ Changing the sound 489 | 490 | In "Settings", click "Waveform selection." 491 | Track 0 ~ 7, choose sound from among the 100 sounds. 492 | Track 8 ~ 15, choose sound from among the 10 sounds. 493 | 494 | 495 | < Song setting guide > - - - - - - - - - - - - - - - - - - - - - - - 496 | 497 | You can change the song parameters in "Song settings" in the "Settings" menu. 498 | Please click "Ok!" to confirm, "No!" to cancel. 499 | 500 | @ Changing the tempo 501 | 502 | Change the Wait in "Song settings". 503 | The larger the number, the slower the progression of the song. 504 | 505 | @ Changing the repeat range 506 | 507 | Change the "Song settings" repeat range. 508 | Start 8, End 65, after playing measure 64, return to measure 8. 509 | 510 | @ Changing the time signature 511 | 512 | Change the display grid. 513 | 514 | @ Changing the frequency 515 | 516 | Change the "Song settings" frequency. 517 | This can only be changed for tracks 0~7. 518 | 1000 is normal, enter a value of from 100 up to 1900. 519 | 520 | @ PiPi 521 | Uses sound shorter than the grid. 522 | 523 | 524 | < Range edit guide > - - - - - - - - - - - - - - - - - - - - - - - - 525 | 526 | In the menu "Range edit" is Copy or Delete, also volume range and 527 | such can be changed. 528 | 529 | @ Copy 530 | Preform a copy and paste for one track. 531 | 532 | Copy Track 0: Meas 0: Beat 0: ~ Meas 8: Beat 0 533 | -> From track 0, from measure 0 to the end of measure 7, 534 | Destination Track 3: Meas 4: Beat 0: 535 | -> To track 3, measure 4, 536 | Times 4 537 | -> paste 4 times. 538 | 539 | @ Copy multiple 540 | 541 | Lets you copy the contents of multiple tracks at the same time. 542 | Please check the target tracks. 543 | 544 | @ Pan 545 | 546 | Move the pan by the specified range. 547 | "Value" How much. "Add/subtract" If "up" moves right, if "down" moves left. 548 | 549 | @ Volume 550 | 551 | Move the volume by the specified range. 552 | "Value" How much. "Add/subtract" If "up" add, if "down" subtract. 553 | 554 | @ Transpose 555 | 556 | Move the key (pitch) by the specified range. 557 | "Value" How much. "Add/subtract" If "up" add, if "down" subtract. 558 | 559 | @ Erase 560 | 561 | Clears the notation in the the specified range. 562 | Please refer to Copy for how to specify. 563 | 564 | 565 | 566 | |||||||||||||||||||||||||||||||||||||||||||| 567 | Organya By Studio Pixel 568 | URL -> http://hp.vector.co.jp/authors/VA022293/ 569 | -------------------------------------------------------------------------------- /source/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by Script1.rc 4 | // 5 | #define IDS_STRING1 1 6 | #define IDS_TITLE 2 7 | #define IDS_CANCEL 3 8 | #define IDS_CHANGE_KEY 4 9 | #define IDC_OPNTHMFLD 4 10 | #define IDS_CHANGE_PAN 5 11 | #define IDS_CHANGE_VOLUME 6 12 | #define IDS_CLEAR_RECENT 7 13 | #define IDS_COPY 8 14 | #define IDS_ERROR_BUNKATSU 9 15 | #define IDS_ERROR_COPY 10 16 | #define IDS_ERROR_EXPORT 11 17 | #define IDS_ERROR_FILE 12 18 | #define IDS_ERROR_HYOUSHI 13 19 | #define IDS_ERROR_LOAD 14 20 | #define IDS_ERROR_L_TRACK 15 21 | #define IDS_ERROR_PAN 16 22 | #define IDS_ERROR_REPERT 17 23 | #define IDS_ERROR_R_TRACK 18 24 | #define IDS_ERROR_SAVE 19 25 | #define IDS_ERROR_SWAP 20 26 | #define IDS_ERROR_TRACK 21 27 | #define IDS_ERROR_TRANS 22 28 | #define IDS_ERROR_VOLUME 23 29 | #define IDS_ERROR_WAIT 24 30 | #define IDS_INFO_CLEAR 25 31 | #define IDS_INFO_INITIALIZE 26 32 | #define IDS_INFO_MEMORY 27 33 | #define IDS_INFO_NARABEKAE 28 34 | #define IDS_INFO_SAME_FILE 29 35 | #define IDS_INFO_TITLE_FREQ 30 36 | #define IDS_NOTIFY_EXIT 31 37 | #define IDS_NOTIFY_UNSAVED 31 38 | #define IDS_NOTIFY_INITIALIZE 32 39 | #define IDS_NOTIFY_LOAD 33 40 | #define IDS_NOTIFY_OVERWRITE 34 41 | #define IDS_NOTIFY_RECENT_INITIALIZE 35 42 | #define IDS_NOTIFY_TITLE 36 43 | #define IDS_NOTIFY_TITLE_EXIT 37 44 | #define IDS_NOTIFY_TITLE_UNSAVED 37 45 | #define IDS_NOTIFY_TITLE_INITALIZE 38 46 | #define IDS_NOTIFY_TITLE_LOAD 39 47 | #define IDS_SWAP_TRACK 40 48 | #define IDS_USAGE 41 49 | #define IDS_VALUESET012 42 50 | #define IDS_VALUESET0254 43 51 | #define IDS_VALUESET1001900 44 52 | #define IDS_VALUESET12000 45 53 | #define IDS_WARNING_ACCESS_FILE 46 54 | #define IDS_WARNING_BUNKATSU 47 55 | #define IDS_WARNING_COPY_HANI 48 56 | #define IDS_WARNING_COPY_KAISUU 49 57 | #define IDS_WARNING_FROM_BEAT 50 58 | #define IDS_WARNING_FROM_TO 51 59 | #define IDS_WARNING_FROM_TRACK 52 60 | #define IDS_WARNING_HANI 53 61 | #define IDS_WARNING_HYOUSHI 54 62 | #define IDS_WARNING_TO_BEAT 55 63 | #define IDS_WARNING_TO_TRACK 56 64 | #define IDS_WARNING_TRACK 57 65 | #define IDS_ERROR 58 66 | #define IDS_MODIFIED 59 67 | #define IDS_DEFAULT_MIDI_TITLE 60 68 | #define IDS_STRING61 61 69 | #define IDS_STRING62 62 70 | #define IDS_STRING63 63 71 | #define IDS_STRING64 64 72 | #define IDS_STRING65 65 73 | #define IDS_STRING66 66 74 | #define IDS_STRING67 67 75 | #define IDS_STRING68 68 76 | #define IDS_STRING69 69 77 | #define IDS_STRING70 70 78 | #define IDS_STRING71 71 79 | #define IDS_STRING72 72 80 | #define IDS_STRING73 73 81 | #define IDS_STRING74 74 82 | #define IDS_STRING75 75 83 | #define IDS_STRING76 76 84 | #define IDS_DEFAULT_ORG_FILENAME 77 85 | #define IDS_STRING78 78 86 | #define IDS_STRING79 79 87 | #define IDS_STRING80 80 88 | #define IDS_STRING81 81 89 | #define IDS_STRING82 82 90 | #define IDS_STRING83 83 91 | #define IDS_STRING84 84 92 | #define IDS_STRING85 85 93 | #define IDS_STRING86 86 94 | #define IDS_STRING87 87 95 | #define IDS_STRING88 88 96 | #define IDS_STRING89 89 97 | #define IDS_STRING90 90 98 | #define IDS_STRING91 91 99 | #define IDS_STRING92 92 100 | #define IDS_STRING93 93 101 | #define IDS_STRING94 94 102 | #define IDS_STRING95 95 103 | #define IDS_STRING96 96 104 | #define IDS_STRING97 97 105 | #define IDS_STRING98 98 106 | #define IDS_STRING99 99 107 | #define IDS_STRING100 100 108 | #define IDS_STRING101 101 109 | #define IDS_STRING102 102 110 | #define IDS_STRING103 103 111 | #define IDS_STRING104 104 112 | #define IDS_STRING105 105 113 | #define IDS_STRING106 106 114 | #define IDS_GRID_STRING 107 115 | #define IDS_STRING108 108 116 | #define IDS_STRING109 109 117 | #define IDS_STRING110 110 118 | #define IDS_STRING111 111 119 | #define IDS_STRING112 112 120 | #define IDS_STRING113 113 121 | #define IDS_STRING114 114 122 | #define IDS_STRING115 115 123 | #define IDS_STRING116 116 124 | #define IDS_STRING117 117 125 | #define IDS_STRING118 118 126 | #define IDS_STRING119 119 127 | #define IDS_STRING120 120 128 | #define IDS_STRING121 121 129 | #define IDS_STRING122 122 130 | #define IDS_STRING123 123 131 | #define IDS_STRING124 124 132 | #define IDR_ACCELERATOR1 164 133 | #define IDD_DIALOGOPEN 190 134 | #define IDD_MIDI 232 135 | #define IDD_DIALOG1 236 136 | #define IDD_LB1 1001 137 | #define IDM_DIALOG1 1002 138 | #define IDM_DLGGRID 1002 139 | #define IDC_PLAY 1002 140 | #define IDM_DLGSETTING 1002 141 | #define IDC_STOP 1003 142 | #define IDC_EDIT1 1004 143 | #define IDE_VIEWWAIT 1004 144 | #define IDD_REP_MEAS 1004 145 | #define IDE_DELTRACK 1004 146 | #define IDE_PAR 1004 147 | #define IDE_USE0 1004 148 | #define IDC_HELPTEXT 1004 149 | #define IDC_PANPOT1 1004 150 | #define IDC_REPEAT 1004 151 | #define IDD_SETWAIT 1005 152 | #define IDE_VIEWXPOS 1005 153 | #define IDE_TRACK2 1005 154 | #define IDE_VIEWTRACK 1005 155 | #define IDC_PANPOT2 1005 156 | #define IDC_AUTHOR 1005 157 | #define IDD_END_MEAS 1006 158 | #define IDE_VIEWMEAS 1006 159 | #define IDC_PANPOT3 1006 160 | #define IDC_TITLE 1006 161 | #define IDD_SETFREQ2 1007 162 | #define IDC_PANPOT4 1007 163 | #define IDD_SETTRACK 1008 164 | #define IDD_SETFREQ10 1008 165 | #define IDC_PANPOT5 1008 166 | #define IDC_CHECK1 1009 167 | #define IDD_SETFREQ3 1009 168 | #define IDC_MUTE0 1009 169 | #define IDC_PANPOT6 1009 170 | #define IDD_SETFREQ4 1010 171 | #define IDC_USE1 1010 172 | #define IDC_PANPOT7 1010 173 | #define IDD_SETFREQ5 1011 174 | #define IDC_USE2 1011 175 | #define IDC_PANPOT8 1011 176 | #define IDD_SETFREQ6 1012 177 | #define IDE_USE1 1012 178 | #define IDC_USE3 1012 179 | #define IDC_VOLUME1 1012 180 | #define IDD_SETFREQ7 1013 181 | #define IDE_USE2 1013 182 | #define IDC_USE4 1013 183 | #define IDC_MUTE2 1013 184 | #define IDC_VOLUME2 1013 185 | #define IDD_SETFREQ0 1014 186 | #define IDC_TRACK0 1014 187 | #define IDE_USE3 1014 188 | #define IDC_USE5 1014 189 | #define IDC_VOLUME3 1014 190 | #define IDD_SETFREQ1 1015 191 | #define IDC_TRACK1 1015 192 | #define IDE_USE4 1015 193 | #define IDC_USE6 1015 194 | #define IDC_VOLUME4 1015 195 | #define IDC_TRACK2 1016 196 | #define IDD_SETFREQ8 1016 197 | #define IDE_USE5 1016 198 | #define IDC_USE7 1016 199 | #define IDC_VOLUME5 1016 200 | #define IDC_TRACK3 1017 201 | #define IDD_SETFREQ9 1017 202 | #define IDC_START 1017 203 | #define IDE_USE6 1017 204 | #define IDC_USE8 1017 205 | #define IDC_VOLUME6 1017 206 | #define IDC_TRACK4 1018 207 | #define IDD_SETFREQ11 1018 208 | #define IDE_DELFROM 1018 209 | #define IDE_USE7 1018 210 | #define IDC_USE9 1018 211 | #define IDC_VOLUME7 1018 212 | #define IDC_TRACK5 1019 213 | #define IDD_SETFREQ12 1019 214 | #define IDE_DELTO 1019 215 | #define IDC_USE10 1019 216 | #define IDC_VOLUME8 1019 217 | #define IDC_TRACK6 1020 218 | #define IDD_SETFREQ13 1020 219 | #define IDE_MEAS1_2 1020 220 | #define IDC_PANPOT9 1020 221 | #define IDC_TRACK7 1021 222 | #define IDD_SETFREQ14 1021 223 | #define IDE_BEAT1_2 1021 224 | #define IDC_PANPOT10 1021 225 | #define IDD_SETFREQ15 1022 226 | #define IDE_MEAS2 1022 227 | #define IDC_MUTE3 1022 228 | #define IDC_PANPOT11 1022 229 | #define IDC_TRACK8 1023 230 | #define IDE_BEAT2 1023 231 | #define IDC_PANPOT12 1023 232 | #define IDD_SETFREQx0 1023 233 | #define IDC_TRACK9 1024 234 | #define IDC_USE11 1024 235 | #define IDC_PANPOT13 1024 236 | #define IDD_SETFREQx1 1024 237 | #define IDC_TRACK10 1025 238 | #define IDE_COPYNUM 1025 239 | #define IDC_PANPOT14 1025 240 | #define IDD_SETFREQx2 1025 241 | #define IDC_TRACK11 1026 242 | #define IDE_TRACK1 1026 243 | #define IDC_USE12 1026 244 | #define IDC_PANPOT15 1026 245 | #define IDD_SETFREQx3 1026 246 | #define IDC_TRACK12 1027 247 | #define IDE_MEAS1_1 1027 248 | #define IDC_PANPOT16 1027 249 | #define IDD_SETFREQx4 1027 250 | #define IDC_TRACK13 1028 251 | #define IDE_BEAT1_1 1028 252 | #define IDC_VOLUME9 1028 253 | #define IDD_SETFREQx5 1028 254 | #define IDC_TRACK14 1029 255 | #define IDR_ADD 1029 256 | #define IDC_USE13 1029 257 | #define IDC_VOLUME10 1029 258 | #define IDD_SETFREQx6 1029 259 | #define IDC_TRACK15 1030 260 | #define IDR_SUB 1030 261 | #define IDC_USE14 1030 262 | #define IDC_VOLUME11 1030 263 | #define IDD_SETFREQx7 1030 264 | #define Meas 1031 265 | #define IDC_USE15 1031 266 | #define IDC_MUTE4 1031 267 | #define IDC_VOLUME12 1031 268 | #define IDE_TRACK 1032 269 | #define IDC_MUTE5 1032 270 | #define IDC_VOLUME13 1032 271 | #define IDE_MEAS1 1033 272 | #define IDC_MUTE6 1033 273 | #define IDC_VOLUME14 1033 274 | #define IDC_USE0 1034 275 | #define IDC_MUTE7 1034 276 | #define IDC_VOLUME15 1034 277 | #define IDC_MUTE8 1035 278 | #define IDC_VOLUME16 1035 279 | #define IDC_MUTE9 1036 280 | #define IDC_MUTE10 1037 281 | #define IDC_MUTE11 1038 282 | #define IDD_DEFPAN 1038 283 | #define IDC_MUTE12 1039 284 | #define IDD_DEFVOLUME 1039 285 | #define IDC_MUTE13 1040 286 | #define IDC_CHECK_PIPI0 1040 287 | #define IDC_MUTE14 1041 288 | #define IDC_CHECK_PIPI1 1041 289 | #define IDC_LEFT 1041 290 | #define IDC_MUTE15 1042 291 | #define IDC_CHECK_PIPI2 1042 292 | #define IDC_SLIDER1 1042 293 | #define IDE_USE8 1043 294 | #define IDC_MUTE1 1043 295 | #define IDC_CHECK_PIPI3 1043 296 | #define VS_SLIDER_RESET 1043 297 | #define IDE_USE9 1044 298 | #define IDC_CHECK_PIPI4 1044 299 | #define IDC_RIGHT 1044 300 | #define IDC_SETCOPY_FULLCLICK 1044 301 | #define IDE_USE10 1045 302 | #define IDC_CHECK_PIPI5 1045 303 | #define IDC_SETCOPY_FULLCLICK2 1045 304 | #define IDE_USE11 1046 305 | #define IDC_CHECK_PIPI6 1046 306 | #define IDE_USE12 1047 307 | #define IDC_CHECK_PIPI7 1047 308 | #define IDE_USE13 1048 309 | #define ID_ICON_ORG 1048 310 | #define IDE_USE14 1049 311 | #define IDE_USE15 1050 312 | #define IDE_LEFT8 1051 313 | #define IDE_LEFT9 1052 314 | #define IDE_LEFT10 1053 315 | #define IDC_CTB1 1053 316 | #define IDE_LEFT11 1054 317 | #define IDE_LEFT12 1055 318 | #define IDE_LEFT13 1056 319 | #define IDC_CTB2 1056 320 | #define IDE_LEFT14 1057 321 | #define IDC_CTB3 1057 322 | #define IDE_LEFT15 1058 323 | #define IDC_CTB4 1058 324 | #define IDC_CTB5 1059 325 | #define IDC_CTB6 1060 326 | #define IDC_CTB7 1061 327 | #define IDC_CTB8 1062 328 | #define IDE_LEFT0 1063 329 | #define IDC_CTB9 1063 330 | #define IDC_CTB10 1064 331 | #define IDC_CTB11 1065 332 | #define IDC_CTB12 1066 333 | #define IDC_PST1 1067 334 | #define IDC_PST2 1068 335 | #define IDC_PST3 1069 336 | #define IDC_PST4 1070 337 | #define IDE_LEFT1 1071 338 | #define IDE_LEFT2 1072 339 | #define IDC_DELETEBUTTON 1072 340 | #define IDE_LEFT3 1073 341 | #define IDC_BTNCLOSE 1073 342 | #define IDE_LEFT4 1074 343 | #define IDC_COPYNOTION 1074 344 | #define IDE_LEFT5 1075 345 | #define IDC_BUTTON1 1075 346 | #define IDC_INSERTBUTTON 1075 347 | #define IDE_LEFT6 1076 348 | #define IDD_GRIDEDIT1 1076 349 | #define IDC_BTN_SOLO 1076 350 | #define IDC_DELETEBUTTON_2 1076 351 | #define IDE_LEFT7 1077 352 | #define IDD_GRIDEDIT2 1077 353 | #define IDC_BTN_MELO 1077 354 | #define IDC_DEF_NOWLOAD 1078 355 | #define IDC_BTN_DRUM 1078 356 | #define IDC_DEF_NOWSAVE 1079 357 | #define IDC_BTN_LOUPE1 1079 358 | #define IDC_BTN_SORT 1080 359 | #define IDC_BTN_LOUPE2 1080 360 | #define IDC_BTN_FULL 1081 361 | #define IDC_STATUS1 1082 362 | #define IDC_STATUS2 1083 363 | #define IDC_TR_TRACK 1083 364 | #define IDC_STATUS3 1084 365 | #define IDC_TR_WAIT 1084 366 | #define IDC_WAVE100 1084 367 | #define IDC_LABEL_TRACK_1 1085 368 | #define IDC_LABEL_TRACK_2 1086 369 | #define IDC_LABEL_TRACK_3 1087 370 | #define IDC_LABEL_TRACK_4 1088 371 | #define IDC_LABEL_TRACK_5 1089 372 | #define IDC_LABEL_TRACK_6 1090 373 | #define IDC_LABEL_TRACK_7 1091 374 | #define IDC_LABEL_TRACK_8 1092 375 | #define IDC_LABEL_TRACK_Q 1093 376 | #define IDC_LABEL_TRACK_W 1094 377 | #define IDC_LABEL_TRACK_E 1095 378 | #define IDC_LABEL_TRACK_R 1096 379 | #define IDC_LABEL_TRACK_T 1097 380 | #define IDC_LABEL_TRACK_Y 1098 381 | #define IDC_LABEL_TRACK_U 1099 382 | #define IDC_LABEL_TRACK_I 1100 383 | #define IDC_DRUM 1102 384 | #define IDC_NOTE 1106 385 | #define IDC_PRESET1 1107 386 | #define IDC_PRESET2 1108 387 | #define IDC_CHECK_PIPIx0 1108 388 | #define IDC_PRESET3 1109 389 | #define IDC_CHECK_PIPIx1 1109 390 | #define IDC_CHECK_PIPIx2 1110 391 | #define IDC_PRESET4 1111 392 | #define IDC_CHECK_PIPIx3 1111 393 | #define IDC_PRESET5 1112 394 | #define IDC_CHECK_PIPIx4 1112 395 | #define IDC_CHECK_PIPIx5 1113 396 | #define IDC_CHECK_PIPIx6 1114 397 | #define IDC_CHECK_PIPIx7 1115 398 | #define IDC_MESSAGE 1117 399 | #define IDC_MIDIPC1 1201 400 | #define IDC_MIDIPC2 1202 401 | #define IDC_MIDIPC3 1203 402 | #define IDC_MIDIPC4 1204 403 | #define IDC_MIDIPC5 1205 404 | #define IDC_MIDIPC6 1206 405 | #define IDC_MIDIPC7 1207 406 | #define IDC_MIDIPC8 1208 407 | #define IDC_ALL_SQUAREWAVE 1210 408 | #define IDC_ALL_SQUAREWAVE1 1210 409 | #define IDC_ALL_SQUAREWAVE2 1211 410 | #define IDC_BPM 1211 411 | #define IDC_ALL_SQUAREWAVE3 1212 412 | #define IDC_BTN1 1212 413 | #define IDC_ALL_SQUAREWAVE4 1213 414 | #define IDC_BTN2 1213 415 | #define IDD_THEMES 1213 416 | #define IDC_LEFTSTEP 1214 417 | #define IDC_RIGHTSTEP 1215 418 | #define IDC_END 1216 419 | #define IDD_REP_BEAT 1217 420 | #define IDD_END_BEAT 1218 421 | #define IDE_SAMPLE_RATE 1219 422 | #define IDE_LOOP_COUNT 1220 423 | #define IDE_FADE_MSECONDS 1221 424 | #define IDD_WAVEDBS 1222 425 | #define IDC_EXPORTTEXT 1223 426 | #define IDC_EXPORTSEPARATE 1224 427 | #define IDE_VOL_LENGTH 1225 428 | #define IDC_VOL_USENOTELEN 1226 429 | #define IDC_VOL_SETNOTELEN 1227 430 | #define IDM_DLGWAIT 40003 431 | #define IDM_DLGTRACK 40004 432 | #define IDM_DLGWAVE 40005 433 | #define IDM_SAVENEW 40006 434 | #define IDM_LOAD 40007 435 | #define IDM_EXIT 40008 436 | #define IDM_DLGDELETE 40010 437 | #define IDM_INIT 40011 438 | #define IDM_DLGCOPY 40012 439 | #define IDM_DLGPAN 40013 440 | #define IDM_DLGTRANS 40014 441 | #define IDM_DLGVOL 40015 442 | #define IDM_SAVEOVER 40016 443 | #define IDM_DLGUSED 40017 444 | #define IDM_DLGMEMO 40018 445 | #define IDM_DLGCOPY2 40019 446 | #define IDM_DLGDEFAULT 40020 447 | #define ID_AC_MENUOPEN 40022 448 | #define ID_AC_MENUOVERSAVE 40023 449 | #define ID_AC_MENUNEWSAVE 40024 450 | #define ID_AC_PRESS_LEFT 40025 451 | #define ID_AC_PRESS_RIGHT 40026 452 | #define ID_AC_WAVESELECT 40027 453 | #define ID_AC_1 40028 454 | #define ID_AC_2 40029 455 | #define ID_AC_3 40030 456 | #define ID_AC_4 40031 457 | #define ID_AC_5 40032 458 | #define ID_AC_6 40033 459 | #define ID_AC_7 40034 460 | #define ID_AC_8 40035 461 | #define ID_AC_Q 40036 462 | #define ID_AC_W 40037 463 | #define ID_AC_E 40038 464 | #define ID_AC_R 40039 465 | #define ID_AC_T 40040 466 | #define ID_AC_Y 40041 467 | #define ID_AC_U 40042 468 | #define ID_AC_I 40043 469 | #define ID_AC_SETTEMPO 40044 470 | #define ID_AC_DEFAULT 40045 471 | #define ID_AC_DELETE 40046 472 | #define ID_AC_COPY 40047 473 | #define ID_AC_COPY2 40048 474 | #define IDM_CT_PAN_R 40049 475 | #define IDM_CT_PAN_L 40050 476 | #define IDM_CT_VOL_PLUS 40051 477 | #define IDM_CT_TRANS_UP 40053 478 | #define IDM_CT_TRANS_DOWN 40054 479 | #define IDM_CT_OCT_UP 40055 480 | #define IDM_CT_OCT_DOWN 40056 481 | #define IDM_CT_VOL_MINUS 40057 482 | #define IDM_ML_PAN_L 40058 483 | #define IDM_ML_PAN_R 40059 484 | #define IDM_ML_VOL_PLUS 40060 485 | #define IDM_ML_VOL_MINUS 40061 486 | #define IDM_ML_TRANS_UP 40062 487 | #define IDM_ML_TRANS_DOWN 40063 488 | #define IDM_DR_VOL_PLUS 40064 489 | #define IDM_DR_VOL_MINUS 40065 490 | #define ID_AC_CT_VOL_UP 40066 491 | #define ID_AC_CT_VOL_DOWN 40067 492 | #define ID_AC_ML_VOL_UP 40068 493 | #define ID_AC_ML_VOL_DOWN 40069 494 | #define ID_AC_DR_VOL_UP 40070 495 | #define ID_AC_DR_VOL_DOWN 40071 496 | #define ID_AC_DLG_VOL 40072 497 | #define ID_AC_DLG_PAN 40073 498 | #define ID_AC_DLG_TRANS 40074 499 | #define ID_AC_S1 40075 500 | #define ID_AC_S2 40076 501 | #define ID_AC_S3 40077 502 | #define ID_AC_S4 40078 503 | #define ID_AC_S5 40079 504 | #define ID_AC_S6 40080 505 | #define ID_AC_S7 40081 506 | #define ID_AC_S8 40082 507 | #define ID_AC_SQ 40083 508 | #define ID_AC_SW 40084 509 | #define ID_AC_SE 40085 510 | #define ID_AC_SR 40086 511 | #define ID_AC_ST 40087 512 | #define ID_AC_SY 40088 513 | #define ID_AC_SU 40089 514 | #define ID_AC_SI 40090 515 | #define IDM_2BAI 40091 516 | #define IDM_3BAI 40092 517 | #define IDM_2BUNNO1 40093 518 | #define IDM_3BUNNO1 40094 519 | #define ID_AC_CT_PAN_L 40095 520 | #define ID_AC_CT_PAN_R 40096 521 | #define ID_AC_CT_KEY_UP 40097 522 | #define ID_AC_CT_KEY_DOWN 40098 523 | #define IDM_DLGHELP 40100 524 | #define ID_AC_STPLAY 40101 525 | #define ID_AC_STBACK 40102 526 | #define IDM_SORTMUSICNOTE 40103 527 | #define IDM_EZCOPYVISIBLE 40104 528 | #define ID_AC_SHOWEZCOPY 40105 529 | #define IDM_UNDO 40106 530 | #define ID_AC_UNDO 40107 531 | #define IDM_REDO 40108 532 | #define ID_AC_REDO 40109 533 | #define IDM_SELECT_ALL 40110 534 | #define IDM_SELECT_RESET 40111 535 | #define ID_AC_SELECT_ALL 40112 536 | #define ID_AC_SELECT_RESET 40113 537 | #define IDM_GRIDMODE 40114 538 | #define ID_AC_GRIDMODE 40115 539 | #define IDM_LOAD2 40116 540 | #define ID_AC_LOAD2 40117 541 | #define IDM_ALWAYS_CURRENT 40118 542 | #define ID_AC_ALWAYS_CURRENT 40119 543 | #define IDM_DRAWDOUBLE 40121 544 | #define ID_AC_DRAWDOUBLE 40122 545 | #define ID_AC_HOMEBACK 40123 546 | #define IDM_RECENT1 40124 547 | #define IDM_RECENT2 40125 548 | #define IDM_RECENT3 40126 549 | #define IDM_RECENT4 40127 550 | #define IDM_RECENT5 40128 551 | #define IDM_RECENT6 40129 552 | #define IDM_RECENT7 40130 553 | #define IDM_RECENT8 40131 554 | #define IDM_RECENT9 40132 555 | #define IDM_RECENT0 40133 556 | #define IDM_RECENT_CLEAR 40134 557 | #define ID_MENUITEM40135 40135 558 | #define ID_ACCEL40136 40136 559 | #define ID_AC_LOAD_MOST_RECENT 40137 560 | #define IDM_STOPNOWALL 40138 561 | #define IDM_DRAGMODE 40139 562 | #define ID_AC_DRAGMODE 40140 563 | #define ID_AC_ML_KEY_UP 40141 564 | #define ID_AC_ML_KEY_DOWN 40142 565 | #define IDM_ENABLEPLAYING 40143 566 | #define IDM_CHANGEFINISH 40144 567 | #define ID_MENUITEM40145 40145 568 | #define ID_MENUITEM40146 40146 569 | #define ID_MENUITEM40147 40147 570 | #define ID_AC_NUM1 40148 571 | #define ID_AC_S_NUM1 40149 572 | #define ID_AC_C_NUM1 40150 573 | #define ID_AC_CS_NUM1 40151 574 | #define ID_AC_NUM2 40152 575 | #define ID_AC_S_NUM2 40153 576 | #define ID_AC_C_NUM2 40154 577 | #define ID_AC_CS_NUM2 40155 578 | #define ID_AC_NUM3 40156 579 | #define ID_AC_S_NUM3 40157 580 | #define ID_AC_C_NUM3 40158 581 | #define ID_AC_CS_NUM3 40159 582 | #define ID_AC_NUM4 40160 583 | #define ID_AC_S_NUM4 40161 584 | #define ID_AC_C_NUM4 40162 585 | #define ID_AC_CS_NUM4 40163 586 | #define ID_AC_NUM5 40164 587 | #define ID_AC_S_NUM5 40165 588 | #define ID_AC_C_NUM5 40166 589 | #define ID_AC_CS_NUM5 40167 590 | #define ID_AC_NUM6 40168 591 | #define ID_AC_S_NUM6 40169 592 | #define ID_AC_C_NUM6 40170 593 | #define ID_AC_CS_NUM6 40171 594 | #define ID_AC_SELECT_CLEAR 40172 595 | #define ID_AC_NUM7 40173 596 | #define ID_AC_NUM8 40174 597 | #define ID_AC_NUM9 40175 598 | #define ID_AC_NUMPLUS 40176 599 | #define ID_AC_DELETEKEY 40177 600 | #define ID_AC_SELECT_CLEAR2 40178 601 | #define ID_AC_SELECT_BACKDEL 40179 602 | #define ID_AC_SELECT_INSERT 40180 603 | #define IDM_CT_VOLWARIAI_DOWN 40181 604 | #define IDM_CT_VOLWARIAI_UP 40182 605 | #define ID_AC_VOLWARIAI_UP 40183 606 | #define ID_AC_VOLWARIAI_DOWN 40184 607 | #define ID_AC_CT_KEY_OCT_DOWN 40185 608 | #define ID_AC_CT_KEY_OCT_UP 40186 609 | #define IDM_CT_L0 40190 610 | #define IDM_CT_L1 40191 611 | #define IDM_CT_L2 40192 612 | #define IDM_CT_L3 40193 613 | #define IDM_CT_L4 40194 614 | #define IDM_CT_L5 40195 615 | #define IDM_CT_L6 40196 616 | #define IDM_CT_L7 40197 617 | #define IDM_CT_L8 40198 618 | #define IDM_CT_L9 40199 619 | #define IDM_CT_L10 40200 620 | #define IDM_CT_L11 40201 621 | #define IDM_CT_L12 40202 622 | #define IDM_CT_L13 40203 623 | #define IDM_CT_L14 40204 624 | #define IDM_CT_L15 40205 625 | #define IDM_CT_L16 40206 626 | #define IDM_CT_L17 40207 627 | #define IDM_CT_L18 40208 628 | #define IDM_CT_L19 40209 629 | #define IDM_CT_S0 40210 630 | #define IDM_CT_S1 40211 631 | #define IDM_CT_S2 40212 632 | #define IDM_CT_S3 40213 633 | #define IDM_CT_S4 40214 634 | #define IDM_CT_S5 40215 635 | #define IDM_CT_S6 40216 636 | #define IDM_CT_S7 40217 637 | #define IDM_CT_S8 40218 638 | #define IDM_CT_S9 40219 639 | #define IDM_CT_S10 40220 640 | #define IDM_CT_S11 40221 641 | #define IDM_CT_S12 40222 642 | #define IDM_CT_S13 40223 643 | #define IDM_CT_S14 40224 644 | #define IDM_CT_S15 40225 645 | #define IDM_CT_S16 40226 646 | #define IDM_CT_S17 40227 647 | #define IDM_CT_S18 40228 648 | #define IDM_CT_S19 40229 649 | #define IDM_CT_S20 40230 650 | #define ID_AC_C0 40240 651 | #define ID_AC_C1 40241 652 | #define ID_AC_C2 40242 653 | #define ID_AC_C3 40243 654 | #define ID_AC_C4 40244 655 | #define ID_AC_C5 40245 656 | #define ID_AC_C6 40246 657 | #define ID_AC_C7 40247 658 | #define ID_AC_C8 40248 659 | #define ID_AC_C9 40249 660 | #define IDM_CT_PAN_REVERSE 40250 661 | #define IDM_SLIDEOVERLAPNOTES 40251 662 | #define IDM_DUMMY_TATE_SEPARATOR 40254 663 | #define IDM_AUTOLOADPVI 40255 664 | #define IDM_DUMMY 40256 665 | #define IDM_DLGSWAP 40257 666 | #define IDM_EXPORT_MIDI 40259 667 | #define ID_AC_DLG_SWAP 40260 668 | #define ID_EXPORT 40262 669 | #define ID_AC_MIDI 40264 670 | #define ID_MENUITEM40265 40265 671 | #define ID_AC_INIT 40266 672 | #define ID_AC_PAN_REVERSE 40267 673 | #define ID_AC_HELP 40268 674 | #define ID_AC_CA0 40270 675 | #define ID_AC_CA1 40271 676 | #define ID_AC_CA2 40272 677 | #define ID_AC_CA3 40273 678 | #define ID_AC_CA4 40274 679 | #define ID_AC_CA5 40275 680 | #define ID_AC_CA6 40276 681 | #define ID_AC_CA7 40277 682 | #define ID_AC_CA8 40278 683 | #define ID_AC_CA9 40279 684 | #define ID_AC_SLIDEOVERLAPNOTES 40280 685 | #define IDM_LOUPE_PLUS 40282 686 | #define IDM_LOUPE_MINUS 40283 687 | #define ID_AC_LOUPE_PLUS 40284 688 | #define ID_AC_LOUPE_MINUS 40285 689 | #define IDM_NOTE_ENLARGE 40286 690 | #define IDM_PRESSNOTE 40287 691 | #define ID_AC_PRESSNOTE 40288 692 | #define IDM_METRONOME 40289 693 | #define IDM_DLGTHEMES 40290 694 | #define IDM_SMOOTHSCROLL 40291 695 | #define ID_AC_TOEND 40292 696 | #define ID_AC_MEASBACK 40293 697 | #define ID_AC_MEASNEXT 40294 698 | #define ID_AC_SOCTUP 40295 699 | #define ID_AC_SOCTDOWN 40296 700 | #define IDM_EXPORT_WAV 40297 701 | #define ID_AC_WAV 40298 702 | #define IDM_DLGWAVEDBS 40299 703 | #define IDM_DCLEN 40300 704 | #define IDM_GITHUB 40301 705 | 706 | // Next default values for new objects 707 | // 708 | #ifdef APSTUDIO_INVOKED 709 | #ifndef APSTUDIO_READONLY_SYMBOLS 710 | #define _APS_NEXT_RESOURCE_VALUE 239 711 | #define _APS_NEXT_COMMAND_VALUE 40302 712 | #define _APS_NEXT_CONTROL_VALUE 1228 713 | #define _APS_NEXT_SYMED_VALUE 101 714 | #endif 715 | #endif 716 | -------------------------------------------------------------------------------- /source/resource.hm: -------------------------------------------------------------------------------- 1 | // Microsoft Developer Studio generated Help ID include file. 2 | // Used by Script1.rc 3 | // 4 | #define HIDC_BUTTON1 0x80be0433 // IDD_DIALOGOPEN 5 | -------------------------------------------------------------------------------- /source/rxoFunction.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/rxoFunction.cpp -------------------------------------------------------------------------------- /source/rxoFunction.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strultz/orgmaker-3/1c945b3baa446d60c9b49210953f48db16be3ab8/source/rxoFunction.h --------------------------------------------------------------------------------