Hints, Tips & News From The World Of Music Software
Last month we finished by solving a problem of notes being 'choked off' in our sequences. However, the sequence of events that we used to achieve this creates a new problem — now sequence A is started one clockstep early, so we need to compensate for this by adding time to this sequence thus:
Seq A Hats
Now the mute command is one clockstep before the data in sequence A, and therefore there's no glitch! If you're getting unexplained hiccups, they're usually caused by functions happening which are mutually antagonistic, like the example we've just looked at, so examine carefully the program flow. Sometimes problems can occur with program changes being too close to data they're supposed to affect, so it's worth checking these as well; you might even like to remove all the PG commands to a separate sequence and call this as the first item in a master control sequence. This has the added advantage of keeping all these events in one place, so that in the event that you need to change them the job is made much easier — you don't have to go through every sequence finding program changes.
The IBM PC-compatible computer is making a big impact in the world of musicians. But it brings its own problems, and unfortunately a great deal of misinformation with it.
There are many people now selling PC computers in the music market, a lot of them new to the products who are involved mainly because it's a 'hot' item. If their previous experience is of Ataris and maybe even Macs, this does not necessarily prepare anyone for the IBM-PC compatible.
It was an easy life on the Atari — the MIDI sockets are built into the machine. Even manufacturer's specific hardware was designed to connect with no real user involvement with the hardware guts. The Mac user has a similar situation. The strict guidelines set down by Apple control the way that hardware options, and more important their controlling software conflicts, are presented to the user. The PC-compatible is a little different, demanding another level of knowledge to get you started. Immediately you will be bombarded with new terms and concepts. It really is not just a matter of plug-and-play.
There are several areas that need covering, but there is too much for one sitting so its best to start with the number one stumbling block.
The PC is generously endowed with expansion possibilities. This is its appeal to the people building business systems. The main PC-circuit board normally has about five expansion slots, and among the cards you can fit is a MIDI interface. The cards in these slots need to have a close connection with the main processor inside the PC, and essentially become part of the computer when they are installed. If they are not set up correctly they can adversely affect the operation of the computer itself.
A expansion card has two aspects to its integration into a system. These are its Base Address and Interrupt Request Number. These are normally shortened to BaseAddr and IRQ#. The BaseAddr is a place in the computer memory where the main processor can go and look for the card to check on its current condition. The IRQ is the way the card can get the computer's attention. There are several IRQ channels on the computer, and a range of BaseAddr to select from.
Most interface cards will have either small DIL switches or moveable jumpers to enable you to configure the BaseAddr and IRQ. Consider the situation like this — when the computer wants to send data to the card, it simply looks at the BaseAddr position in memory where the card resides, and sends data by pushing new numbers into that address. It is a little more complex the other way around. Imagine some data has just arrived at the input of the interface. Firstly the card places its new data at the place marked by BaseAddr, then calls the computer's attention with the IRQ, forcing it to come and do something with what has arrived.
Maybe now it will be clearer why every card must have a unique BaseAddr and IRQ#. Take the situation where two cards have the same BaseAddr — when the computer tries to send data, it is placing it at a single place in memory where two Cards are listening. Perhaps two identical cards will both transmit data, but it is far more likely that there will be problems.
The situation the other way around is even more problematic. If there were two cards with the same IRQ setting, both could signal to the computer that they need attention, but the computer would have no idea that it is not just one device. When it goes to collect the data from the BaseAddr it would not be able to distinguish between the cards, both could have been setting up data and overwriting each other's, so the data received is going to be garbage.
I hope a little of the background will help in understanding what can go wrong, and why. The rule to follow on the PC is that every BaseAddr and IRQ have a unique value. No two cards should share either of their numbers with any other devices. When a manufacturer of an interface card sends it out with default settings, and most do, it is not the manufacturer's fault if it conflicts with the configuration in your computer. That's why it is user-configurable, so it can be changed to avoid conflicts.
Even if you can see no other card in the expansion slots and the card refuses to be found by the computer, it is still worth trying out another BaseAddr and IRQ pairing. Some PC's are tricky in that they can use certain BaseAddr and IRQ channels for their internal purposes, and you may have to read the manual reading to find out if this is so. I don't mean to scare people about the PC, but if you are a total novice at the PC game, it would be a good idea to make contact with a dealer who can really support you rather than just flog you the boxes. The knowledge is out there because there are so many PC computers, but be prepared to put some work in yourself. It is not really the job of the supplier of a software package to teach you about MS-DOS!
Previous article in this issue:
mu:zines is the result of thousands of hours of effort, and will require many thousands more going forward to reach our goals of getting all this content online.
If you value this resource, you can support this project - it really helps!