Bug 78077

Summary: "Test Midi" button does nothing when pressed. Midi DOES work in other KDE apps
Product: kcontrol Reporter: Dan Bullok <dan.kde>
Component: kcmmidiAssignee: Antonio Larrosa <larrosa>
Status: RESOLVED FIXED    
Severity: normal CC: dv5a, info, kde
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Gentoo Packages   
OS: Linux   
Latest Commit: Version Fixed In:

Description Dan Bullok 2004-03-20 17:47:29 UTC
Version:            (using KDE KDE 3.2.1)
Installed from:    Gentoo Packages
Compiler:          gcc (GCC) 3.3.2 20031218 (Gentoo Linux 3.3.2-r5, propolice-3.3-7) -O3 -mcpu=athlon-xp -march=athlon-tbird -pipe
OS:          Linux

Sound & Multimedia->Sound System->General:
When I press the "Test Midi" button, nothing happens (no sound, no dialog, etc. - it acts like the button-press signal is unconnected).
Note that I am using the correct midi device on the "Hardware" tab.  kmid works just fine when playing, I don't need to make any settings adjustment, and I started with a clean slate (no kmidrc or kcmmidirc config files).  Command line players work fine, too.
I'm using alsa-1.03, kernel 2.6.4.  SBLive! Value.
Comment 1 Dan Bullok 2004-05-14 02:47:57 UTC
Still broken in KDE 3.2.2, kernel 2.6.6.
Comment 2 borisdigital 2004-06-22 15:37:58 UTC
still broken in kde 3.2.3
Comment 3 Mark 2004-07-25 06:05:19 UTC
Looking in the code this button appears to simply restart the Sound Server. It looks like no one ever bothered to implement it.

Here's the relevant code from the function:

void KArtsModule::slotTestMIDI()
{
    if (configChanged && (userSavedChanges() == KMessageBox::Yes) || !artsdIsRunning() )
        restartServer();

    //KProcess test;
    //test << "artsplay";
    //test << locate("sound", "KDE_Startup_1.ogg");
    //test.start(KProcess::DontCare);
}

This is from KDE_HEAD CVS checked out July 24/2004.
Comment 4 Richard Welsh 2005-02-23 18:31:37 UTC
still broken in kde 3.3.2
Comment 5 Mohd Asif Ali Rizwaan 2005-05-01 12:42:11 UTC
And STRAGELY ENOUGH "Test MIDI" is not working KDE 3.4.0!!! 

