diff options
author | Chris Xiong <chirs241097@gmail.com> | 2016-04-22 21:06:51 +0800 |
---|---|---|
committer | Chris Xiong <chirs241097@gmail.com> | 2016-04-22 21:06:51 +0800 |
commit | 446263beafeafa831530a6f9711aa891955b7db3 (patch) | |
tree | 00e9d55274580d413e6d88747d8fe7893cd69ac2 | |
parent | 7457599cb1bbf1d28b4b29bc12d07801b37ad410 (diff) | |
download | QMidiPlayer-0.7.2-5.tar.xz |
First stable version!0.7.2-5
Remove visualization stub.
Complain explicitly if an invalid file is loaded.
Remove fluidsynth warnings from stderr.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | README.md | 7 | ||||
-rw-r--r-- | core/qmpmidiplay.cpp | 5 | ||||
-rw-r--r-- | debian/changelog | 7 | ||||
-rw-r--r-- | doc/mainwindow.html | 4 | ||||
-rw-r--r-- | doc/miscellaneous.html | 13 | ||||
-rw-r--r-- | qmidiplayer-desktop/qmpmainwindow.cpp | 5 | ||||
-rw-r--r-- | qmidiplayer-desktop/qmpsettingswindow.ui | 161 | ||||
-rw-r--r-- | qmidiplayer-desktop/translations/qmp_zh_CN.ts | 126 |
9 files changed, 87 insertions, 247 deletions
@@ -1,3 +1,9 @@ +2016-04-22 0.7.2 +Remove visualization stub in settings window. +Warn the user when an invalid file is loaded. +Discard fluidsynth warnings. +First stable version! + 2016-04-21 0.7.2 beta Minor change to the main window. Added "click to copy" to the file information window. @@ -3,8 +3,6 @@ A cross-platform midi file player based on libfluidsynth and Qt. [Project homepage](https://chrisoft.org/QMidiPlayer/) -Now it's in beta stage. Crashes and hangs may still occur, run with gdb attatched if you could. - Features: * Channel mute/solo * Editing channel parameters on-the-fly @@ -12,8 +10,9 @@ Features: * Editing synthesizer effects * Rendering midi to wave file * Visualization using SMELT (not implemented) -* MIDI mapping (experimental, based on RtMidi) +* MIDI mapping (based on RtMidi) Tested on Debian sid and Windows Vista~10. -A QML version is now in construction. The whole project is now being overhauled... +A QML version is now in construction. It's only a technology preview and +should not be used for non-testing purpose. diff --git a/core/qmpmidiplay.cpp b/core/qmpmidiplay.cpp index ab312f7..e33f804 100644 --- a/core/qmpmidiplay.cpp +++ b/core/qmpmidiplay.cpp @@ -15,6 +15,11 @@ void CMidiPlayer::fluidPreInitialize() void CMidiPlayer::fluidInitialize() { synth=new_fluid_synth(settings); + fluid_set_log_function(FLUID_DBG,NULL,NULL); + fluid_set_log_function(FLUID_INFO,NULL,NULL); + fluid_set_log_function(FLUID_WARN,NULL,NULL); + fluid_set_log_function(FLUID_ERR,fluid_default_log_function,NULL); + fluid_set_log_function(FLUID_PANIC,fluid_default_log_function,NULL); adriver=new_fluid_audio_driver(settings,synth); fluid_synth_set_chorus(synth,FLUID_CHORUS_DEFAULT_N,FLUID_CHORUS_DEFAULT_LEVEL, FLUID_CHORUS_DEFAULT_SPEED,FLUID_CHORUS_DEFAULT_DEPTH, diff --git a/debian/changelog b/debian/changelog index d21bd02..298658b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +qmidiplayer (0.7.2-5) UNRELEASED; urgency=low + + * Stable release. + + -- chrisoft <chirs241097@gmail.com> Fri, 22 Apr 2016 21:03:32 +0800 + + qmidiplayer (0.7.2-4) UNRELEASED; urgency=low * New upstream release. diff --git a/doc/mainwindow.html b/doc/mainwindow.html index d6438d2..57ffe79 100644 --- a/doc/mainwindow.html +++ b/doc/mainwindow.html @@ -36,7 +36,9 @@ </ul> <h3><a name="fileop">File operation menu</a></h3> <ul> - <li>File Information.</li> + <li>File Information.<br> + Click an item in this dialog to copy its content. + </li> <li>Render to Wave.<br> It's not possible to use this action unless the player is stopped.<br> The output wave file, with the name (source file name)+'.wav', <br> diff --git a/doc/miscellaneous.html b/doc/miscellaneous.html index defcbf4..25f6e6e 100644 --- a/doc/miscellaneous.html +++ b/doc/miscellaneous.html @@ -39,12 +39,13 @@ Please note that QMidiPlayer <i>requires</i> C++11 to build. <h3 id="ms">Roadmap/Milestones</h3> <ul> - <li>0.5 Basic functionality</li> - <li>0.6 Settings and experimental Windows support</li> - <li>0.7 MIDI mapping, first stable version</li> - <li>0.8 Visualization</li> - <li>0.9 Stable version</li> - <li>1.x+ Translation, documentation, Maintaince only</li> + <li>0.5.x Basic functionality</li> + <li>0.6.x Settings and experimental Windows support</li> + <li>0.7.2 MIDI mapping, first stable version</li> + <li>0.7.8 Plugin interface, UI refactoring</li> + <li>0.8.x Visualization (the default visualization plugin)</li> + <li>0.9.x Stable version</li> + <li>1.x+ Translation, documentation, Maintaince only</li> </ul> <h3 id="faq">FAQs</h3> <h4>0. (Windows version) It complains about a missing dll!</h4> diff --git a/qmidiplayer-desktop/qmpmainwindow.cpp b/qmidiplayer-desktop/qmpmainwindow.cpp index c04bc93..73c2895 100644 --- a/qmidiplayer-desktop/qmpmainwindow.cpp +++ b/qmidiplayer-desktop/qmpmainwindow.cpp @@ -6,6 +6,7 @@ #include <QFont> #include <QDirIterator> #include <QDesktopWidget> +#include <QMessageBox> #include "qmpmainwindow.hpp" #include "ui_qmpmainwindow.h" #include "../core/qmpmidiplay.hpp" @@ -27,14 +28,14 @@ char* wcsto8bit(const wchar_t* s) #define LOAD_FILE \ {\ char* c=wcsto8bit(fns.toStdWString().c_str());\ - if(!player->playerLoadFile(c)){free(c);return;}\ + if(!player->playerLoadFile(c)){free(c);QMessageBox::critical(this,tr("Error"),tr("%1 is not a valid midi file.").arg(fns));return;}\ free(c);\ } #else #define LOAD_SOUNDFONT \ player->pushSoundFont(settingsw->getSFWidget()->item(i)->text().toStdString().c_str()) #define LOAD_FILE \ - if(!player->playerLoadFile(fns.toStdString().c_str()))return + if(!player->playerLoadFile(fns.toStdString().c_str())){QMessageBox::critical(this,tr("Error"),tr("%1 is not a valid midi file.").arg(fns));return;} #endif #define UPDATE_INTERVAL 66 diff --git a/qmidiplayer-desktop/qmpsettingswindow.ui b/qmidiplayer-desktop/qmpsettingswindow.ui index 0baa694..96d0a43 100644 --- a/qmidiplayer-desktop/qmpsettingswindow.ui +++ b/qmidiplayer-desktop/qmpsettingswindow.ui @@ -562,167 +562,6 @@ </property> </widget> </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_2"> - <item> - <widget class="QLabel" name="lbVisualMode"> - <property name="text"> - <string>Visualization Mode</string> - </property> - </widget> - </item> - <item> - <widget class="QComboBox" name="cbVisualMode"/> - </item> - </layout> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_3"> - <item> - <widget class="QLabel" name="lbViewDist"> - <property name="text"> - <string>View distance</string> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeType"> - <enum>QSizePolicy::Expanding</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>50</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QSlider" name="hsViewDist"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> - <horstretch>60</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="maximumSize"> - <size> - <width>250</width> - <height>16777215</height> - </size> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item> - <widget class="QSpinBox" name="sbViewDist"/> - </item> - </layout> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_4"> - <item> - <widget class="QLabel" name="lbNoteStretch"> - <property name="text"> - <string>Note stretch</string> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer_2"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeType"> - <enum>QSizePolicy::Expanding</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>60</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QSlider" name="hsNoteStretch"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> - <horstretch>60</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="maximumSize"> - <size> - <width>250</width> - <height>16777215</height> - </size> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item> - <widget class="QSpinBox" name="sbNoteStretch"/> - </item> - </layout> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_5"> - <item> - <widget class="QLabel" name="lbFog"> - <property name="text"> - <string>Fog Start</string> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer_3"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeType"> - <enum>QSizePolicy::Expanding</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>82</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QSlider" name="hsFog"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> - <horstretch>60</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="maximumSize"> - <size> - <width>250</width> - <height>16777215</height> - </size> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item> - <widget class="QSpinBox" name="sbFog"/> - </item> - </layout> - </item> </layout> </widget> </widget> diff --git a/qmidiplayer-desktop/translations/qmp_zh_CN.ts b/qmidiplayer-desktop/translations/qmp_zh_CN.ts index d834231..8d313d2 100644 --- a/qmidiplayer-desktop/translations/qmp_zh_CN.ts +++ b/qmidiplayer-desktop/translations/qmp_zh_CN.ts @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> -<TS version="2.0" language="zh_CN"> +<TS version="2.1" language="zh_CN"> <context> <name>qmpChannelEditor</name> <message> @@ -9,117 +9,117 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../qmpchanneleditor.ui" line="38"/> + <location filename="../qmpchanneleditor.ui" line="53"/> <source><</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../qmpchanneleditor.ui" line="51"/> + <location filename="../qmpchanneleditor.ui" line="66"/> <source>1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../qmpchanneleditor.ui" line="67"/> + <location filename="../qmpchanneleditor.ui" line="88"/> <source>></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../qmpchanneleditor.ui" line="85"/> + <location filename="../qmpchanneleditor.ui" line="124"/> <source>Yamaha Grand Piano</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../qmpchanneleditor.ui" line="98"/> + <location filename="../qmpchanneleditor.ui" line="97"/> <source>BK: 0</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../qmpchanneleditor.ui" line="111"/> + <location filename="../qmpchanneleditor.ui" line="104"/> <source>PC: 0</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../qmpchanneleditor.ui" line="124"/> + <location filename="../qmpchanneleditor.ui" line="135"/> <source>Filters</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../qmpchanneleditor.ui" line="136"/> + <location filename="../qmpchanneleditor.ui" line="192"/> <source>Res. 64</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../qmpchanneleditor.ui" line="190"/> + <location filename="../qmpchanneleditor.ui" line="182"/> <source>Cut. 64</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../qmpchanneleditor.ui" line="207"/> + <location filename="../qmpchanneleditor.ui" line="205"/> <source>Effects</source> <translation type="unfinished">效果</translation> </message> <message> - <location filename="../qmpchanneleditor.ui" line="219"/> + <location filename="../qmpchanneleditor.ui" line="262"/> <source>Chr. 64</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../qmpchanneleditor.ui" line="273"/> + <location filename="../qmpchanneleditor.ui" line="252"/> <source>Rev. 64</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../qmpchanneleditor.ui" line="290"/> + <location filename="../qmpchanneleditor.ui" line="349"/> <source>Envelope</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../qmpchanneleditor.ui" line="302"/> + <location filename="../qmpchanneleditor.ui" line="419"/> <source>Dec. 64</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../qmpchanneleditor.ui" line="356"/> + <location filename="../qmpchanneleditor.ui" line="409"/> <source>Atk. 64</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../qmpchanneleditor.ui" line="391"/> + <location filename="../qmpchanneleditor.ui" line="429"/> <source>Rel. 64</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../qmpchanneleditor.ui" line="408"/> + <location filename="../qmpchanneleditor.ui" line="442"/> <source>Vibrato</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../qmpchanneleditor.ui" line="420"/> + <location filename="../qmpchanneleditor.ui" line="512"/> <source>Dep. 64</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../qmpchanneleditor.ui" line="474"/> + <location filename="../qmpchanneleditor.ui" line="502"/> <source>Rate 64</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../qmpchanneleditor.ui" line="509"/> + <location filename="../qmpchanneleditor.ui" line="522"/> <source>Del. 64</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../qmpchanneleditor.ui" line="526"/> + <location filename="../qmpchanneleditor.ui" line="275"/> <source>Mixer</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../qmpchanneleditor.ui" line="538"/> + <location filename="../qmpchanneleditor.ui" line="332"/> <source>Pan. C</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../qmpchanneleditor.ui" line="573"/> + <location filename="../qmpchanneleditor.ui" line="322"/> <source>Vol. 127</source> <translation type="unfinished"></translation> </message> @@ -320,63 +320,63 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../qmpmainwindow.ui" line="54"/> + <location filename="../qmpmainwindow.ui" line="84"/> <source>somefile.mid</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../qmpmainwindow.ui" line="210"/> + <location filename="../qmpmainwindow.ui" line="126"/> + <source><html><head/><body><p>Poly</p></body></html></source> + <translation type="unfinished"><html><head/><body><p>复音</p></body></html></translation> + </message> + <message> + <location filename="../qmpmainwindow.ui" line="390"/> <source>Channels</source> <translation type="unfinished">通道</translation> </message> <message> - <location filename="../qmpmainwindow.ui" line="239"/> + <location filename="../qmpmainwindow.ui" line="419"/> <source>Playlist</source> <translation type="unfinished">播放列表</translation> </message> <message> - <location filename="../qmpmainwindow.ui" line="274"/> + <location filename="../qmpmainwindow.ui" line="454"/> <source>Effects</source> <translation type="unfinished">效果</translation> </message> <message> - <location filename="../qmpmainwindow.ui" line="303"/> + <location filename="../qmpmainwindow.ui" line="483"/> <source>Visualization</source> <translation type="unfinished">可视化</translation> </message> <message> - <location filename="../qmpmainwindow.ui" line="326"/> - <source><html><head/><body><p>Poly: 0/0</p></body></html></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../qmpmainwindow.ui" line="361"/> + <location filename="../qmpmainwindow.ui" line="539"/> <source>Master</source> <translation type="unfinished">主音量</translation> </message> <message> - <location filename="../qmpmainwindow.ui" line="374"/> - <location filename="../qmpmainwindow.ui" line="387"/> + <location filename="../qmpmainwindow.ui" line="105"/> + <location filename="../qmpmainwindow.ui" line="163"/> <source>00:00</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../qmpmainwindow.ui" line="403"/> + <location filename="../qmpmainwindow.ui" line="46"/> <source>?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../qmpmainwindow.cpp" line="68"/> + <location filename="../qmpmainwindow.cpp" line="72"/> <source>File Information</source> <translation type="unfinished">文件信息</translation> </message> <message> - <location filename="../qmpmainwindow.cpp" line="69"/> + <location filename="../qmpmainwindow.cpp" line="73"/> <source>Render to Wave</source> <translation type="unfinished">输出到wav文件</translation> </message> <message> - <location filename="../qmpmainwindow.cpp" line="70"/> + <location filename="../qmpmainwindow.cpp" line="74"/> <source>Panic</source> <translation type="unfinished">关闭所有音符</translation> </message> @@ -389,46 +389,46 @@ <translation type="unfinished">播放列表</translation> </message> <message> - <location filename="../qmpplistwindow.ui" line="44"/> + <location filename="../qmpplistwindow.ui" line="97"/> <source>Add</source> <translation type="unfinished">添加</translation> </message> <message> - <location filename="../qmpplistwindow.ui" line="70"/> + <location filename="../qmpplistwindow.ui" line="225"/> <source>Add Folder</source> <translation type="unfinished">添加文件夹</translation> </message> <message> - <location filename="../qmpplistwindow.ui" line="96"/> + <location filename="../qmpplistwindow.ui" line="161"/> <location filename="../qmpplistwindow.cpp" line="188"/> <location filename="../qmpplistwindow.cpp" line="296"/> <source>Repeat Off</source> <translation type="unfinished">循环关</translation> </message> <message> - <location filename="../qmpplistwindow.ui" line="122"/> + <location filename="../qmpplistwindow.ui" line="257"/> <location filename="../qmpplistwindow.cpp" line="213"/> <location filename="../qmpplistwindow.cpp" line="289"/> <source>Shuffle Off</source> <translation type="unfinished">随机关</translation> </message> <message> - <location filename="../qmpplistwindow.ui" line="148"/> + <location filename="../qmpplistwindow.ui" line="65"/> <source>Save</source> <translation type="unfinished">保存列表</translation> </message> <message> - <location filename="../qmpplistwindow.ui" line="174"/> + <location filename="../qmpplistwindow.ui" line="129"/> <source>Load</source> <translation type="unfinished">加载列表</translation> </message> <message> - <location filename="../qmpplistwindow.ui" line="200"/> + <location filename="../qmpplistwindow.ui" line="193"/> <source>Remove</source> <translation type="unfinished">移除</translation> </message> <message> - <location filename="../qmpplistwindow.ui" line="226"/> + <location filename="../qmpplistwindow.ui" line="289"/> <source>Clear</source> <translation type="unfinished">清空</translation> </message> @@ -469,22 +469,22 @@ <translation type="unfinished">乐器选择</translation> </message> <message> - <location filename="../qmppresetselect.ui" line="61"/> + <location filename="../qmppresetselect.ui" line="39"/> <source>Bank</source> <translation type="unfinished">乐器库</translation> </message> <message> - <location filename="../qmppresetselect.ui" line="74"/> + <location filename="../qmppresetselect.ui" line="66"/> <source>Preset</source> <translation type="unfinished">乐器</translation> </message> <message> - <location filename="../qmppresetselect.ui" line="87"/> + <location filename="../qmppresetselect.ui" line="114"/> <source>OK</source> <translation type="unfinished">确定</translation> </message> <message> - <location filename="../qmppresetselect.ui" line="100"/> + <location filename="../qmppresetselect.ui" line="101"/> <source>Cancel</source> <translation type="unfinished">取消</translation> </message> @@ -787,25 +787,5 @@ <source>Persistent fluidsynth instance</source> <translation type="unfinished">单一fluidsynth实例</translation> </message> - <message> - <location filename="../qmpsettingswindow.ui" line="570"/> - <source>Visualization Mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../qmpsettingswindow.ui" line="584"/> - <source>View distance</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../qmpsettingswindow.ui" line="627"/> - <source>Note stretch</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../qmpsettingswindow.ui" line="670"/> - <source>Fog Start</source> - <translation type="unfinished"></translation> - </message> </context> </TS> |