├── 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ƒ“ƒgEƒ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ƒ‹ƒgB‚±‚ê‚͂ǂ¤‚©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—pB‚¢‚ë‚ñ‚Èó‘Ô‚ð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
--------------------------------------------------------------------------------