Log in

View Full Version : Re: Windows XP, Midi and Audio


Jay Levitt
March 6th 04, 07:14 PM
In article .net>,
says...
> My DAW is set up in "standard pc" mode as when I tried ACPI midi was
> glitching a lot. Now it is fine. Some recommendations contradict others, I
> guess it depends on the motherboard. I am installing XP in two gigastudio
> computers so am wondering whether to go standard or acpi.

It definitely depends on your motherboard. Modern motherboards include
something called an "APIC" - Advanced Processor Interrupt Controller,
also called an IO-APIC. (Don't confuse that with ACPI, Advanced
Configuration and Power Interface, even though the two work hand-in-
hand.)

Windows uses "interrupts" to communicate with hardware. When a hardware
device has data available for a driver to process, it triggers an
interrupt, which as the name implies interrupts the CPU so that the
driver can immediately process the data. Each interrupt is assigned a
number, usually referred to as the IRQ (Interrupt ReQuest) number.

Under Windows 2000, ACPI mode would usually put all your interrupts on a
single IRQ, often IRQs 9 or 11, which results in inefficiency every time
an interrupt fires; if your audio interface triggered an interrupt
because it received some data, Windows would have to wake up EVERY
driver in the system and say "Hey! I have an interrupt for IRQ 9. You
registered for IRQ 9. Is this data for you?" Each driver in turn says
"no" until Windows finally gets around to the audio driver, which
accepts the data.

Under Windows XP, *if* your motherboard has an APIC, it can use ACPI to
configure the APIC so that nearly every device has a different IRQ. In
fact, while standard mode allows you to manually configure only 16
interrupts, ACPI can access 24, so there's actually a *better* chance of
not sharing IRQs under ACPI. Most modern boards do have an APIC, so I'd
recommend giving ACPI a try.

Do realize that you should not switch between ACPI and standard modes
via the Device Manager; it will allow you to do this, but Microsoft
strongly recommends a reinstall of Windows XP to switch back and forth,
and if you don't do that, you may run into unspecified problems.

There's actually no particular reason that ACPI has to prevent you from
manually configuring the interrupts, and a few years ago, a Microsoft
kernel developer mentioned that future Windows versions might allow you
to tweak the IRQs that ACPI assigns. We'll find out when Longhorn comes
out.

--
Jay Levitt |
Wellesley, MA | Hi!
Faster: jay at jay dot eff-em | Where are we going?
http://www.jay.fm | Why am I in this handbasket?

Jerry Gerber
March 6th 04, 07:39 PM
Yes, I know that once Windows is installed in one mode or another you have
to just leave it, or reinstall Windows. That is why I want to get right the
first time. I will probably go with standard pc mode as I have had good
luck with that with my DAW and the computers in question are dedicated
Gigastudio computers so there is only one pci card needing an additional
interrupt.

Jerry Gerber



"Jay Levitt" > wrote in message
...
> In article .net>,
> says...
> > My DAW is set up in "standard pc" mode as when I tried ACPI midi was
> > glitching a lot. Now it is fine. Some recommendations contradict
others, I
> > guess it depends on the motherboard. I am installing XP in two
gigastudio
> > computers so am wondering whether to go standard or acpi.
>
> It definitely depends on your motherboard. Modern motherboards include
> something called an "APIC" - Advanced Processor Interrupt Controller,
> also called an IO-APIC. (Don't confuse that with ACPI, Advanced
> Configuration and Power Interface, even though the two work hand-in-
> hand.)
>
> Windows uses "interrupts" to communicate with hardware. When a hardware
> device has data available for a driver to process, it triggers an
> interrupt, which as the name implies interrupts the CPU so that the
> driver can immediately process the data. Each interrupt is assigned a
> number, usually referred to as the IRQ (Interrupt ReQuest) number.
>
> Under Windows 2000, ACPI mode would usually put all your interrupts on a
> single IRQ, often IRQs 9 or 11, which results in inefficiency every time
> an interrupt fires; if your audio interface triggered an interrupt
> because it received some data, Windows would have to wake up EVERY
> driver in the system and say "Hey! I have an interrupt for IRQ 9. You
> registered for IRQ 9. Is this data for you?" Each driver in turn says
> "no" until Windows finally gets around to the audio driver, which
> accepts the data.
>
> Under Windows XP, *if* your motherboard has an APIC, it can use ACPI to
> configure the APIC so that nearly every device has a different IRQ. In
> fact, while standard mode allows you to manually configure only 16
> interrupts, ACPI can access 24, so there's actually a *better* chance of
> not sharing IRQs under ACPI. Most modern boards do have an APIC, so I'd
> recommend giving ACPI a try.
>
> Do realize that you should not switch between ACPI and standard modes
> via the Device Manager; it will allow you to do this, but Microsoft
> strongly recommends a reinstall of Windows XP to switch back and forth,
> and if you don't do that, you may run into unspecified problems.
>
> There's actually no particular reason that ACPI has to prevent you from
> manually configuring the interrupts, and a few years ago, a Microsoft
> kernel developer mentioned that future Windows versions might allow you
> to tweak the IRQs that ACPI assigns. We'll find out when Longhorn comes
> out.
>
> --
> Jay Levitt |
> Wellesley, MA | Hi!
> Faster: jay at jay dot eff-em | Where are we going?
> http://www.jay.fm | Why am I in this handbasket?

