back to list

Re: Using a Midi Keyboard to Play Computer

🔗Robert Walker <robertwalker@ntlworld.com>

5/16/2005 6:26:27 AM

Hi Jon,

> My God, man, can't you write a short and concise post?????? How in the
> world can one respond to all that???????

> :)

Sorry, I know. The thing is that I type very fast so e-mails
just come out very long first time, and if I want them short I
often have to edit them to shorten them - but didn't
with that one. It only took a few minutes to type.
(I usually do about 60 wpm).

> Robert, if I'm not mistaken, Scala doesn't have any ASIO setting, but
>that doesn't matter: Scala is only using my internal soundcard, which
>I *never* use for real music making. Are the DirectSound buffers going
>to affect sound settings in other programs?

Oh well I expect it is your internal soundcard that's the source
of the latency- not the card as such but whatever the midi synth
is that it has on it. It's probalby like my laptop one that
suddenly switches to a huge latency of 0.5 secs or so
- maybe yours is like that all the time. I'm sure it
isn't happening in Scala itself, can't be, the speed with
which Scala processes the data won't be affected by the
soundcard the notes get relayed to.

The thing to do is to install something like Midi Yoke
or if you are using XP, better to get the Maple Sound
software loopback because Midi Yoke is incompatible
with Giga on XP (slows it down to a crawl).

Both of those have a very fast transmission
rate indeed; you won't notice that it is there.

Then route it to something better, such as Virtual
Sampler or whatever, preferably with Asio. Or play on a hardware synth.

The midi synth on your soundcard probably can't be
configured at all if it is a basic one but
a sound sampler like Virtual Sampler will let you
choose any of the direct sound or Asio settings
and then set the buffer size, number of buffers,
and other things that affect latency. And it is
definitely worth having a look at Asio4all
if your card doesn't have asio drivers already.

Don't forget, one of the people you are speaking to has been standing
inside an orchestra for 30 years. And I hasten to add that -
especially for those of us in the back - we have learned and are
required to play measurably ahead of what we see (and, to a certain
extent, *hear*) so that our sounds meet at the podium at the same time
as the concertmaster's (or "leader", in your land...). We personally
have to account for the distance.

Yes I know that. The point in my geometrical argument was
that if the orchestra syncrhonises their timings as you
describe in order to achieve perfect timing from
the point of view of the conductor, if you
then have someone sitting an equal distance
behind the conductor in the audience, then
just because he or she is listening to the
orchestra from a different viewpoint, then your
notes will no longer be exactly in time. They
are only exactly in time as heard by the
conductor. Someone in the audience directly
behind the conductor will hear maybe 2 or
3 ms of differnces in the timings in the
case where you are playing all dead on time.
Someone to the side of the orchestra will hear
your bang on time chord from the conductor's
point of view as spread out over 15 ms
for them. That's supposing your orchestra is
about 5 m across from one side to another.
I've not measured an orchestra but I imagine
that is quite small and many are probably larger
than that.

It's not a lack on the part of any of the players
or the conductor. The argument was assuming that they
are all playing perfectly, and you nevertheless
will get this effect just because of geometry and
the finite speed fo sound.

> Wrong - 3.0 Ghz, 1 gig ram, completely optimised for music-only
> applications (i.e. very, very little overhead in terms of services
> running, etc.). I can assure you that the latency is far greater than
> in any of my hosts (Sonar, Chainer, Audiomulch).

Well in that case I'm sure if you try something like
the setup I just tried here - your keyboard
to Scala then Virtual Sampler using Asio then
you will get almost no latency.

It must be due to the midi synth on the soundcard
and the reason you don't get it with those other
programs is because even if they use the soundcard
they won't be using its midi synth.

Also the synths are a bit temperamental. For instance
Scala sends a lot of pitch bends surely. I haven't
figured out what it is that makes my soundcard
(or chip or whatever it is on my laptop) synth switch into
its high latency 0.5 second delay mode, but
maybe it is to do with pitch bends or
the instructions to set the pitch bend range
or something. The thing is that my one only
does it sporadically and not consistently
so it is hard to figure out what it is about.

