Sound control
Sound control
Today I visited a page that had an advertising video playing and I didn't want to hear the obnoxious chatter. Since I couldn't find any way to turn off the sound in Odyssey, I opened AHI prefs and turned the volume all the way down and selected use but it had no effect. I also couldn't play any other music or even the test sound in AHI prefs. It really sucks when you have no control over your own computer. How do I turn off sound play in AHI prefs? Before anyone mentions Mixer, I'm using an X1000 and Mixer doesn't work.
AmigaOne X1000 with 2GB memory - OS4.1 FE
- LyleHaze
- AmigaOS Core Developer
- Posts: 525
- Joined: Sat Jun 18, 2011 5:06 pm
- Location: North Florida, near the Big Bend
Re: Sound control
AHI provides volume controls to the program that is making the sound.
This works on all types of sound devices that AHI supports, from Paula to X1000, and everything in between.
The technique used by "Mixer" pokes hardware directly, and will not work on a couple of sound cards, including HDAudio on the X1000.
If a program uses AHI to play sound and does not provide access to the volume control, then you'll need to take it up with the programmer who left that feature out. Or you could try turning down the volume control on your speakers, or turning the speakers off.
This works on all types of sound devices that AHI supports, from Paula to X1000, and everything in between.
The technique used by "Mixer" pokes hardware directly, and will not work on a couple of sound cards, including HDAudio on the X1000.
If a program uses AHI to play sound and does not provide access to the volume control, then you'll need to take it up with the programmer who left that feature out. Or you could try turning down the volume control on your speakers, or turning the speakers off.
Re: Sound control
@Lyle
) Omg ! And also programmers should do everything else which should do OS, indeed (only omiga). Global volume control its what should OS do, not 3d party programmers, that for what mixer is done in first place (and on os4 too, if x1000 do not have mixer or mixer replacement which do not poke hardware directly but works as mixer , its fault of x1000 support, not of 3d party progammers. What a strange idea to put work of component which should be in os on 3d party apps which not intendent to have volume control and should not).
Some programs not intendented to have options for change volume controls. Other ones (like games) have ability to do so only in menu, or only after restart, some app just do not have that control and will not (like demos, intros and all fancy stuff). For all of this on all oses Mixer is present. Mixer its "realtime" sound change, not just "go to options in menu of app, change it, and go back to the app (and be hope its realtime enough)" (some which support sound/music never-ever have any kind of menu). Mixer is user friendly and fast ability to change global volume control in _realtime_. So you can't blame authors of browser, who do not add functionality which should be present in the OS itself. In case with odyssey, and as it come from morphos: they have mixer working on all HW they support. The same as aos4 have mixer everywhere , but not on x1000. Even if current mixer poking hardware directly, then for x1000 there should be replacement which do not poking hardware directly , but still works as mixer should work.
In other words, its x1000 which should have mixer replacement or something, and not devs of app should be annoed by adding to their apps workorounds for some hardware problems which should be deal on by os developers already (taking aside that many apps will never have it, like games, demos, and any other stuff where sound is present, but control is not, and should be not). That not only about browsers of course. Mixers done for reasons on all oses (and on os4 too). If there is still no mixer replacement on x1000, then its fault not of authors of 3d party apps, like browsers, games, demos or whatever where volume control should not be present most of time, but that is fault of x1000 sound support. And how you at all can expect that anyone who ever bring in his apps any sound should have volume control ?
) Should then workbench have volume control for bootsound ? Its all quite logical for me, that Mixer should be done , not apps should be changes. Its just unreal to ask developers to do volume control in every apps. Mixer done for reasons, everywhere. It is global and realtime control of sound, to make users happy, to avoid users and coders boring about any of that sort, and that how it should be everywhere.
I.e. mixer replacement must, not odyssey (and thousand of other apps) should have own volume control. I imagine how ugly it will be, and how unfriendly it will be to have in all apps volume control. Its just unreal to ask do what os should do. Its waste of coders time, its making user expirience with OS itself in many times worse and clumsy.
Just imho better think why we still not have on x1000 mixer replacement, or there is no code which "do not poke hardware directly", but can be added to mixer so to have x1000 support too, or we will have such kind of topics all the time. And pointing out in answer like "sorry, x1000 not have mixer, so go and ask all developers to add volume control to all their apps", will just looks strange and wrong way.
Mixer on x1000 must. With poking hardware , or without, does not matter. It just should works. Can be replacement, can be some "Code" which added to current mixer, whatever. Just x1000 should be supported , too.
If a program uses AHI to play sound and does not provide access to the volume control, then you'll need to take it up with the programmer who left that feature out.

Some programs not intendented to have options for change volume controls. Other ones (like games) have ability to do so only in menu, or only after restart, some app just do not have that control and will not (like demos, intros and all fancy stuff). For all of this on all oses Mixer is present. Mixer its "realtime" sound change, not just "go to options in menu of app, change it, and go back to the app (and be hope its realtime enough)" (some which support sound/music never-ever have any kind of menu). Mixer is user friendly and fast ability to change global volume control in _realtime_. So you can't blame authors of browser, who do not add functionality which should be present in the OS itself. In case with odyssey, and as it come from morphos: they have mixer working on all HW they support. The same as aos4 have mixer everywhere , but not on x1000. Even if current mixer poking hardware directly, then for x1000 there should be replacement which do not poking hardware directly , but still works as mixer should work.
In other words, its x1000 which should have mixer replacement or something, and not devs of app should be annoed by adding to their apps workorounds for some hardware problems which should be deal on by os developers already (taking aside that many apps will never have it, like games, demos, and any other stuff where sound is present, but control is not, and should be not). That not only about browsers of course. Mixers done for reasons on all oses (and on os4 too). If there is still no mixer replacement on x1000, then its fault not of authors of 3d party apps, like browsers, games, demos or whatever where volume control should not be present most of time, but that is fault of x1000 sound support. And how you at all can expect that anyone who ever bring in his apps any sound should have volume control ?