Mike Rivers
March 6th 04, 11:43 PM
In article > writes:

> Under Windows XP, *if* your motherboard has an APIC, it can use ACPI to
> configure the APIC so that nearly every device has a different IRQ.

Funny, but my first PC, running PC DOS 2.0, allowed me to do that - in
fact REQUIRED that I do that. I never quite got comfortable with the
modern interrupt sharing systems where several devices happily (at
least as far as the CPU is concerned) share the same IRQ.

> Do realize that you should not switch between ACPI and standard modes
> via the Device Manager; it will allow you to do this, but Microsoft
> strongly recommends a reinstall of Windows XP to switch back and forth,
> and if you don't do that, you may run into unspecified problems.

I've never installed Windows from scratch. Does it actually give you
this choice? And more important, does it actually expect most people
to understand what the choice means?

> There's actually no particular reason that ACPI has to prevent you from
> manually configuring the interrupts, and a few years ago, a Microsoft
> kernel developer mentioned that future Windows versions might allow you
> to tweak the IRQs that ACPI assigns. We'll find out when Longhorn comes
> out.

The first computer in which I installed a network card (PII, Win95)
didn't like it because it shared an IRQ with something else that was
pretty busy, maybe the video card. I tried to change one or the other
in the Device Manager and neither allowed me to make the change.
Turned out that a BIOS flash update let it find a different IRQ for
one of the cards and that's what finally got it working. But I went
through two different network cards and several calls to their tech
support before someone (I believe in r.a.p.) suggested, for no
particular reason, to see if there was a BIOS update available.

Go figure.


--
I'm really Mike Rivers )
However, until the spam goes away or Hell freezes over,
lots of IP addresses are blocked from this system. If
you e-mail me and it bounces, use your secret decoder ring
and reach me here: double-m-eleven-double-zero at yahoo

Jay Levitt
March 7th 04, 12:04 AM
In article <znr1078609705k@trad>, says...
> > Under Windows XP, *if* your motherboard has an APIC, it can use ACPI to
> > configure the APIC so that nearly every device has a different IRQ.
>
> Funny, but my first PC, running PC DOS 2.0, allowed me to do that - in
> fact REQUIRED that I do that. I never quite got comfortable with the
> modern interrupt sharing systems where several devices happily (at
> least as far as the CPU is concerned) share the same IRQ.

I doubt your first PC did that automatically; surely you had to assign
the IRQs with jumpers. ACPI lets the OS, BIOS, devices, etc. negotiate
who gets what interrupt; it's part of plug-n-play, which all these years
later is finally starting to work pretty well for most people.

> > Do realize that you should not switch between ACPI and standard modes
> > via the Device Manager; it will allow you to do this, but Microsoft
> > strongly recommends a reinstall of Windows XP to switch back and forth,
> > and if you don't do that, you may run into unspecified problems.
>
> I've never installed Windows from scratch. Does it actually give you
> this choice? And more important, does it actually expect most people
> to understand what the choice means?

I think Windows tries to detect the best HAL for your setup - it
probably will install ACPI if the board supports it, and Standard
otherwise. Of course, for some post-ACPI but pre-APIC boards, it will
probably install ACPI when Standard is a better choice for audio
enthusiasts. You can always press F5 (or is it F6?) to select a
different HAL, but I can't remember if it tells you that you have the
option or not.

> > There's actually no particular reason that ACPI has to prevent you from
> > manually configuring the interrupts, and a few years ago, a Microsoft
> > kernel developer mentioned that future Windows versions might allow you
> > to tweak the IRQs that ACPI assigns. We'll find out when Longhorn comes
> > out.
>
> The first computer in which I installed a network card (PII, Win95)
> didn't like it because it shared an IRQ with something else that was
> pretty busy, maybe the video card. I tried to change one or the other
> in the Device Manager and neither allowed me to make the change.
> Turned out that a BIOS flash update let it find a different IRQ for
> one of the cards and that's what finally got it working. But I went
> through two different network cards and several calls to their tech
> support before someone (I believe in r.a.p.) suggested, for no
> particular reason, to see if there was a BIOS update available.

