- Mar 5, 2011
- 11
- 5
- 0
I really love my Nook Color.
I currently am running it with Nookie Froyo installed to the eMMC by following the directions found here.
Its fantastic and so far I found nothing that it can't do. It runs flawlessly.
My only gripe was the sound.
There are two issues as you probably know.
1) Low volume
2) The built in speaker is mono and only outputs one channel (left I believe)
So after trying a few things, I finally found a way to downmix stereo to mono and boost the volume a bunch. Now music is fantastic, louder and I hear both left and right channels as well!
The solution was in ALSA's asound.conf. It took me a little to figure out the best method and here is what I did.
FYI: I also have just a volume boosted version that does not downmix explained later as well.
First off, if you decide to do this, I take no responsibility for any possible damage to your Nook Color's internal speaker.
OK, that's out of the way, so here we go...
To do this you will need a working ADB setup or Root Explorer and a text editor.
I used ADB, so I will explain how to do this via that method.
You will of course need to be rooted.
I only tested this on my Nookie Froyo, but I see no reason why this won't work on any rooted setup since it is an ALSA tweak.
First off, fire up your favorite text editor and create a new asound.conf containing:
########################################
ctl.AndroidOut {
type hw
card 0
}
ctl.AndroidIn {
type hw
card 0
}
pcm.nook{
type hw
card 0
device 0
}
pcm.!default {
type route
slave.pcm nook
slave.channels 2
ttable.0.0 20
ttable.0.1 20
ttable.1.0 20
ttable.1.1 20
}
########################################
Now save it as C:\asound.conf (or whereever you want).
Make sure your text editor doesn't save it as asound.conf.txt. If it does you will need to remove the txt part before or after moving it to your Nook.
Next, backup your original asound.conf file (just in case)
########################################
adb shell
mount -o remount,rw /system
cp /system/etc/asound.conf /system/etc/asound.conf.original
mount -o remount,ro /system
exit
########################################
Now copy your new asound.conf file over to your Nook Color
########################################
adb mount -o remount,rw /system
adb push c:\asound.conf /system/etc/asound.conf
adb shell mount -o remount,ro /system
########################################
I would also suggest copying it over to your Nook as a second copy as this:
########################################
adb shell mount -o remount,rw /system
adb push c:\asound.conf /system/etc/asound.conf.downmixed
adb shell mount -o remount,ro /system
########################################
This is useful for switching back and forth as needed. i.e., if you are going to be running your Nook using headphones or to a receiver or speaker system and want to have true left and right stereo.
You now should have three asound.conf files as so:
asound.conf
asound.conf.original
asound.conf.downmixed
You can easily rename the files when needed.
YOU MUST REBOOT after you change the asound.conf file in order to have the changes take effect! I haven't found a way to restart ALSA on the Nook short of the reboot. If anyone knows how to restart alsa on the Nook, please let me know.
Ok, you can also mix it up a little and modify the stock asound.conf to boost the volume and keep the left and right mappings.
To do that, create a new asound.conf file containing:
########################################
ctl.AndroidOut {
type hw
card 0
}
ctl.AndroidIn {
type hw
card 0
}
pcm.nook{
type hw
card 0
device 0
}
pcm.!default {
type route
slave.pcm nook
slave.channels 2
ttable.0.0 20
ttable.1.1 20
}
########################################
I would save this file as asound.conf.boostedstereo or something easily identifiable.
Copy it over to the Nook as earlier done for the other files, but I would keep it named like that:
########################################
adb push c:\asound.conf.boostedstreo /system/etc/asound.conf.boostedstreo
########################################
Now to spice it up, you can use something like gscript to help you write a shell script to change the running asound files back and forth like so...
This one will move the downmixed one to be used:
########################################
mount -o remount,rw /system
cp /system/etc/asound.conf /system/etc/asound.conf.backup
cp /system/etc/asound.conf.downmixed /system/etc/asound.conf
mount -o remount,ro /system
reboot
########################################
This one will move the boosted stereo one to be used:
########################################
mount -o remount,rw /system
cp /system/etc/asound.conf /system/etc/asound.conf.backup
cp /system/etc/asound.conf.boostedstereo /system/etc/asound.conf
mount -o remount,ro /system
reboot
########################################
You get the idea.
You can also do this in the terminal or via adb.
I use both depending on what is going on since I seem to be batting 20% or so using gscript for some reason. It only works once in a while and I am at a loss. I will delve into it deeper later.
For me, for now, I don't use the headphone jack. The new downmixed stereo to mono plus the increaed volume now allows me to hear Pandora or my MP3s in the shower without my battery powered speakers. One less battery consuming device and less wires!! YAY!
The jack will come into play when I move this into the car as a replacement for my UMPC carputer once reliable bluetooth arrives so I can hook up to my car's ECU which is the final missing piece of the puzzle.
Anyway, if anyone knows why gscript might be crapping out on my shell script, let me know.
If you try this, let me know if you have any issues.
NOTE:
For some strange reason the ttable mapping isn't working as expected.
If you use the standard ttable.0.0 1 where 1 (I believe) should state full volume, or 100%, it doesn't work like that.
If you change the value from 20 as I have used, you can tweak the volume higher or lower.
I found 20 is the best for my MP3 files I tested since it had no distortion on some of my louder tracks. 30 definitely had distortion, but you might be able to tweak it up a tad more over 20.
FWIW, 20 is great for Slipknot and everything else is just fine.
You can also download the two asound.conf files if you prefer.
You will need to rename according to your needs.
RIGHT CLICK and SAVE AS or your browser's equivalent.
asound.conf.downmixed
asound.conf.boostedvolume
I currently am running it with Nookie Froyo installed to the eMMC by following the directions found here.
Its fantastic and so far I found nothing that it can't do. It runs flawlessly.
My only gripe was the sound.
There are two issues as you probably know.
1) Low volume
2) The built in speaker is mono and only outputs one channel (left I believe)
So after trying a few things, I finally found a way to downmix stereo to mono and boost the volume a bunch. Now music is fantastic, louder and I hear both left and right channels as well!
The solution was in ALSA's asound.conf. It took me a little to figure out the best method and here is what I did.
FYI: I also have just a volume boosted version that does not downmix explained later as well.
First off, if you decide to do this, I take no responsibility for any possible damage to your Nook Color's internal speaker.
OK, that's out of the way, so here we go...
To do this you will need a working ADB setup or Root Explorer and a text editor.
I used ADB, so I will explain how to do this via that method.
You will of course need to be rooted.
I only tested this on my Nookie Froyo, but I see no reason why this won't work on any rooted setup since it is an ALSA tweak.
First off, fire up your favorite text editor and create a new asound.conf containing:
########################################
ctl.AndroidOut {
type hw
card 0
}
ctl.AndroidIn {
type hw
card 0
}
pcm.nook{
type hw
card 0
device 0
}
pcm.!default {
type route
slave.pcm nook
slave.channels 2
ttable.0.0 20
ttable.0.1 20
ttable.1.0 20
ttable.1.1 20
}
########################################
Now save it as C:\asound.conf (or whereever you want).
Make sure your text editor doesn't save it as asound.conf.txt. If it does you will need to remove the txt part before or after moving it to your Nook.
Next, backup your original asound.conf file (just in case)
########################################
adb shell
mount -o remount,rw /system
cp /system/etc/asound.conf /system/etc/asound.conf.original
mount -o remount,ro /system
exit
########################################
Now copy your new asound.conf file over to your Nook Color
########################################
adb mount -o remount,rw /system
adb push c:\asound.conf /system/etc/asound.conf
adb shell mount -o remount,ro /system
########################################
I would also suggest copying it over to your Nook as a second copy as this:
########################################
adb shell mount -o remount,rw /system
adb push c:\asound.conf /system/etc/asound.conf.downmixed
adb shell mount -o remount,ro /system
########################################
This is useful for switching back and forth as needed. i.e., if you are going to be running your Nook using headphones or to a receiver or speaker system and want to have true left and right stereo.
You now should have three asound.conf files as so:
asound.conf
asound.conf.original
asound.conf.downmixed
You can easily rename the files when needed.
YOU MUST REBOOT after you change the asound.conf file in order to have the changes take effect! I haven't found a way to restart ALSA on the Nook short of the reboot. If anyone knows how to restart alsa on the Nook, please let me know.
Ok, you can also mix it up a little and modify the stock asound.conf to boost the volume and keep the left and right mappings.
To do that, create a new asound.conf file containing:
########################################
ctl.AndroidOut {
type hw
card 0
}
ctl.AndroidIn {
type hw
card 0
}
pcm.nook{
type hw
card 0
device 0
}
pcm.!default {
type route
slave.pcm nook
slave.channels 2
ttable.0.0 20
ttable.1.1 20
}
########################################
I would save this file as asound.conf.boostedstereo or something easily identifiable.
Copy it over to the Nook as earlier done for the other files, but I would keep it named like that:
########################################
adb push c:\asound.conf.boostedstreo /system/etc/asound.conf.boostedstreo
########################################
Now to spice it up, you can use something like gscript to help you write a shell script to change the running asound files back and forth like so...
This one will move the downmixed one to be used:
########################################
mount -o remount,rw /system
cp /system/etc/asound.conf /system/etc/asound.conf.backup
cp /system/etc/asound.conf.downmixed /system/etc/asound.conf
mount -o remount,ro /system
reboot
########################################
This one will move the boosted stereo one to be used:
########################################
mount -o remount,rw /system
cp /system/etc/asound.conf /system/etc/asound.conf.backup
cp /system/etc/asound.conf.boostedstereo /system/etc/asound.conf
mount -o remount,ro /system
reboot
########################################
You get the idea.
You can also do this in the terminal or via adb.
I use both depending on what is going on since I seem to be batting 20% or so using gscript for some reason. It only works once in a while and I am at a loss. I will delve into it deeper later.
For me, for now, I don't use the headphone jack. The new downmixed stereo to mono plus the increaed volume now allows me to hear Pandora or my MP3s in the shower without my battery powered speakers. One less battery consuming device and less wires!! YAY!
The jack will come into play when I move this into the car as a replacement for my UMPC carputer once reliable bluetooth arrives so I can hook up to my car's ECU which is the final missing piece of the puzzle.
Anyway, if anyone knows why gscript might be crapping out on my shell script, let me know.
If you try this, let me know if you have any issues.
NOTE:
For some strange reason the ttable mapping isn't working as expected.
If you use the standard ttable.0.0 1 where 1 (I believe) should state full volume, or 100%, it doesn't work like that.
If you change the value from 20 as I have used, you can tweak the volume higher or lower.
I found 20 is the best for my MP3 files I tested since it had no distortion on some of my louder tracks. 30 definitely had distortion, but you might be able to tweak it up a tad more over 20.
FWIW, 20 is great for Slipknot and everything else is just fine.

You can also download the two asound.conf files if you prefer.
You will need to rename according to your needs.
RIGHT CLICK and SAVE AS or your browser's equivalent.
asound.conf.downmixed
asound.conf.boostedvolume
Last edited: