Jump to content

SB Live/Audigy Midi with ALSA mini-how-to (draft)


zero0w
 Share

Recommended Posts

SB Live/Audigy MIDI mini-how-to with ALSA

 

Update: This How-To was written in 2002. Since then new approaches have come up which no longer require compiling of 'awemidi' anymore (see the steps below). However, awesfx is still required for SB Live!/Audigy/AWE to load the soundfont (*.sf2) into memory - before you can play any MIDI tracks using any other Linux sequencer or playback client.

 

You can skip Step 4-6 (except Step 6.1, which is ALWAYS required) if you use other MIDI playback client such as KMid. See this Mandrake Club article for more detail:

 

http://www.mandrakeclub.com/article.php?sid=979

http://alsa.opensrc.org/index.php?page=emu10k1

 

Before you start, please note that:

(1) SB Extigy discussion goes here. (2) SB Audigy LS (and LS only) goes here.

(3) Dell model of SB Live! will be supported starting with ALSA 1.0.6.

 

To users of Mandrake Linux 10 or later, you are now advised to check out this article instead:

https://mandrivausers.org/index.php?showtopic=22604

 

==========================================================

Ok, the mini-how-to starts here:

 

>> Required package/file/programs/libraries <<

 

1) awesfx rpm

2) awesfx-devel rpm

3) soundfont (*.sf2) eg. 8MGMSFX.SF2 from the SB Live CD

4) To compile the GUI MIDI players

 

You need these programs installed on your system:

 

gcc

make

xmkmf

Tk & Tcl libraries

 

And some knowledge on editing & compiling source files :P .

 

5) *.mid files for playback

 

>> Steps for installation <<

 

The following steps have only been tested with MDK 8.2, 9.0 & 9.1. Your mileage may vary with other Linux distributions.

 

#1. Make sure ALSA driver* is properly installed for SB Live/Audigy (module: snd-emu10k1, NOT audigy)

 

Note: Mandrake 9.1 by default loads OSS as sound driver using 'audigy' module, as many SB Live/Audigy users have experienced. Please check out this post for how to switch back to ALSA.

 

If you need help on compiling & installing ALSA please refer to the ALSA driver page:

-> Emu10k1 ALSA driver & module compilation and installation

 

* Since I have only tested it on the 0.9 series so I do not know if it works for 0.5 series. Also there are reports that the ALSA driver caused sound delay in games, but in my experience if you compile from the source, the delay will be greatly reduced (to nil in some case). So I recommend installing from the source. However, if your current ALSA 0.9+ version is running fine I don't see the need & risk to tinker with it.

 

I just use the default setup as it comes in MDK9.1 with ALSA 0.9 rc8.

 

#2. Install "awesfx" and "awesfx-devel" rpm package, both are coming with MDK9/9.1 CDs, MDK 8.2 users need to look for awesfx-devel package from rpmfind.net (click the link below)

 

-> awesfx-0.4.4 rpm

-> awesfx-devel-0.4.4 rpm

 

#3. Copy the soundfont file from the SB Live CD to your harddrive,

I recommend 8MBGMSFX.SF2, it produces better sound quality in my opinion.

 

Here are some suggested locations:

 

~/ (user home directory, however this will restrict access of the soundfont to that account)

/opt

/etc/midi

 

#4. Go to the SB AWE32/64 Sound Driver for Linux / FreeBSD page.

Download AWEMidi Player source tarball package and extract it.

 

-> awemidi-0.4.3c.tgz

 

#5. Procedure for compile & install

 

5.1 - Edit lmakefile (either in console or X-Window)

In the directory where awemidi-0.4.3c.tgz is extracted, edit the file "lmakefile"

 

=> On line 48, where

 

AWEINCDIR = $(INSTDIR)/include/awe

 

modify it to

 

AWEINCDIR = /usr/include/awe

 

=> For MDK 8.2 users ONLY: go to line 106, where

 

TKLIBS = -L/usr/X11R6/lib -ltk -ltcl $(XLIB) -ldl

 

change it to

 

TKLIBS = -ltk8.3 -ltcl8.3 -L/usr/X11R6/lib -lX11 -ldl

 

=> Save the file after modification.

 

5.2 - Compile and install (in console)

 

Launch the terminal/console, change to the directory where awemidi is extracted.

Enter root mode (su), execute the following command in order (please refer to the INSTALL file)

 

xmkmf

make all

make install

 

Installation Complete!

 

#6. Procedure for playing midi files

 

6.1 Loading soundfont

 

Execute in console:

sfxload (insert pathname)/8MBGMSFX.SF2

 

6.2 Midi playback program

 

6.2.1 Under console - use drvmidi

 

 

drvmidi filename.mid

- where filename.mid is the mid file you have.

 

drvmidi -h

- to look for other options available

 

6.2.2 For X-Windows (KDE, Gnome, IceWM,... etc.)

 

Open a console in X-Windows, type

tkmidi

 

Now you have a GUI MIDI player for your SB Live/Audigy on Linux!

You may create desktop shortcuts to load the soundfont & MIDI player at ease.

 

#7. TO-DOs

 

1) To figure out how to auto-load soundfont at boot

2) To create a rpm for this awemidi package (need help on this)

3) Out of the 4 binaries produced (drvmidi, tkmidi, miditext, txtplay), txtplay produces seg fault - although I don't use it, it could be useful to investigate and debug if a rpm packge is to be made and submit as contribs to MDK.

4) A list of links to great midi files for testing would be nice :D

5) Acknowledgement:

 

- Thank you very much to Takashi Iwai for the help on modifying lmakefile.

- MandrakeSoft also deserves credits for making the awesfx rpm packages easily accessible.

- Thanks to LinuxExplorer for reminding me to write this how-to :) .

- The SB Live MIDI function has been tested under Rosegarden-4 ver 0.9, and it worked flawlessly :D

Edited by zero0w
Link to comment
Share on other sites

  • Replies 34
  • Created
  • Last Reply

Top Posters In This Topic

post-install snd-emu10k1-synth sfxload -V100 some_path/8MBGMSFX.SF2

 

Actually I have tried something like this in modules.conf, which did not work:

 

post-install snd-emu10k1-synth /bin/sfxload some_path/8MBGMSFX.SF2

 

So, may I ask, what does "-V100" parameter mean here?

 

Mystified: No problem :D .

Actually I found out there's a "Tips, Tricks and FAQ" forum only after I posted this :P .

 

You can move this post to there if you feel appropriate. Also I would like to ask others to help test out the procedure in this mini-FAQ or help making those TO-DOs work. Thanks a lot!

Edited by zero0w
Link to comment
Share on other sites

If you want to write up a separate tutorial in the style (formatting, word usage, etc) of my OSS tutorial, I'm willing to put it up on my site (you get credit, obviously).

 

I use OSS because I rarely use MIDI and ALSA sounds like tin cans to me.

 

But I'd try ALSA again, just to see. Also, Bass/Treble controls are of utmost importance for a tutorial, as well as rear speaker output.

 

If you don't want to, that's fine. I won't be doing it though. :)

Link to comment
Share on other sites

DOlson: That sounds a good idea.

Still I want to figure out those TO-DO stuff before I make a final version.

 

As for formatting I like the current step by step layout, but I guess it's just a personal preference anyway. Well, if the txtplay seg fault is figured out and debugged, a mdk-rpm package can be created and this mini-howto can be updated (or even simplified without the step 5) later on.

 

As for Bass and Treble, tkmidi supports Bass and Treble, just turn it on at

Display > Volume.

Link to comment
Share on other sites

TO-DO (4)

 

If you happen to like VGM (Video Game Music), here are some MID files I will highly recommend you all to try them out just for listening pleasure (PS. As long as these MID files are for personal non-profit use there should not be any copyright problem, since they are created & arranged by independent artists from scratch):

 

EDIT: VGMusic.com is blocking external link, so you may need to check out the MID files by navigating thru the site starting at: www.vgmusic.com

 

Console>Nintendo>Gamecube>Super Smash Bros. Melee

 

1. Princess Peach's Castle (ssbm_peachcastle.mid)

2. Saria's Song (ssbm_sariasongv_2.mid)

3. Trophy's Tussle (ssbm_trophy_tussle.mid)

 

Console>Sony>Playstation>Chrono Cross

 

1. Another Aruni (cc_another_aruni.mid)

2. Drown Valley (drownval_V1_0_1.mid)

3. Home Guldove (hguldove_V1_0_1.mid)

4. Home Mabuure (ccross_Home_Mabuure.mid)

5. Voyage to Another World (ccross_Voyage~Another_World.mid)

 

Console>Nintendo>N64>Snowboard Kid

1. Grassland (Grassland.mid)

2. Sunny Mountain (Sunny_Mountain.mid)

 

Console>Nintendo>N64>Legend of Zelda

1. Hydule Field

> Version #1 (Hyrule_feild_4_Concert.mid)