IIRC, early versions of PCI - or maybe this goes all the way back to ISA
- had two ways of triggering interrupts. Some were level-triggered,
some were edge-triggered. One lets you share interrupts successfully,
and the other doesn't, and the one that does is now the standard.

--
Jay Levitt |
Wellesley, MA | Hi!
Faster: jay at jay dot eff-em | Where are we going?
http://www.jay.fm | Why am I in this handbasket?

reddred
March 7th 04, 04:04 AM
"Jay Levitt" > wrote in message
...

> IIRC, early versions of PCI - or maybe this goes all the way back to ISA
> - had two ways of triggering interrupts. Some were level-triggered,
> some were edge-triggered.

You're thinking of EISA, which allowed both types of triggering. ISA-8 and
ISA-16 buses were edge-triggered, and did not allow sharing. MCA was level
triggered.


>One lets you share interrupts successfully,
> and the other doesn't, and the one that does is now the standard.
>

Level triggered.

jb

Arny Krueger
March 7th 04, 05:41 AM
"Mike Rivers" > wrote in message
news:znr1078609705k@trad

>I never quite got comfortable with the
> modern interrupt sharing systems where several devices happily (at
> least as far as the CPU is concerned) share the same IRQ.

I come from a heavy mainframe background. The old mainframes were nothing if
not I/O handlers. They used shared interrupts like there was no tomorrow. In
fact, every I/O device in a room full of them was typically routed through
just one interrupt. It was called "The I/O interrupt". ;-)

A lot of "PC Wisdom" is based on really crappy implementations of what
amounts to being a good, workable idea. Sometimes, they eventually get it
right, and then the idea even works like the good idea it always was.

Mike Rivers
March 7th 04, 12:07 PM
In article > writes:

> I doubt your first PC did that automatically; surely you had to assign
> the IRQs with jumpers.

Yes, it was wonderful. You knew exactly where everyting was and it
never changed. You could be sure there were no conflicts.

> ACPI lets the OS, BIOS, devices, etc. negotiate
> who gets what interrupt; it's part of plug-n-play, which all these years
> later is finally starting to work pretty well for most people.

Finally, for most people. But it doesn't allow the user to fix it if
it doesn't do the right thing.

> I think Windows tries to detect the best HAL for your setup - it
> probably will install ACPI if the board supports it, and Standard
> otherwise.

There you go again. "Windows tries to do what it thinks is best for
you." Then suppose you install a new card. Things change, and what it
did initially might not be right now.

> You can always press F5 (or is it F6?) to select a
> different HAL, but I can't remember if it tells you that you have the
> option or not.

Yeah, but you have to know that. And you have to know what a HAL is. I
don't. I'll admit that today's Windows does a pretty good job of running the "home appliance" computers and that the average user (of which there are thousands of times more of than DAW users) will have no OS problems as long as he keeps virus-free, keeps hooked up to a full time high speed Internet connection, and has automatic updates installed. But for someone who sets up a computer for a dedicated purpose (like a DAW) that often uses non-conventional hardware and evolving drivers, and the hardware gets changed a couple of times a year, there can be problems with which the average musician or audio engineer is not trained to cope.

I realize that there are professional computer/OS repair people, but their services are generally much more expensive than hardware repair people, and it's harder to tell if they've actually fixed the problem, or even caused another problem in the process. Good ones can probably be trusted, and then there's all the advice you find on the Internet which usually sends you searching for more information.



--
I'm really Mike Rivers )
However, until the spam goes away or Hell freezes over,
lots of IP addresses are blocked from this system. If
you e-mail me and it bounces, use your secret decoder ring
and reach me here: double-m-eleven-double-zero at yahoo

Mike Rivers
March 7th 04, 03:17 PM
In article > writes:

> I come from a heavy mainframe background. The old mainframes were nothing if
> not I/O handlers. They used shared interrupts like there was no tomorrow. In
> fact, every I/O device in a room full of them was typically routed through
> just one interrupt. It was called "The I/O interrupt". ;-)

I guess I came from a minicomputer background. The Data General
computers that we used when I worked for the National Weather Service
had the interrupt level determined by the position of the card slot.
The ones closest to the CPU card were the highest level, and you
needed to wire wrap jumpers from slot to slot to continue the
interrupt chain (or skip a slot if a card that didn't require an
interrupt needed to be in a certain position).



