Hi Pups and Pupettes,
I have just discovered a solution to a challange that I've had in Puppy since the beginning. How to get MIDI to work using Puppy.
It is only a partial solution at present, playback only, but it really helps.
The answer came in this exchange of posts on a thread started by richard.a entitled " A newbie (to Puppy) raves about the product". Find the entire thread here: http://www.murga.org/~puppy/viewtopic.php?t=10775
Richard.a asked the question this way:
"2. I've come up against a brick wall on how to set a default application to open a specific file type. In this case Timidity for midi files. There will be others, I expect. If the installer doesn't do it, there needs to be a manual way, I'm sure."
The answer came from Pizzasgood in this manner:
"Timidity: right click midi file, set the run action, use: timidity -ig "$1"
I went to a MIDI file I had, right clicked on it, the SET RUN ACTION windows opened, I put in the words timidity -ig the "$1" were already there, hit the enter key and heard the music.
Now all I have to do is click on any MIDI file and it plays. Thanks richard.a for asking the question, and thanks Pizzasgood for the answer.
dewdrop
EDIT #1 .... I guess I should have indicated that I installed the Timidity program from the Pupget Package Manager location before I did the above.
I shall now ask Flash to include this post in his Beginner's Help Thread entitled "Index of resources for Beginners Help forum" under the Multimedia heading.
This thread is found here: http://www.murga.org/~puppy/viewtopic.php?t=597
How to MIDI
You can also use aplaymidi which is included with puppy to play midis. Note however, that it is a console app.
alternatively
Code: Select all
aplaymidi -p `aplaymidi --list | tail -1 | gawk '{ print $1 }'` All_By_Myself.mid &
Code: Select all
aplaymidi --list
Port Client name Port name
64:0 MPU-401 MIDI 0-0 MPU-401 MIDI 0-0
aplaymidi -p 64:0 All_By_Myself.mid &
I've been using this script:
with my MPU-401. It allows you to play another .mid before the first has finished. I included a gmreset, which timidity should not require as its non-playing state is constant I believe.
killall would likely be a better solution than the code in my script, but it does work for me.
Edit-+I am aware that Puppy's ps accepts no parameters +-
Code: Select all
#!/bin/bash
# -x on bash line for trace
playername= "aplaymidi"
#kill aplaymidi if running
get_proc=`ps -e -o pid,command | grep aplaymidi`
echo $get_proc > get_it
get_pid=`gawk -F" " '{ print $playername }' get_it`
kill -9 $get_pid
#perform gmreset
aplaymidi -p 64:0 /root/gmreset.mid
#start playing
aplaymidi -p 64:0 "$1"
killall would likely be a better solution than the code in my script, but it does work for me.
Edit-+I am aware that Puppy's ps accepts no parameters +-