> Version #2 (zd64r54f.mid)

2. Kokiri Forest (z64kokri.mid)

3. Gerudo Desert (z64gerudo.mid)

 

Medley

Final Fantasy 1-7 Mix (FFMix20.mid)

Link to comment
Share on other sites

Guest LinuxExplorer

Very nice progress! Maybe you can put up the information I PMed you on the autoloading of a soundfont and see if someone else can get it to work or working from that. Oh yeah, heh...you're welcome on the reminder. :P

Link to comment
Share on other sites

Dangit.. this trick makes me want to buy a SB-Live just so that I got midi in linux without that stupid timidity. I got around 100 MB of high quality midi which sometimes I listen to but unfortunately, the only way to do it justice is to boot to windows and listen to it using my yamaha syxg50.

Link to comment
Share on other sites

I got around 100 MB of high quality midi

 

Wow, that's a LOT of midi files.

 

Hey just get a SB Live :wink: .

The OEM version should cost only US$20-30.

It only comes with the card and the SB Live CD, which will be enough :) .

 

LinuxExplorer: That's a good idea. Or we can start a new thread on discussing the autoloading issue.

Link to comment
Share on other sites

It's a collection starting from 1996, back when I was introduced to midi by my friend who owns a SB16 mated with Roland SCD-15 daughtercard. At that time having good midi card is the only way to get good music in computer games (this is before the time mp3 took off folks :) ) I remember listening to Dune 2 music (still is one the most kicking game music in computer gaming) in that roland daughterboard.. which prompts me to buy a Yamaha DBXG50 a few months later. Warcraft and Gabriel Knight follows later, and my collection grow and grow and grow.. and my search for video game and anime midi becomes a part time obsession.

 

I found out however that most of the music from that site you gave above ( http://www.vgmusic.com ) is rather poor qualitywise. Especially if heard through a high quality midi card such as the roland or the yamaha. Fortunately, I took a few Japanese classes then and during my "research" I stumbled into Japanese midi web sites. Most of the midi I found in those sites are usually high quality (they are composed typically using a Roland SC-55, SC-88 or SC-88 Pro or Yamaha MU-50 to SWXG-1000, in GS or XG mode). This period is where I found about 75% of my current collection. And lemme tell you all of them sounds really really nice.

 

Now I am retired in midi searching since I don't have the soundcard that can do those midi justice anymore (I lost my DBXG-50 daughtercard and frankly, the support for Waveblaster style daughtercard in today's soundcard is pretty much nil). There is no way I am going to shell 300 dollars or more for high quality midi module just for the purpose for listening to midi (I don't have any music talent in my body).

 

Anyway.. lemme cut down on my rambling before I am overwhelmed by nostalgia and start scouring for midi in Japanese web sites again. :)

Link to comment
Share on other sites

I am interested to look at the Japanese VGM music sites you mentioned.

Those Falcom commercial MIDI archives are really good, then again they are not free.

 

SB Live costs less than 30 bucks, with it there's no need to play MIDI with expensive equipment like that. With some big soundfont (30MB+), it can indeed sound even better, I am impressed and satisfied.

 

Those MIDIs I recommend in the post above are really good (as I have listened to them :) ). Give them a try, the Zelda64 and FF 1-7 Mix are of exceptional quality.

Link to comment
Share on other sites

post-install snd-emu10k1-synth sfxload -V100 some_path/8MBGMSFX.SF2

 

Actually I have tried something like this in modules.conf, which did not work:

 

post-install snd-emu10k1-synth /bin/sfxload some_path/8MBGMSFX.SF2

 

So, may I ask, what does "-V100" parameter mean here?

 

man sfxload

-V 100 means that the volume of the font is 100 %.

Link to comment
Share on other sites

I am interested to look at the Japanese VGM music sites you mentioned.

 

Unfortunately, around a year or two ago, most of the good ones basically close down their midi archives, something with JASRAC and copyright of midi. But if you have the patience and a working Japanese input, I suggest the first site you go to is this:

http://www.dtm.ac

And do a search (in Japanese, for example, for Final Fantasy you have to input something like ファイナルファンタジー or you have to know the Japanese name for the games like Akumajou Dracula for Castlevania, Rockman for Megaman, and so on).

 

Anyway, if you want to I can search from that site and give you some of the links I think is the best if you can tell me what kind of music you want.. Even a few years back, scouring that place for something common like Final Fantasy midi can take hours (because there are simply too many web sites in Japan offering their rendition of the music).

 

 

I

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share


×
×
  • Create New...