I.e. mixer replacement must, not odyssey (and thousand of other apps) should have own volume control. I imagine how ugly it will be, and how unfriendly it will be to have in all apps volume control. Its just unreal to ask do what os should do. Its waste of coders time, its making user expirience with OS itself in many times worse and clumsy.
Just imho better think why we still not have on x1000 mixer replacement, or there is no code which "do not poke hardware directly", but can be added to mixer so to have x1000 support too, or we will have such kind of topics all the time. And pointing out in answer like "sorry, x1000 not have mixer, so go and ask all developers to add volume control to all their apps", will just looks strange and wrong way.
Mixer on x1000 must. With poking hardware , or without, does not matter. It just should works. Can be replacement, can be some "Code" which added to current mixer, whatever. Just x1000 should be supported , too.
- LyleHaze
- AmigaOS Core Developer
- Posts: 525
- Joined: Sat Jun 18, 2011 5:06 pm
- Location: North Florida, near the Big Bend
Re: Sound control
Poking the PCI bus won't work anymore.
HDAudio chips can not be reached from there,
USB Audio devices can not be reached from there.
The X1000 is one sound device that does not have mixer support, it is not the only one.
Also, with the changeover to HDAudio, I expect there will be many more that will not be supported by Mixer.
Unlike a PCI sound card, the control path to HDAudio chips is through a series of ring buffers, which do not have the means for sharing among multiple tasks.
If the application chooses to not allow the user any access to those controls, then the user doesn't get access.
There's nothing wrong with the sound chip. AHI can reach the volume controls on the chip just fine. AHI also provides each program with it's own volume control, and that works fine too. The problem is that programs ignore the volume controls they are given.
As the industry switches from AC97 to HDAudio, I expect there will be a lot more audio chips that are not supported by mixer.
Mixer will also be useless for USB audio devices, for all the same reasons.
Mixer is not an AHI program. It requires special code to poke a specific address for every type of sound card it might support, and newer sound cards no longer offer a PCI address to support volume changes.
The sound chip in the X1000 works great, and AHI can reach it's volume control easily. It can actually set the level of each of the eight outputs individually. The problem is that some programs use AHI volume settings, and some ignore them.
If you want "a replacement that do not poking the hardware directly, but still works as a mixer should", then you have three choices.
You can
1> Only use sound cards that allow volume changes by poking PCI addresses.
2> Contact Intel and have them re-write the HDAudio specification to your liking.
3> Tell programmers that write programs for AHI to use the volume controls that they have been provided with all along.
We DO have volume controls available to ALL supported sound cards.
IAHI->AHI_PlayA() supports a tag called AHIP_Vol,
IAHI->AHI_ControlAudioA() supports a tag called AHIC_OutputVolume,
And if you're using the old interface, you also have
IAHI->AHI_SetVol(), which has been deprecated but is still supported.
All three of these provide the application with control of the audio volume. All three of these are supported in AHIV6, on all platforms and devices that are supported by AHI.
Using the volume controls in AHI also allow relative level settings when multiple programs are making sound at once. If every program expects the OS to control their volume that ability would be lost.
HDAudio chips can not be reached from there,
USB Audio devices can not be reached from there.
The X1000 is one sound device that does not have mixer support, it is not the only one.
Also, with the changeover to HDAudio, I expect there will be many more that will not be supported by Mixer.
Unlike a PCI sound card, the control path to HDAudio chips is through a series of ring buffers, which do not have the means for sharing among multiple tasks.
That is fine. I simply said that AHI supports volume controls from the source application.Some programs not intendented to have options for change volume controls.
If the application chooses to not allow the user any access to those controls, then the user doesn't get access.
There's nothing wrong with the sound chip. AHI can reach the volume controls on the chip just fine. AHI also provides each program with it's own volume control, and that works fine too. The problem is that programs ignore the volume controls they are given.
Absolutely! See Sys:prefs/sound System Startup Sound, Sound VolumeShould then workbench have volume control for bootsound ?
Not true, some versions of Juli@ also have no volume support from Mixer.The same as aos4 have mixer everywhere , but not on x1000.
As the industry switches from AC97 to HDAudio, I expect there will be a lot more audio chips that are not supported by mixer.
Mixer will also be useless for USB audio devices, for all the same reasons.
I think you're missing the point.Even if current mixer poking hardware directly, then for x1000 there should be replacement which do not poking hardware directly , but still works as mixer should work.
Mixer is not an AHI program. It requires special code to poke a specific address for every type of sound card it might support, and newer sound cards no longer offer a PCI address to support volume changes.
The sound chip in the X1000 works great, and AHI can reach it's volume control easily. It can actually set the level of each of the eight outputs individually. The problem is that some programs use AHI volume settings, and some ignore them.
If you want "a replacement that do not poking the hardware directly, but still works as a mixer should", then you have three choices.
You can
1> Only use sound cards that allow volume changes by poking PCI addresses.
2> Contact Intel and have them re-write the HDAudio specification to your liking.
3> Tell programmers that write programs for AHI to use the volume controls that they have been provided with all along.
We DO have volume controls available to ALL supported sound cards.
IAHI->AHI_PlayA() supports a tag called AHIP_Vol,
IAHI->AHI_ControlAudioA() supports a tag called AHIC_OutputVolume,
And if you're using the old interface, you also have
IAHI->AHI_SetVol(), which has been deprecated but is still supported.
All three of these provide the application with control of the audio volume. All three of these are supported in AHIV6, on all platforms and devices that are supported by AHI.
Using the volume controls in AHI also allow relative level settings when multiple programs are making sound at once. If every program expects the OS to control their volume that ability would be lost.
Re: Sound control
@LyleHaze
I know what the problems with mixer are with the X1000 builtin sound and some sound cards. I think that AHI needs some reworking. I think we need a small control program for AHI that just controls sound output & volume. I know some programs are going to fail if AHI stops accepting sound after the device is open and playing sound. However, I think that a seperate AHI control program and the Prefs program could have a kill button that would start sending the sound to NIL: or stop sending the sound to the sound card even if it continues to receive it from a program. It would also not allow any programs to open AHI until the kill button is pressed again to reactivate sound play. Once the sound output is turned off by the kill button, the user could change the volume and reactivate sound output. I see no reason why we can't have better AHI control.
@kas1e
There are menu items in Odyssey to disable image loading, JavaScript and plugins. We also need menu items to disable sound loading or output and menu items to disable video loading (to include the sound in a video). If there are good reasons to let the user disable image loading, JavaScript and plugins then the ability to disable sound and video is just as valid. I shouldn't need to leave my browser screen and go to Workbench to control Odyssey features. I would agree that we need better overall sound control as I pointed out to Lyle, but that's no reason not to give the user some more control over Odyssey.
I know what the problems with mixer are with the X1000 builtin sound and some sound cards. I think that AHI needs some reworking. I think we need a small control program for AHI that just controls sound output & volume. I know some programs are going to fail if AHI stops accepting sound after the device is open and playing sound. However, I think that a seperate AHI control program and the Prefs program could have a kill button that would start sending the sound to NIL: or stop sending the sound to the sound card even if it continues to receive it from a program. It would also not allow any programs to open AHI until the kill button is pressed again to reactivate sound play. Once the sound output is turned off by the kill button, the user could change the volume and reactivate sound output. I see no reason why we can't have better AHI control.
@kas1e
There are menu items in Odyssey to disable image loading, JavaScript and plugins. We also need menu items to disable sound loading or output and menu items to disable video loading (to include the sound in a video). If there are good reasons to let the user disable image loading, JavaScript and plugins then the ability to disable sound and video is just as valid. I shouldn't need to leave my browser screen and go to Workbench to control Odyssey features. I would agree that we need better overall sound control as I pointed out to Lyle, but that's no reason not to give the user some more control over Odyssey.
AmigaOne X1000 with 2GB memory - OS4.1 FE
Re: Sound control
@Xenic
Sounds logical, if you have time, can you plz put it as feature request to Odyssey on bugs.os4depot.net ?There are menu items in Odyssey to disable image loading, JavaScript and plugins. We also need menu items to disable sound loading or output and menu items to disable video loading (to include the sound in a video). If there are good reasons to let the user disable image loading, JavaScript and plugins then the ability to disable sound and video is just as valid. I shouldn't need to leave my browser screen and go to Workbench to control Odyssey features. I would agree that we need better overall sound control as I pointed out to Lyle, but that's no reason not to give the user some more control over Odyssey.
Re: Sound control
I would if I could. I signed in at http://bugs.os4depot.net and went to the odyssey page. I am shown as an active user in the menus on the left hand side of the page but don't see any buttons for adding a request or bug. Do I need some sort of special permission to add anything?kas1e wrote:@Xenic
Sounds logical, if you have time, can you plz put it as feature request to Odyssey on bugs.os4depot.net ?
EDIT: Never mind. The default spoof setting in Odyssey didn't show the add buttons but when I changed the spoofing to FileFox I see the top menus and buttons including the "add issue button".
Last edited by xenic on Sat May 10, 2014 7:16 pm, edited 1 time in total.
AmigaOne X1000 with 2GB memory - OS4.1 FE
Re: Sound control
@Xenic
Nope, no special permissions need it, should be for everone. You should have at top button "Add Issue" once you click on odyssey link and will have list of reports.
Nope, no special permissions need it, should be for everone. You should have at top button "Add Issue" once you click on odyssey link and will have list of reports.
Re: Sound control
@kas1e
As happened at the Dopus5 discussion, you've posted while I was editing my previous posting. It was a spoofing issue and I now have the "add issue" button at the top of the page.
EDIT: I'm having a bad day. I entered the issue but accidently left it as a bug instead of a feature request and don't see any way to edit my addition. I guess you'll get the idea though.
As happened at the Dopus5 discussion, you've posted while I was editing my previous posting. It was a spoofing issue and I now have the "add issue" button at the top of the page.
EDIT: I'm having a bad day. I entered the issue but accidently left it as a bug instead of a feature request and don't see any way to edit my addition. I guess you'll get the idea though.
AmigaOne X1000 with 2GB memory - OS4.1 FE
- Hans
- AmigaOS Core Developer
- Posts: 703
- Joined: Tue Dec 21, 2010 9:25 pm
- Location: New Zealand
- Contact:
Re: Sound control
There is still a need for a user mixer prefs program that can set the volume for all inputs/outputs in a manner that applications can't override/ignore; a kind of master volume for each input/output. That way the user can adjust volumes independently of each program, just like all other OSes have. If AHI doesn't have that ability, then this is something that could be added (via a separate interface, if needed).LyleHaze wrote: ...
Mixer is not an AHI program. It requires special code to poke a specific address for every type of sound card it might support, and newer sound cards no longer offer a PCI address to support volume changes.
The sound chip in the X1000 works great, and AHI can reach it's volume control easily. It can actually set the level of each of the eight outputs individually. The problem is that some programs use AHI volume settings, and some ignore them.
If you want "a replacement that do not poking the hardware directly, but still works as a mixer should", then you have three choices.
You can
1> Only use sound cards that allow volume changes by poking PCI addresses.
2> Contact Intel and have them re-write the HDAudio specification to your liking.
3> Tell programmers that write programs for AHI to use the volume controls that they have been provided with all along.
We DO have volume controls available to ALL supported sound cards.
IAHI->AHI_PlayA() supports a tag called AHIP_Vol,
IAHI->AHI_ControlAudioA() supports a tag called AHIC_OutputVolume,
And if you're using the old interface, you also have
IAHI->AHI_SetVol(), which has been deprecated but is still supported.
All three of these provide the application with control of the audio volume. All three of these are supported in AHIV6, on all platforms and devices that are supported by AHI.
Using the volume controls in AHI also allow relative level settings when multiple programs are making sound at once. If every program expects the OS to control their volume that ability would be lost.
Mixer's method of directly accessing PCI registers is a rather dirty hack, and it's time to put an end to that.
Hans
http://hdrlab.org.nz/ - Amiga OS 4 projects, programming articles and more. Home of the RadeonHD driver for Amiga OS 4.x project.