August 1, 2010

Miklós Németh Miklós Németh
Lab Rat
19 posts

QMidi class

 

Hi

I’m really interested in cross-platform midi programming, but I really missing QMidi class something like RtMidi. I hope It will be part of the QtMultimedia package soon.

Miklos

 Signature 

http://www.maajki.com

9 replies

August 3, 2010

Andre Andre
Robot Herder
6416 posts

I would not count on it. Personally, I don’t think there is a big market for it.

August 3, 2010

Miklós Németh Miklós Németh
Lab Rat
19 posts

You mean small market like Ableton Live, ACID Pro, Adobe Audition, Cakewalk Sonar, FL Studio, GarageBand, Logic Pro, MAGIX, Pro Tools, Reason, Steinberg Cubase, Steinberg Nuendo or linux based apps Ardour, LMMS, MusE, Qtractor, Rosegarden. I mention the musical instruments vendors like Roland, Yamaha, Akai, Korg, Access, Waldorf, Native Instruments and many midi controller manufacturer what creates patch editors etc.

 Signature 

http://www.maajki.com

August 4, 2010

SABROG SABROG
Lab Rat
82 posts

With MIDI we can create lightweight ring-tones. I used long time ago MIDI with my crack’s and trainer’s for games, because it have a small size.

 Signature 

QT - Apple QuickTime
Qt - Nokia’s Qt Development Frameworks
Apple is a competitor of Nokia, so QT != Qt

August 4, 2010

Andre Andre
Robot Herder
6416 posts

I am by no means saying that there is no market for MIDI at all, just that I doubt there is a market for a special, platform independent API within Qt for MIDI. If you see the apps you mention yourself, it is clear that to create a MIDI capable app, you don’t really need Qt to support it directly. Rosegarden for instance is Qt based. But hey, I am not a Troll, but a mere Qt user, so there is a good chance that my opinions on this differ from those living at Nokia.

September 8, 2010

mnagorni mnagorni
Lab Rat
1 posts

Just subscribed to DevNet to discuss this very issue: Me too I miss both QMidi as well as QPcm classes where the latter would be for raw PCM audio I/O. Currently it seems that the multimedia framework can only playback files. However MIDI-triggered Real Time synthesis does not seem to be covered. There are ways to do this outside of QT by e.g. using the JACK audio connection kit. However it would be much nicer to have convenient classes within the QT framework. Happy to support this with proof of concept softsynth code if this should get implemented. Have done similar things in my ALSA Programming Howto.

June 10, 2012

fyngyrz fyngyrz
Lab Rat
36 posts

MIDI and USB support both represent huge holes in Qt’s family of APIs.

Does anyone have a pointer for classes designed to target Qt, but which are created by end users?

I’ve written several generally useful classes I’d be willing to contribute, and I would hope to find MIDI and USB there considerably sooner than I’d expect any support from the actual Qt folks.

June 10, 2012

plcl plcl
Lab Rat
11 posts

For my own Linux only MIDI projects, I’ve created a library, Drumstick [drumstick.sf.net] as a wrapper for the ALSA Sequencer API based on Qt4. It is the basement of my projects KMetronome [kmetronome.sourceforge.net] and KMidimon [kmidimon.sourceforge.net] and maybe in the future will be extended to other operating systems.

On the other hand, for my multiplatform project VMPK [vmpk.sourceforge.net] I’ve used RtMIDI. These classes are not really hard to use in a Qt4 project, but the functionality is really limited: as the name implies, it offers only real-time MIDI input/output.

June 11, 2012

fyngyrz fyngyrz
Lab Rat
36 posts

I’ve tried to include RtMIDI, it compiled ok, but in the link stage, it throws errors I don’t know how to resolve (kind of a C++ newbie here… still finding my way.) Here’s what I get:

  1. Undefined symbols:
  2.   "vtable for RtMidiOut", referenced from:
  3.       __ZTV9RtMidiOut$non_lazy_ptr in RtMidi.o
  4.      (maybe you meant: __ZTV9RtMidiOut$non_lazy_ptr)
  5.   "RtMidiOut::initialize(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)", referenced from:
  6.       RtMidiOut::RtMidiOut(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in RtMidi.o
  7.   "vtable for RtMidiIn", referenced from:
  8.       __ZTV8RtMidiIn$non_lazy_ptr in RtMidi.o
  9.      (maybe you meant: __ZTV8RtMidiIn$non_lazy_ptr)
  10.   "RtMidiIn::initialize(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)", referenced from:
  11.       RtMidiIn::RtMidiIn(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int)in RtMidi.o
  12. ld: symbol(s) not found
  13. collect2: ld returned 1 exit status
  14. make: *** [release/SdrDx.app/Contents/MacOS/SdrDx] Error 1
  15. make: Leaving directory `/Users/username/src/sdrdx'
  16. The process "/usr/bin/make" exited with code 2.
  17. Error while building project SdrDx (target: Desktop)
  18. When executing build step 'Make'

I’ve no idea where to even start dealing with those messages. Can you point me in a proper direction?

June 11, 2012

fyngyrz fyngyrz
Lab Rat
36 posts

NM, found it — the define…

  1. __MACOSX_CORE__

…wasn’t being passed along verbatim, probably some extra underscores (or fewer, whatever) in the process of passing it from the project file to the code. I #defined it in the actual source file, and it compiled with only a few warnings (unused parameters to functions), which I fixed.

 
  ‹‹ QPlainTextEdit : Make block readonly?      Spanish translation of Qt documentation ››

You must log in to post a reply. Not a member yet? Register here!