I have "Slackware Linux 10.1" with "KDE 3.4" and "Timidity++" installed from (http://www.linuxpackages.net) and still "kcmshell arts" won't play MIDI when "Test MIDI" button is pressed!!!
Comment 6 Mohd Asif Ali Rizwaan 2005-05-01 12:43:25 UTC
*** This bug has been confirmed by popular vote. ***
Comment 7 Richard Neill 2005-11-19 06:30:21 UTC
Still broken in 3.4.2 !

While you are fixing this, it would be a good idea to integrate Midi properly with KDE. Essentially, timidity needs to run as part of KDE's startup scripts, or you get permissions problems with ALSA. 

I put 
  timidity -iADq -B2,8 -Os
into ~/.kde/Autostart

Something similar would be great (although there ought to be some sort of pref for this)

I now have working MIDI, and even better, it plays nicely with dmix.


Here is a relevant Mandrake bug:
http://qa.mandriva.com/show_bug.cgi?id=17160
Comment 8 Mohd Asif Ali Rizwaan 2006-02-19 04:56:13 UTC
KDE 3.5.1 here and still the midi button does not work. am I missing some package which is required for midi playback?
Comment 9 Stefan Borggraefe 2006-06-20 10:33:45 UTC
*** Bug 111397 has been marked as a duplicate of this bug. ***
Comment 10 Dominique Michel 2006-08-18 22:55:55 UTC
Kde 3.4.5 here on gentoo, and the button still doesn't work.
I think at, if you don't have the time to fix it, it will be best to comment out this button until someone fix it. 

I agree about the documentation in the duplicated bug about "Kcontrol -> Sound System -> Hardware has an option to "Use Midi Mapper" - but there is no explanation of what a midi mapper might be - nor an example of the syntax required!"

I figure out what is a midi mapper, but a little documentation will be great.
Comment 11 Stefan Borggraefe 2006-09-24 12:28:00 UTC
Andreas, maybe you're interested in removing this confusing UI element for a function that was never implemented, too? I think this would be the best solution for the 3.5-branch.
Comment 12 Andreas Kling 2006-09-24 13:13:33 UTC
SVN commit 587881 by kling:

Removing the "Test MIDI" button, it's been around for years without actually doing anything.

BUG: 78077


 M  +0 -14     arts.cpp  
 M  +0 -1      arts.h  
 M  +0 -33     generaltab.ui  


--- branches/KDE/3.5/kdebase/kcontrol/arts/arts.cpp #587880:587881
@@ -236,7 +236,6 @@
 	connect(autoSuspend,SIGNAL(clicked()),SLOT(slotChanged()));
 	connect(suspendTime,SIGNAL(valueChanged(int)),SLOT(slotChanged()));
 	connect(general->testSound,SIGNAL(clicked()),SLOT(slotTestSound()));
-	connect(general->testMIDI,SIGNAL(clicked()),SLOT(slotTestMIDI()));
 	connect(hardware->midiDevice, SIGNAL( highlighted(int) ), this, SLOT( slotChanged() ) );
 	connect(hardware->midiDevice, SIGNAL( activated(int) ), this, SLOT( slotChanged() ) );
 	connect(hardware->midiUseMapper, SIGNAL( clicked() ), this, SLOT( slotChanged() ) );
@@ -437,18 +436,6 @@
 	test.start(KProcess::DontCare);
 }
 
-void KArtsModule::slotTestMIDI()
-{
-	if (configChanged && (userSavedChanges() == KMessageBox::Yes) || !artsdIsRunning() )
-		restartServer();
-
-	//KProcess test;
-	//test << "artsplay";
-	//test << locate("sound", "KDE_Startup_1.ogg");
-	//test.start(KProcess::DontCare);
-}
-
-
 void KArtsModule::defaults()
 {
    load( true );
@@ -521,7 +508,6 @@
 	calculateLatency();
 
 	general->testSound->setEnabled(startServerIsChecked);
-	general->testMIDI->setEnabled(startServerIsChecked);
 
 //	general->volumeSystray->setEnabled(startServerIsChecked);
 	general->networkedSoundGroupBox->setEnabled(startServerIsChecked);
--- branches/KDE/3.5/kdebase/kcontrol/arts/arts.h #587880:587881
@@ -67,7 +67,6 @@
 
   void slotChanged();
   void slotTestSound();
-  void slotTestMIDI();
   void slotArtsdExited(KProcess* proc);
   void slotProcessArtsdOutput(KProcess* p, char* buf, int len);
   //void slotStartServerChanged();
--- branches/KDE/3.5/kdebase/kcontrol/arts/generaltab.ui #587880:587881
@@ -296,39 +296,6 @@
                         </size>
                     </property>
                 </spacer>
-                <widget class="QPushButton">
-                    <property name="name">
-                        <cstring>testMIDI</cstring>
-                    </property>
-                    <property name="sizePolicy">
-                        <sizepolicy>
-                            <hsizetype>5</hsizetype>
-                            <vsizetype>1</vsizetype>
-                            <horstretch>0</horstretch>
-                            <verstretch>0</verstretch>
-                        </sizepolicy>
-                    </property>
-                    <property name="text">
-                        <string>Test &amp;MIDI</string>
-                    </property>
-                </widget>
-                <spacer>
-                    <property name="name">
-                        <cstring>spacer3_2</cstring>
-                    </property>
-                    <property name="orientation">
-                        <enum>Horizontal</enum>
-                    </property>
-                    <property name="sizeType">
-                        <enum>Expanding</enum>
-                    </property>
-                    <property name="sizeHint">
-                        <size>
-                            <width>40</width>
-                            <height>20</height>
-                        </size>
-                    </property>
-                </spacer>
             </hbox>
         </widget>
         <spacer>