--
I'm really Mike Rivers - )
However, until the spam goes away or Hell freezes over,
lots of IP addresses are blocked from this system. If
you e-mail me and it bounces, use your secret decoder ring
and reach me here: double-m-eleven-double-zero at yahoo

Jay Levitt
March 7th 04, 03:53 PM
In article <znr1078628752k@trad>, says...
> > I doubt your first PC did that automatically; surely you had to assign
> > the IRQs with jumpers.
>
> Yes, it was wonderful. You knew exactly where everyting was and it
> never changed. You could be sure there were no conflicts.

Obviously you never had a set of three cards that each only supported
the same two interrupts.. :) I remember having to choose modem cards
for purchase based on which IRQs they allowed.

> > ACPI lets the OS, BIOS, devices, etc. negotiate
> > who gets what interrupt; it's part of plug-n-play, which all these years
> > later is finally starting to work pretty well for most people.
>
> Finally, for most people. But it doesn't allow the user to fix it if
> it doesn't do the right thing.

Right, and that truly sucks. Even the guy who wrote the code thinks it
sucks, but he didn't have time in the XP timeframe to fix that. I'm
hoping it'll show up in Longhorn.

> > I think Windows tries to detect the best HAL for your setup - it
> > probably will install ACPI if the board supports it, and Standard
> > otherwise.
>
> There you go again. "Windows tries to do what it thinks is best for
> you." Then suppose you install a new card. Things change, and what it
> did initially might not be right now.

You'd have to install a new motherboard, not just a new card - if
Windows installed the standard HAL, it's because your motherboard
doesn't support ACPI. Kind of a moot point now, because I can't imagine
that there are many new Windows XP installs on non-ACPI motherboards
these days. Anyway, if you change motherboards, you've always had to
reinstall Windows - there are generally too many underlying changes for
PnP to work properly at that point. Even when it worked once for me, I
still reinstalled to be safe. I don't remember if you're using XP, but
reinstalling is not the complete-format ordeal it used to be; it
basically does a "system repair", installing all the correct drivers for
your current system. All your menus, applications, registry, etc. are
preserved. At worst, I think you may lose any manual reordering of the
Start menu that you've done. And I don't think I've ever met anyone
else who even does that.

> > You can always press F5 (or is it F6?) to select a
> > different HAL, but I can't remember if it tells you that you have the
> > option or not.
>
> Yeah, but you have to know that. And you have to know what a HAL is.

Right, but the people who need to manually select a HAL are a very tiny
minority, made up principally of (a) audio or video editors who (b) have
an ACPI motherboard that (c) doesn't have an APIC. For everyone else,
the defaults work fine. And given that selecting the wrong HAL can
completely freeze you up, and that most users wouldn't understand the
concept of the HAL, I think that keeping it relatively hidden is a good
thing - although I do wish it at least prompted you. (Maybe it does.
There are two F-keys during setup, one for HAL, one for SCSI drivers,
and I forget which one doesn't prompt.)

The bigger problem is the held-over folk wisdom from Win2K that says
"ACPI is bad." Under Win2K, it was. Under Xp, it's not on any modern
system.

--
Jay Levitt |
Wellesley, MA | Hi!
Faster: jay at jay dot eff-em | Where are we going?
http://www.jay.fm | Why am I in this handbasket?

Scott Dorsey
March 7th 04, 03:56 PM
In article <znr1078663554k@trad>, Mike Rivers > wrote:
>In article > writes:
>
>> I come from a heavy mainframe background. The old mainframes were nothing if
>> not I/O handlers. They used shared interrupts like there was no tomorrow. In
>> fact, every I/O device in a room full of them was typically routed through
>> just one interrupt. It was called "The I/O interrupt". ;-)
>
>I guess I came from a minicomputer background. The Data General
>computers that we used when I worked for the National Weather Service
>had the interrupt level determined by the position of the card slot.
>The ones closest to the CPU card were the highest level, and you
>needed to wire wrap jumpers from slot to slot to continue the
>interrupt chain (or skip a slot if a card that didn't require an
>interrupt needed to be in a certain position).

That was originally a DEC idea, I think. Except that DEC supplied buss
grant cards so you didn't need to jumper the backplane.

DG used it, as did General Automation, Datapoint, and a bunch of those
guys. But, interrupt performance on minis wasn't as important as it
was on the big IBM iron.

The big IBM machines were basically I/O handlers, with a little CPU
that controlled the I/O hardware. Some of the channel hardware would
allow you to do things like backing a disk directly to tape without
the CPU even being involved in the process. This results in some very
peculiar interrupt design.
--scott

--
"C'est un Nagra. C'est suisse, et tres, tres precis."