> I'm sorry, but you are ruminating in extreme complexity! A simple
> keyboard input, via USB, right into the computer should be able to
> create a sound from the card almost instantaneously. I believe there
> are either settings that *might* help, or the relay function in Scala
> (i.e. channel-splitting, allocating, and sending pitch bends) isn't
> efficient.

It's not the internals in Scala because I've measured that.
My laptop is 2.4 Ghz so a bit slower than yours if anything.
So there is no reason to suppose yours is spending more time
there. In fact I suspect some of the little overhead there
is isn't Scala at all,but just the process of getting the
midi data from Windows and returnign it to Windows for
sending on around the chain. But we are talking about
a fifth of a millisecond of so here all combined.

Well, I don't get it then. I can play the soundcard through any other
host, in realtime, and get virtually no latency. It is only on Scala.
Anyhow, I don't think anyone would attempt to really do a lot of music
making this way - it was simply a suggestion that if one has a
keyboard and Scala (and soundcard, which seems common on most all
systems), they already have the tools to be able to hear these tunings.

I think the thing is that it isn't the soundcard as such.
It will be the midi synth on the soundcard. That probably
isn't a particularly good implementation of a midi synth.
If you think about it - on a consumer level soundcard
the midi synth is normally going to be used only for
playing midi files. Typical users won't be using it for music
making normally. So the engineers and programmers probably
didn't spend much time on making sure that it was low
latency.

Even on good soundcards sometimes the midi synth may
be very high latency too - I've read some posts, e.g.
somehwere about a Yamaha reasonable soundcard that
had a 0.5 second latency midi synth though I'm not
sure how up to date that is.

Anyway if you want to give it a fair go,
I'd try Scala with Virtual Sampler, Asio4all
(if you don't have asio drivers already that is)
and MapleSound to connect Scala to Virtual Sampler,
then maybe you'll get a suprise :-).

> Hope all is well with you these days, you've been somewhat quiet of late!!

Oh I've been working _very_ hard on FTS 3.0.
That's why. Just taking a day or two off
right now - well letting up a little anyway.
The back to work again quite soon. I very much
want to get this release done. So I'll probably
lapse into silence again for a week or two
soon after this. But I'm still around don't
you worry and still interested and involved,
just pre-occupied.

I see this e-mail is also fairly long and again
it only took a few seconds to write this
time. It takes much more time if I have
to go back and cut it so I hope this is
okay as it is.

Robert

🔗Jon Szanto <jszanto@cox.net>

5/16/2005 9:41:39 AM

--- In tuning@yahoogroups.com, "Robert Walker" <robertwalker@n...> wrote:
> I see this e-mail is also fairly long and again
> it only took a few seconds to write this
> time. It takes much more time if I have
> to go back and cut it so I hope this is
> okay as it is.

<grin> What *will* we do with you??? :) You need to slow down, and
think about what you'll write, rather than type as you think - your
inventor's brain contains so much info that if you just transcribe on
the fly you'll always end up with an essay!

Ah, but it is done in such good interest that it's no problem.

Look, Rbt, the entire point of my post was in response to someone who
wanted a very simple method to hear a tuning. The midi kbd / Scala
relay is the most simple way to go, so that is what I suggested (even
with the slight delay involved). I think you may be right that it
isn't the soundcard necessarily but the software that is making the
sound; in fact, there isn't a soundcard for that stuff, it is built
into the motherboard (I use an Aardvark LX6 Pro for the actual audio
stuff). But I *did* want to avoid other instruments or tools, such as
loopbacks and whatnot, because trying to get someone up and running,
simply with email, can really fail a lot. Some of these setups can be
so touchy, depending on how someone has their box configured - I've
got one guy that can't figure out how to even get the Scala relay
happening!

I was going for the simplest, most direct solution. There are other
ways, and they certainly have many benefits. I have 4 different
software instruments that can be completely tuned to any tuning I
wish, so that is where I do my real work.

Cheers,
Jon

P.S. Hope my brevity isn't a problem... :)