GithubHelp home page GithubHelp logo

pedrolcl / drumstick Goto Github PK

View Code? Open in Web Editor NEW
12.0 5.0 3.0 4.61 MB

Drumstick Qt/C++ MIDI libraries (Mirror)

Home Page: https://sourceforge.net/projects/drumstick/

License: GNU General Public License v3.0

CMake 9.98% Shell 0.02% QMake 2.13% C++ 87.40% C 0.39% Objective-C++ 0.08%
midi qt qt5 smf wrk cakewalk linux windows macos

drumstick's People

Contributors

emuse avatar hycinth22 avatar pedrolcl avatar sbasalaev avatar vanferry avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

drumstick's Issues

RT Backends: store configuration settings

The back-end plugins may have a function to store the settings, without needing the help of the configuration dialogs provided by drumstick::widgets. This is needed to store a full set of settings in RT projects, like VMPK.

public slot:
    void writeSettings(QSettings *settings);

This method would not be part of the interfaces before Drumstick-3, and could be called only by QMetaObject::invoke().

Release v2.9

  • Bump version
  • Update documentation
  • Update web site
  • Check backwards compatibility

Cannot compile with USE_QT=6: undefned references to BackendManager

I'm struggling to compile this on Arch Linux against Qt6. As soon as I run cmake with -DUSE_QT=6, make VERBOSE=1 fails with the following errors:

[ 38%] Linking CXX shared library libmp_svoxeas.so
cd /home/bevan/git/multiplatform-sonivoxeas/libsvoxeas && /usr/bin/cmake -E cmake_link_script CMakeFiles/mp_svoxeas.dir/link.txt --verbose=1
/usr/bin/c++ -fPIC -shared -Wl,-soname,libmp_svoxeas.so.2 -o libmp_svoxeas.so.2.1.0 CMakeFiles/mp_svoxeas.dir/mp_svoxeas_autogen/mocs_compilation.cpp.o CMakeFiles/mp_svoxeas.dir/programsettings.cpp.o CMakeFiles/mp_svoxeas.dir/synthcontroller.cpp.o CMakeFiles/mp_svoxeas.dir/synthrenderer.cpp.o CMakeFiles/mp_svoxeas.dir/filewrapper.cpp.o  /usr/lib/libsonivox.so.3.6.12.0 /usr/lib/libQt6Multimedia.so.6.5.1 /usr/lib/libdrumstick-rt.so.2.7.2 /usr/lib/libQt6Gui.so.6.5.1 /usr/lib/libGLX.so /usr/lib/libOpenGL.so /usr/lib/libQt6Network.so.6.5.1 /usr/lib/libQt6Core.so.6.5.1 
/usr/bin/ld: CMakeFiles/mp_svoxeas.dir/synthrenderer.cpp.o: warning: relocation against `_ZN9drumstick2rt9MIDIInput10midiNoteOnEiii' in read-only section `.text'
/usr/bin/ld: CMakeFiles/mp_svoxeas.dir/synthrenderer.cpp.o: in function `SynthRenderer::SynthRenderer(QObject*)':
synthrenderer.cpp:(.text+0x6a): undefined reference to `drumstick::rt::BackendManager::BackendManager()'
/usr/bin/ld: synthrenderer.cpp:(.text+0x11b): undefined reference to `drumstick::rt::BackendManager::~BackendManager()'
/usr/bin/ld: CMakeFiles/mp_svoxeas.dir/synthrenderer.cpp.o: in function `SynthRenderer::~SynthRenderer()':
synthrenderer.cpp:(.text+0xccb): undefined reference to `drumstick::rt::BackendManager::~BackendManager()'
/usr/bin/ld: CMakeFiles/mp_svoxeas.dir/synthrenderer.cpp.o: in function `SynthRenderer::setMidiDriver(QString)':
synthrenderer.cpp:(.text+0x15ec): undefined reference to `drumstick::rt::BackendManager::inputBackendByName(QString)'
/usr/bin/ld: synthrenderer.cpp:(.text+0x162b): undefined reference to `drumstick::rt::MIDIInput::midiNoteOn(int, int, int)'
/usr/bin/ld: CMakeFiles/mp_svoxeas.dir/synthrenderer.cpp.o: relocation R_X86_64_PC32 against undefined protected symbol `_ZN9drumstick2rt9MIDIInput10midiNoteOnEiii' can not be used when making a shared object
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
make[2]: *** [libsvoxeas/CMakeFiles/mp_svoxeas.dir/build.make:169: libsvoxeas/libmp_svoxeas.so.2.1.0] Error 1

Interestingly, version 2.0.0 with d2c95011c90ebacd168b74becf6c1ac83054f910 backported fails with the same error. In January, this built without problems on Arch. So I have a feeling that it could be related to the update to Qt 6.5.1. In January, this was still 6.4.1.

Do you have any idea what could cause this?

"Macro names must be identifiers" errors while building drumstick 2.8.0

While processing library/alsa stuff, new drumstick sources (2.8.0) fail to build here (gcc 11.2.0, x86_64), with multiple "macro names must be identifiers" errors (see attached full log of a failed build).
BuildError.txt.

By looking at one failed command line, I noticed a definition looking suspect ("-D-DRTKIT_SUPPORT"): it looks like a spurious "-"...
Indeed, changing the line 26 in the CMakeLists.txt file for library/alsa from "$<$BOOL:${HAVE_DBUS}:-DRTKIT_SUPPORT>" to "$<$BOOL:${HAVE_DBUS}:DRTKIT_SUPPORT>" (ie removing the stray "-" before DRKIT_SUPPORT) it completely fixes the issue.

Widgets: SettingsFactory class additional methods

While the SettingsFactory class has an static function SettingsFactory::setFileName(), it does not provide a SettingsFactory::fileName() function to read the static member. While we are on it, provide also a SettingsFactory::format() function as well.

drumstick-playsmf: error occurs if system exclusive message is followed by channel message that uses running status

drumstick-2.9.0
It has been ported to FreeBSD.

If the SMF file contains a system exclusive message, followed by a channel message that uses the running status, an error occurs.
The error is output with a large number of lines as follows.

*** Warning! Unexpected byte ( b) at 39677 at file offset 39678
*** Warning! Unexpected byte ( 0) at 39679 at file offset 39680
*** Warning! Unexpected byte ( 5) at 39681 at file offset 39682
*** Warning! Unexpected byte ( b) at 39683 at file offset 39684
*** Warning! Unexpected byte ( 8) at 39685 at file offset 39686
*** Warning! Unexpected byte ( 7) at 39687 at file offset 39688
*** Warning! Unexpected byte ( b) at 39689 at file offset 39690
*** Warning! Unexpected byte ( 8) at 39691 at file offset 39692
*** Warning! Unexpected byte ( 9) at 39693 at file offset 39694
*** Warning! Unexpected byte ( b) at 39695 at file offset 39696

Applying a patch like the one in the following attachment would be a workaround for it.
patch.txt
The patch also includes an offset fix that would have skipped a bad message if it was included in the file.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.