Home | News | Forums | Documentations | FAQ | Links | Contributors | Author
In recent Windows, by the Microsoft Defender SmartScreen feature, exe files downloaded from the Internet may not be able to be executed. If you get this message, you can execute it by clicking "More info" and then clicking "Run anyway". Please be careful that you may have downloaded a fake on a dummy site.
Also, please right-click zip file and select "Properties", and then check on "General" tab's "Security : This file came from another computer and might be blocked to help protect this computer" 's "Unblock", and then use it.
No, openmidiproject is specialized to MIDI. To add audio feature makes software or library too complex and heavy, so there is no plan of audio feature. For editing audio data, please use audio editor like audacity. For editing both audio and MIDI data at the same time, please use DAW like Cubase or Sonar.
No, VSTi's specification is not released and the VSTi's I/O system is different from MIDI. And I like to play a hardware's synthesizer, therefore I don't use VSTi. If you want to use VSTi, please use MIDI loopback software such as MIDIYoke / loopMIDI and VSTiHost with openmidiproject's software.
No. But It is reported that by using WINE, Sekaiju works normally on the Linux or Mac OS 10.
Yes, you can. But there is little support except forums. And WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. If you modify this program and redistribute, you must release it with the source code, under the terms of LGPL or GPL (Sekaiju is MPL2.0). If you distribute your program which is dynamic link to the library (*.dll), you don't need to release it under the terms of LGPL or GPL, but you must not prohibit to reverse engineering your program in your license.
MIDI sequencer or player doesn't output sound.MIDI sequencer or player gives only the operation information to the instrument. Perhaps the instrument that you are using, like Microsoft GS Wavetable Synth, is bad sound quality. If you want to get a high quality sound, you may purchase hardware's synthesizer. At 2013 year, there are synthesizers such as Roland JUNO, YAMAHA MOTIF or KORG KROME.
If you are using Microsft GS Wavetable Synth shipped with windows, this probrem often occurs. The reason is that because wrong tone number (CC#0's value, CC#32's value, and Program Change's value) is specified in the MIDI data. So you need to modify these value to existing tone number in GS's specification, by using Sekaiju. In windows XP, even if a wrong tone number is specified, that sounds in the substitute tone, so this probrem has been ignored for a long time.
In the other hands, If the MIDI data is not for Microsoft GS Wavetable synth (e.g. that MIDI data is for Roland SC-88Pro), it is natural that part of MIDI data doesn't sound, because the using instrument is each different. To hear this MIDI data in Microsoft GS Wavetable synth, also you need to modify these value to existing tone number in GS's specification.
In some computers, unless you connect a headphone or loudspeakers, Microsoft GS Wavetable synth doesn't appear. Please connect them and then start program.
If you don't find Microsoft GS Wavetable Synth when you bought the computer, maybe manufacture's registory setup is wrong. You may fix as following. Please be careful if you've installed the other MIDI devices, they may cause error. Plaease be careful that editing registory is very dangerous, and it is no warranty.
1. In case of 32bit OS, move to [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersin\Drivers32]. In case of 64bit OS, move to [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersin\Drivers32].
2. Fix as following.
It is blocked to save configuration file (*.ini file) in the c:\program files, c:\program files(x86), c:\windows folder by windows because of security (UAC). Please put the program in the other folder. Also it takes about 2 seconds to write configuration file (*.ini) since quit application. Please start application about 2 seconds later.
It is blocked to save configuration file (*.ini file) in the c:\program files, c:\program files(x86), c:\windows folder by windows because of security (UAC). Please put the program in the other folder. Also it takes about 2 seconds to write configuration file (*.ini) since quit application. Please start application about 2 seconds later.
Please select "File" - "Property..." from the menu, and then select the format in the property dialog, ant then click OK. As well, Sekaiju's default format is 1.
Please select "File" - "Proeprty..." from the menu, and then select time base or resolution, and then click OK. As well, Sekaiju's default time base is TPQN base and the resolution is 120 ticks per quarter note. Sekaiju can select 1~960 ticks per quareter note as a TPQN base, or 1 ~ 255 subframes per frame as a SMPTE base.
Here shows some way. Also, Sekaiju's default tempo is 120, default time signature is 4/4, default key signature is 0# major (C major). And please be careful that time signature and key signature does not affect to any playing, they affect only to the view (time counter, measure or beat line, accidental, and so on).
a) In the track list window or piano roll window or musical score window, please right-click on the area shown "■120.00 4/4 0#", and then popup menu to insert, modify or delete tempo, time signature or key signature will appear.
b) In the piano roll window's graph area at below, in the first track, you can draw tempo's graph intermittently .
c) In the event list window, show only the first track, you can insert, modify or delete tempo or key signature or time signature event manually and singly. To specify sharp, input '#' or to specify flat, input lower case 'B'. To specify major, input "major" or to specify minor, input "minor".
In the left pain of the track list window, it has CC#0, CC#32, and program number column, you can select tone other than piano at there. If you are using Microsoft GS Wavetable Synth including Windows, by default, CC#0=0, CC#32=0, program number=0-piano1 is selected at except channel 10, and CC#0=0, CC#32=0, program number=0-standard1 is selected at channel 10(drum). Also, in MIDI, Please be careful that the voice array is different in each module or synthesizer. If you select wrong number, the voice comes no sound. Also, to show exact voice name, you should select your MIDI module's instrument definition file (*.ins).
▼Track List Window
Track | Output | Output Port | Output Channel | View Mode | CC#0 | CC#32 | Program Number |
2 | on | 1-Microsoft GS Wavetable Synth | 1 | Normal | 0 | 0 | 48-Strings1 |
11 | on | 1-Microsoft GS Wavetable Synth | 10 | Drum | 0 | 0 | 48-Orchestra |
Please open event list window, and insert CC#0, CC#32 and program change where you want to change. These three events must be put in this order sequencially. In the track list window, you can only select the track's the first CC#0, CC#32 and program change for convenience, though it is not track's property. But it is not recommended to change the tone color in the middle of track except in the case of you have a special reason. Also, in MIDI, Please be careful that the tone array is different in each module or synthesizer. If you select wrong number, the voice comes no sound. Also, to show exact voice name, you should select your MIDI module's instrument definition file (*.ins).
▼Event List Window (Case of normal track)
Track | Measure:Beat:Tick | Event.Kind | Channel | Value1 | Value2 | Value3 |
2- | 00001:02:000 | Control Change | 1 | 0-Bank Select MSB | 0 | - |
2- | 00001:02:010 | Control Change | 1 | 32-Bank Select LSB | 0 | - |
2- | 00001:02:020 | Program Change | 1 | 48-Strings | - | - |
▼Event List Window (Case of drum track)
Track | Measure:Beat:Tick | Event.Kind | Channel | Value1 | Value2 | Value3 |
11- | 00001:02:000 | Control Change | 10 | 0-Bank Select MSB | 0 | - |
11- | 00001:02:010 | Control Change | 10 | 32-Bank Select LSB | 0 | - |
11- | 00001:02:020 | Program Change | 10 | 48-Orchestra | - | - |
Sekaiju's default instrument definition file is Microsoft GS Wavetable Synth. You need to obtain your MIDI module's instrument definition file (*.ins) from the internet etc, and then put it in the instrument folder, and then select the suitable instruemnt from the "Setup" - "MIDI device and instrument..." menu. If you can't find your MIDI module's instrument definition file (*.ins), please turn off "Search only avail tone when CC#0, CC#32, or Program Number is up or downed" from the "Setup" - "Options..." menu, and the value will be increased or decreased at 1 step. Or please input the number by the ten key directly. Also, in MIDI, Please be careful that the tone array is different in each module or synthesizer. If you select wrong number, the voice comes no sound. Also, to show exact voice name, you should select your MIDI module's instrument definition file (*.ins).
The way is diffrent by the module or synthesizer you are using. In some module or synthesizers, you had only to simply select drum's program number. In GM module, Drum is fixed to Channel 10, so changing is impossible. In GS module such as Microsoft GS Wavetable Synth or Roland SC-88, though Drum is fixed to Channel 10, by writting following system exclusive data, you can change channel 11 into drum track. The first line means GS Reset. For detail, please see your module's manual.
▼Event List Window
Track | Measure:Beat:Tick | Event.Kind | Channel | Value1 | Value2 | Value3 |
1- | 00001:01:000 | System Exclusive | n/a | F0 41 10 42 12 40 00 7F 00 41 F7 | ||
1- | 00001:01:060 | System Exclusive | n/a | F0 41 10 42 12 40 1A 15 02 0F F7 |
Standard MIDI file (*.mid) can't keep track's property because of the specification. Please save as Sekaiju sequence file (*.skj) for working. By the way, if you use multiple output port, you may insert port prefix event in the each track, because some sequencers recognize the output port from standard MIDI file (*.mid). And please see also the user's manual to know which infromation is saved or not in the each format. Sekaiju sequence file can save all information.
Sekaiju doesn't modify the format or the timebase and doesn't insert, modify or remove the event without message box if you are not editing. Perhaps omitting or not omitting of the running status causes the difference of the binary. According to the standard MIDI file's specification, it is allowed to omit the first byte of each event if the event's kind is same to the previous event's kind.
Please write "{@UTF-16LE}" at the start of string and then write following string. Once write, it is applied to the following same kind's events in the same track. Character code can be selected from {@latin} {@jp} {@UTF-16LE} {@UTF-16BE}. If you don't specify anything, the character code is treated as {@latin} by right, but in Sekaiju, it depends on the text encoding that you selected in the "Options" - "Language..." - "Text Encoding".
Sekaiju can treat unicode string, but please be careful that in a MIDI sequencer or player that doesn't support unicode, unicode string can't be shown correctly. This is MIDI's extended specification (RP-026) and it is available only in lyrics event.
▼Event List Window : How to force character code.
Track | Measure:Beat:Tick | Event.Kind | Channel | Value1 | Value2 | Value3 |
1- | 00001:01:000 | Text | n/a | {@latin}Just make a contract with me, and become a Magical Girl! | ||
1- | 00001:01:030 | Text | n/a | {@jp}僕と契約して魔法少女になってよ! | ||
1- | 00001:01:060 | Text | n/a | {@UTF-16LE}成为魔术少女我的契約! |
While inserting or dragging note, please right click, and the note is sharpen or flatten. Which sharppen or flatenten is depend on the key signature at the time.
Sekaiju doesn't have a function to input a rest. This is a specification because MIDI data doesn't define any rest sign. An area without note will works as rest.
Sekaiju doesn't have any function to edit a design of a note. This is a specification because MIDI data doesn't define any graphical design. For editing musical notation, please use musical notation editor such as musescore.
Perhaps the load of drawing is too high. Especially when changing the page of the view, many graphics or text is drawn, so it causes time delay at the time. If you need to play smooth for recording and so on, please minimize all the window in the sekaiju for not to draw anything. Even if you use high class graphic card, it may be high performance at the 3D or DirectX graphic, but it may be low performance at the 2D GDI grpahic like sekaiju.
Additionally, to put a lot of events at the same time often causes time delay, so please put each events separatelly as possible. Especially, in the first measure, many events for initialization such as control change are often put, so please be careful.
Sekaiju doesn't have any ability to import or export vocaloid sequence file(*.vsq), though in the file open / save dialog, you can select vsq file. That is for research of vsq file, because the VSQ file's file structure is the same to the standard MIDI file(*.mid)'s one. But each event's meaning or format is definitely different from standard MIDI file's one. So you must make each event very carefully in accordance to the strict VSQ's specification.
Windows doesn't recognize the MIDI device. If the device is USB device, once remove and insert the usb cable, and try again. Or restart windows. Be careful that the installed device driver is suitable to your windows version. Sometimes wrong device driver works well accidentally though it does not support windows vista or windows 7. And please be careful 32bit / 64bit version is each different.
The software and libraries earlier than 2013/09/01 are developed with Micrisoft VisualC++ 4.0 standard edition, so you can open project work space (*.mdp) in VisualC++ 4.0 standard edition. The others earlier than 2020/12/31 are developed with Microsoft Visual Studio 2008 Standard Edition SP1, so you can open solution (*.sln) in Visual Studio 2008 SP1. The others later than 2021/01/01 are developed with Microsoft Visual Studio 2015 Community SP3, so you can open solution (*.sln) in Visual Studio 2015 Community SP3. As well, if you don't need to complie or build them, and you only need to use dll, you may use any version of VisualC++.
Here is a usage of MIDIIOLibrary, MIDIDataLibrary, MIDIClockLibrary, MIDIStatusLibrary, and MIDIInstrumentLibrary's DLL in the C/C++ of Visual Studio.
1. How to make Project workspace
2. How to make link to dll (Explanation case MIDIDataLibrary)
Please see following simple console MIDI player's example. This program uses MIDIIOLibrary, MIDIDataLibrary, and MIDIClockLibrary.
/* Simple Console MIDI Player example */ #include <stdio.h> #include <tchar.h> #include <windows.h> #include "..\\MIDIIO\\MIDIIO.h" #include "..\\MIDIData\\MIDIData.h" #include "..\\MIDIClock\\MIDIClock.h" /* Don't forget to add MIDIIO(d).lib to your project */ /* Don't forget to add MIDIData(d).lib to your project */ /* Don't forget to add MIDIClock(d).lib to your project */ int _tmain () { long lTimeMode = 0; long lTimeResolution = 0; long lTempo = 60000000 / 120; /* [microsec/quarter note] */ long lEndTime = 0; long lOldTime = 0; long lCurTime = 0; MIDIOut* pMIDIOut = NULL; MIDIData* pMIDIData = NULL; MIDITrack* pMIDITrack = NULL; MIDIEvent* pMIDIEvent = NULL; MIDIClock* pMIDIClock = NULL; pMIDIOut = MIDIOut_Open (_T("Microsoft GS Wavetable Synth")); if (pMIDIOut == NULL) { _tprintf (_T("MIDIOut Open failed.\n")); return 0; } pMIDIData = MIDIData_LoadFromSMF (_T("test.mid")); if (pMIDIData == NULL) { _tprintf (_T("MIDIData Load failed.\n")); return 0; } lTimeMode = MIDIData_GetTimeMode (pMIDIData); lTimeResolution = MIDIData_GetTimeResolution (pMIDIData); lEndTime = MIDIData_GetEndTime (pMIDIData); pMIDIClock = MIDIClock_Create (lTimeMode, lTimeResolution, lTempo); if (pMIDIClock == NULL) { _tprintf (_T("MIDIClock_Create failed.\n")); return 0; } _tprintf (_T("Now playing...\n")); MIDIClock_Start (pMIDIClock); while (lCurTime <= lEndTime) { lCurTime = MIDIClock_GetTickCount (pMIDIClock); forEachTrack (pMIDIData, pMIDITrack) { forEachEvent (pMIDITrack, pMIDIEvent) { long lTime = MIDIEvent_GetTime (pMIDIEvent); if (lOldTime <= lTime && lTime < lCurTime) { if (MIDIEvent_IsTempo (pMIDIEvent)) { long lTempo = MIDIEvent_GetTempo (pMIDIEvent); MIDIClock_SetTempo (pMIDIClock, lTempo); } if (MIDIEvent_IsMIDIEvent (pMIDIEvent) || MIDIEvent_IsSysExEvent (pMIDIEvent)) { unsigned char byMessage[256]; long lLen = MIDIEvent_GetLen (pMIDIEvent); MIDIEvent_GetData (pMIDIEvent, byMessage, 256); MIDIOut_PutMIDIMessage (pMIDIOut, byMessage, lLen); } } } } lOldTime = lCurTime; Sleep (5); } MIDIClock_Stop (pMIDIClock); _tprintf (_T("Now end.\n")); MIDIClock_Delete (pMIDIClock); MIDIData_Delete (pMIDIData); MIDIOut_Close (pMIDIOut); return 1; }
Sekaiju, MIDITester, and AutoDrum requires MIDIIOLibrary, MIDIDataLibrary, MIDIClockLibrary, MIDIStatusLibrary, and MIDIInstrumentLibrary, so you must download all these libraries, and then rename the folder name as below, and then place these folder as below, otherwize it will cause compile error or link error (Because my develop environment is following structure).
(C)2000-2025 kuzu All rights reserved.