How to MIDI

How to do things, solutions, recipes, tutorials
Post Reply
Message
Author
User avatar
dewdrop
Posts: 298
Joined: Tue 30 Aug 2005, 01:54
Location: Texas USA

How to MIDI

#1 Post by dewdrop »

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

User avatar
jcoder24
Posts: 604
Joined: Fri 06 May 2005, 12:33
Location: Barbados

#2 Post by jcoder24 »

You can also use aplaymidi which is included with puppy to play midis. Note however, that it is a console app.

Code: Select all

aplaymidi -p `aplaymidi --list | tail -1 | gawk '{ print $1 }'` All_By_Myself.mid &
alternatively

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 &

User avatar
fluxit
Posts: 326
Joined: Sat 24 Jun 2006, 04:14
Location: Ketchikan, AK USA

#3 Post by fluxit »

I've been using this script:

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"
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 +-

Post Reply