INTERACT FORUM

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1]   Go Down

Author Topic: ASIO support  (Read 14688 times)

couchjr

  • World Citizen
  • ***
  • Posts: 121
ASIO support
« on: September 10, 2015, 11:35:22 pm »

Moving the status thread from MC20 to MC21 . . . . Hope springs eternal.
Logged

couchjr

  • World Citizen
  • ***
  • Posts: 121
Re: ASIO support
« Reply #1 on: October 21, 2015, 10:36:32 pm »

Bump. I wonder whether reduced processing required when using ASIO might have some beneficial impact on the dropout issue.
Logged

couchjr

  • World Citizen
  • ***
  • Posts: 121
Re: ASIO support
« Reply #2 on: November 17, 2015, 05:51:25 pm »

Another month, another bump. Think of it as a slow beacon.
Logged

blgentry

  • Regular Member
  • Citizen of the Universe
  • *****
  • Posts: 8014
Re: ASIO support
« Reply #3 on: November 17, 2015, 05:57:17 pm »

Out of curiosity, what do you hope to gain by ASIO support in MC for Mac?

Brian.
Logged

couchjr

  • World Citizen
  • ***
  • Posts: 121
Re: ASIO support
« Reply #4 on: November 20, 2015, 04:01:00 pm »

Nicely put on sound.stackexchange:

"Normally the operating system handles the audio path, which results in passing through many layers before actually hitting the soundcard. Each layer adds latency.

ASIO allows a software application to talk directly to the soundcard, avoiding all intermediate layers. This is how you achieve reduced latency . . . .

Using an ASIO driver essentially allows the software to utilize the hardware to the maximum of its potential."

I'm using a Mac Mini so things now go through Core Audio. George at exaSound asserts that using ASIO, his DAC can handle DSD files natively (I presume that means not using DoP) which should reduce the processing required by both the player software and the server and DAC hardware. Given the other improvements I've heard from reducing computer-related activity in the chain, I expect some, perhaps subtle, improvements in spatial and timbral realism. I also speculate that reducing the processing load might put less pressure on buffers and have an impact on the JRiver dropout issue, which I continue to experience intermittently.

I'm no expert, but I respect George Klissarov's integrity, acumen, and commitment to DSD, so his advocacy of ASIO, along with what I've read, lead me to think that the simpler path would yield benefits.
Logged

blgentry

  • Regular Member
  • Citizen of the Universe
  • *****
  • Posts: 8014
Re: ASIO support
« Reply #5 on: November 20, 2015, 04:23:26 pm »

ASIO allows a software application to talk directly to the soundcard, avoiding all intermediate layers. This is how you achieve reduced latency . . . .

Latency is really important in music production applications.  Like when you're using a computer to record sound that needs to be synced with other sounds that are already recorded.  Or when the computer is the "instrument"; you want the sound to happen as soon as you press the key to make it happen.  But for simple playback, latency is a non-issue.  Latency is a time delay between when you tell the computer to play and when it starts playing.  If this latency is less than about 150 mS or so, you really won't even notice the delay.  As I understand it the "low latency" part of ASIO is measured in single digit milliseconds.  Which you're definitely not going to notice in a playback application.

Quote
I'm using a Mac Mini so things now go through Core Audio. George at exaSound asserts that using ASIO, his DAC can handle DSD files natively (I presume that means not using DoP) which should reduce the processing required by both the player software and the server and DAC hardware.

Why would DoP be a factor in DSD playback quality?  DoP is simply packing the DSD stream into PCM frames for transport.  There's no translation going on.  No calculations.  No changing of audio data at all.  The packing and unpacking shouldn't really have any impact.  The only thing I can think of is it might be another source of jitter.  But I'm not sure if DSD suffers from jitter, sonically, like "regular" digital audio does.  Even if it does, I'm totally guessing as to whether DoP packing and unpacking might influence jitter or not.  I'm just thinking out loud.

Brian.
Logged

glynor

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 19608
Re: ASIO support
« Reply #6 on: November 20, 2015, 08:15:23 pm »

As I understand it the "low latency" part of ASIO is measured in single digit milliseconds.

CoreAudio is also designed to be realtime, and (if used by an application designed to do this) can have ~10ms latencies as well.

In addition to what Brian mentioned (music production) gaming is another application where latency matters.  For music playback, though, it only impacts the responsiveness of the controls (how long from when you hit stop, it actually stops).
Logged
"Some cultures are defined by their relationship to cheese."

Visit me on the Interweb Thingie: http://glynor.com/

couchjr

  • World Citizen
  • ***
  • Posts: 121
Re: ASIO support
« Reply #7 on: November 22, 2015, 01:33:04 pm »

Thanks for your thoughts, guys. I should have been more careful with my hurried quotes. I elided a section of that post dealing with ASIO as an interface to "sound cards" (bigger aspect of its influence on SQ) because that includes many devices irrelevant to OS X and I didn't want to get into a sideband about cards. The point is that ASIO bypasses Core Audio and interfaces directly with the hardware (so, for instance, no OS-based volume control).

As I said, I'm no expert in all the factors influencing the extraction of the best facsimile of the recorded event via a digital -> analog recording and playback chain. I do know enough to realize that DoP does not manipulate the values in the sampled data stream. But packing and unpacking does create work (processing overhead) for the sending and receiving device. Now by what mechanisms might that affect ultimate SQ? And are there other things about async USB from Core Audio's vs. ASIO that might affect SQ? I suspect timing effects ("jitter") and various flavors of noise.

I can't see why jitter wouldn't affect DSD. Changing the threshold slope between values or the regularity of sample intervals should affect the playback fidelity of any sampled signal. DSD has a much higher sampling rate than even hi-res PCM so I'd expect it to be sensitive to smaller errors in timing. Each error might have a smaller effect on SQ and the overall profile of timing effects is no doubt different than for PCM, but it's not zero.

So much for principles. Even as a trained and experienced listener, it's very difficult for me to attribute improvements in SQ to improvement in signal timing vs. lowered noise from other sources (better rejection of server-related noise into analog circuitry in the DAC, better power filtering in the DAC, better signal handling in the DAC chipset implementation, better filter algorithms, better analog output stage design, etc.). What I can say is that every generation of digital playback, given extremely high-quality analog output stages, has yielded improvements in SQ, particularly in what's sometimes called digital "smear." That includes successive DACS using the same Sabre DAC chipset. I'd expect that advances in timing management--including minimizing sources of induced timing errors in the DAC device caused by sources other than the "inherent" jitter in the incoming data stream itself--and possibly filter construction, to account for much of the perceived progress, given that analog audio circuit design is already a pretty mature area.

But back to ASIO. Some other players for Mac (e.g., Audirvana Plus) also bypass Core Audio. No doubt they have their own reasons. G. Klissarov's general statement:

Quote
The Core Audio sound system used on Mac OS X is much better compared to the Windows sound system, but it has the same limitations when it comes to DSD. Both Windows and Mac need a workaround like DSD over PCM (DoP) for DSD support.

In my opinion asynchronous USB Audio Class 2.0 implementations with Core Audio are inferior compared to ASIO.

Here is his more detailed explanation as reported in Steve Plaskin's AudioStream review of the e22 (9/4/2014):
Quote
Computer sound systems are made and optimized for two purposes:

• To be user friendly.

• To be compatible with everything and everybody, to support a wide range of audio applications and hardware, from Skype to portable players and games.

The need for convenience and versatility and the ever increasing demand for new feature cause great complexity. Sound quality is a secondary concern and it is often compromised.

Basically the sound system and the drivers have to deliver performance in several ways:

• The sound stream data have to be delivered from the player software to the DAC chip without errors or unwanted changes. This is called bit-perfect operation.

• The precision of playback timing is of huge importance. Each data sample must appear on the input of the DAC chip at the right time, no sooner and no later. Computer clocks can run at the wrong speed and also can be jittery. The best solution to the inconsistent computer timing is the use of asynchronous protocol for exchange of data between the computer and the DAC. Asynchronous means that the DAC can ask the computer for more data when it is needed, instead of being told by the computer the timing of the data beat. Asynchronous operation makes the DAC the master device. Since the cheapest DAC has a better master clock than the most expensive personal computer, it makes sense to put the DAC in charge of the playback timing.

• Cutting edge high resolution recordings require support for high DSD and PCM sampling rates. These high rates can test the limits of CPU and USB performance and require driver and sound system efficiency.

[snip "Issues with the Windows Sound System"]

Core Audio Limitations

The Core Audio sound system used on Mac OS X is much better compared to the Windows sound system, but it has the same limitations when it comes to DSD. Both Windows and Mac need a workaround like DSD over PCM (DoP) for DSD support.

• DoP creates a significant performance overhead. A DoP marker byte is required for every two bytes of data. This causes 33% overhead for 24bit drivers. For 32bit drivers like ours the overhead can be 50%.

• It is quite difficult to implement support for DSD256 using the DoP standard. The DoP implementation of DSD 256 requires support for PCM at 705.6kHz and 768kHz. Such sampling rates are a real challenge for both computer CPUs and USB audio interfaces.

Using the Core Audio system with DoP256 is challenging. The CPU performance requirements for processing 768 kHz sampling rate for DSD256, the 30% to 50% bandwidth overhead of the DoP format, and the need to support 8 channels for some of our DACs test the performance limits of the current software and hardware.

• Another issue with Core Audio is the inconsistent support for integer mode. All DAC chips use integer data and integer mode is a way to achieve bit-perfect streaming. Unfortunately integer mode is not available on OS X Lion and Mountain Lion. It was reintroduced on OS X Mavericks, but it didn't work with all drivers. There are two Core Audio driver architectures - Kernel Space and User Space. Most older drivers are Kernel Space and integer mode on Mavericks works only for User Space drivers.

• There is another architectural limitation of the Core Audio sound system. With Core Audio the Mac is always the master device, and the DAC is the slave device. The playback timing accuracy is influenced by the computer timing. In my opinion asynchronous USB Audio Class 2.0 implementations with Core Audio are inferior compared to ASIO.

ASIO Benefits

ASIO solves all these issues. ASIO is an audio steaming protocol used in recording studio environments.
• Unlike the computer sound systems ASIO is designed for one purpose - sound fidelity.

• ASIO is light-weight, bit-perfect, allows for automatic sampling rate switching.

• ASIO has native DSD support.

• With ASIO the DAC is the master, and the computer is the slave when it comes to controlling playback timing. The timing accuracy of playback can be as good as the DAC’s master clock.

•ASIO offers better implementation of asynchronous operation than Core Audio and the Windows sound system.
All these factors contribute to the superior sonic fidelity experienced with the exaSound ASIO drivers.

I have not yet seen a report of any player software sounding better using Core Audio than using ASIO. I've seen many suggesting the reverse, including Steve's impressions in the above review and those of ted_b at Computer Audiophile using HQPlayer.

So I'm happy for the experienced digital designers and developers on this forum to bow-hunt angels on pinheads with George. From the perspective of a reasonably technically literate consumer, however, it appears that reasonable rationales have been put forward on the theoretical side, and several supporting listener reports on the empirical side. Lacking the expertise to categorically prove or refute them, one could summarize my position as:

The designer of my DAC believes it sounds and operates better with ASIO than with Core Audio, as do many listeners. Therefore I have an incentive to see for myself.

NOTE: I still experience dropouts from time to time in MC. My recollection of the relevant threads suggests that the developers attributed this to some interaction with the OS. If ASIO both reduces data overhead AND bypasses aspects of the OS, it seems worth exploring whether ASIO might reduce or eliminate these dropouts.
Logged

blgentry

  • Regular Member
  • Citizen of the Universe
  • *****
  • Posts: 8014
Re: ASIO support
« Reply #8 on: November 22, 2015, 01:50:10 pm »

I won't try to argue or analyze what you've outlined about ASIO.  Maybe there's something to it.  Maybe not.  I don't have data either way.

On a different subject:

Quote
NOTE: I still experience dropouts from time to time in MC.

Have you increased the buffering to at least 250 mS?

Tools > Options > Audio > Device Settings > Buffering > Software > (select value)

I've found that I get extremely infrequent dropouts when set to 500 mS.  ...and this is on a 4 year old macbook pro that is also used for extensive web browsing and other duties.  So it's doing a lot more than just playing music.

It's free and easy to change the buffering.  I suggest 500, like I'm using, but you might find that 250 completely cures your issue.

Brian.
Logged

couchjr

  • World Citizen
  • ***
  • Posts: 121
Re: ASIO support
« Reply #9 on: November 22, 2015, 07:59:12 pm »

Hi, Brian,

Yes, I followed that thread and tried all the variants of buffering (and other settings) suggested and, indeed, the higher buffering values reduced the dropouts to something on the order of one or two an evening. At first I thought it had solved the problem completely, but apparently not. Currently my settings are exclusive access, integer mode, 500 mS software buffer, and maximum hardware buffer. Late 2014 Mac mini, 500 Gb SSD (no disc) and 16BG RAM, running Yosemite 10.10.5. (also linear power supply/fan controller and an UpTone Audio Regen).

However, on that machine (playback) I'm running MC 20.0.132 (I have the v21 license and will upgrade at some point; I'm running 21 on my tagging machine [MBP]). So it's possible that using the same settings on a later MC build will completely solve the problem. I'll report back if it does.

I can't remember--does MC save/transfer all user-changeable settings when a new version is installed? My recollection is that it doesn't. If that's correct, it will take a fair amount of time and effort to recreate all my settings, including custom tag fields and their options (write tags to media file by default, etc.) so I've put it off. Likewise I've put off the El Capitan upgrade because I depend on JRemote and apparently it doesn't play nice with OS 10.11.

I'm so taken with the Regen + e22 combination's sound in my system that it's hard not to just use all my limited free time for cataloging and listening . . . .
Logged

couchjr

  • World Citizen
  • ***
  • Posts: 121
Re: ASIO support
« Reply #10 on: November 22, 2015, 10:41:17 pm »

Sorry, I can't keep up. It was iOS 9 that fritzed JRemote and I think the recent update fixed that. It's running MC 21 on OS 10.9.5 that is a problem (and I was wrong, I'm still running MC 20.0.126 on my MBP because I haven't upgraded from Mavericks and I'll now have to go straight to El Capitan--thanks Apple). So I can't install 21 there until I upgrade the OS. I might try upgrading the music server Mini to MC 21 soon, since I have little else on that machine apart from MC, a browser, Splashtop, and various drivers (Paragon NTFS for the NAS, etc.).
Logged

blgentry

  • Regular Member
  • Citizen of the Universe
  • *****
  • Posts: 8014
Re: ASIO support
« Reply #11 on: November 23, 2015, 07:47:41 am »

I can't remember--does MC save/transfer all user-changeable settings when a new version is installed?

By default, nothing gets transferred.  You start with a fresh new library.  But not to worry:  All you have to do is make a library backup on MC20, then restore that backup into MC21.  That will transfer just about everything:   All library entries, custom fields, playlists, views, and even settings.  It might miss a few settings but it will get just about all of them.

Brian.
Logged

blgentry

  • Regular Member
  • Citizen of the Universe
  • *****
  • Posts: 8014
Re: ASIO support
« Reply #12 on: November 23, 2015, 07:49:16 am »

Sorry, I can't keep up. It was iOS 9 that fritzed JRemote and I think the recent update fixed that. It's running MC 21 on OS 10.9.5 that is a problem (and I was wrong, I'm still running MC 20.0.126 on my MBP because I haven't upgraded from Mavericks and I'll now have to go straight to El Capitan--thanks Apple). So I can't install 21 there until I upgrade the OS.

MC21 runs just fine on 10.9.5.  It's what I'm running on my Macbook Pro.  So upgrade if you'd like.  It works.

Brian.
Logged

couchjr

  • World Citizen
  • ***
  • Posts: 121
Re: ASIO support
« Reply #13 on: November 24, 2015, 12:02:13 pm »

Thanks for both of these points, Brian. So this thread is an anomaly and I'm safe to upgrade to 10.9.5?

There are a lot of moving parts with devices and OS and SW upgrades. I've been holding off on upgrading the music server to El Capitan because it apparently has changed the asynch USB implementation and many DACS are not being seen (see this thread here on Interact and this one on the Apple support forum). I haven't had time to contact George at exaSound to see whether this affects the e22 DAC. It's hard to keep all the variables straight with limited attention to devote.
Logged

blgentry

  • Regular Member
  • Citizen of the Universe
  • *****
  • Posts: 8014
Re: ASIO support
« Reply #14 on: November 24, 2015, 04:00:12 pm »

Thanks for both of these points, Brian. So this thread is an anomaly and I'm safe to upgrade to 10.9.5?

That's the only report I'm aware of with MC21 not being stable on OSX 10.9.5.  If you already have 10.9.5 installed, you can definitely install MC21 and try it out.  MC20 will stay in place and keep working.  So you'll have a backup plan (MC20) in case anything bad happens.

Brian.
Logged

adphil

  • Junior Woodchuck
  • **
  • Posts: 70
Re: ASIO support
« Reply #15 on: November 26, 2015, 01:28:22 pm »

. . . There is another architectural limitation of the Core Audio sound system. With Core Audio the Mac is always the master device, and the DAC is the slave device. The playback timing accuracy is influenced by the computer timing. In my opinion asynchronous USB Audio Class 2.0 implementations with Core Audio are inferior compared to ASIO. . . .

This part seems wrong to me. I'm using an external DAC via USB Class 2 and it clearly states in my Audio-MIDI-setup that the internal clock of the DAC is being used as the source clock (see screenshot).
Logged

mojave

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 3732
  • Requires "iTunes or better" so I installed JRiver
Re: ASIO support
« Reply #16 on: March 01, 2016, 10:45:46 am »

I'm working on a room correction system for Dolby Atmos systems that can correct up to 16 channels. It would use a MOTU 16a connected via Thunderbolt to a Mac Mini. The latency in/out using Thunderbolt is only 1.4 ms. I can use a DAW as the VST host, but would prefer to use JRiver so I can utilize its DSP for crossovers. In order to use JRiver, I would need ASIO drivers for Mac and the JRiver ASIO Line In would also have to be functional.

Here is an example signal chain:
Samsung UHD Blu-ray Player > Yamaha CX-A5100 (Atmos decoding) > 13 balanced analog outputs > MOTU 16a > Mac Mini/JRiver for room correction > MOTU 16a > balanced output to amplifiers

The Mac Mini could also playback all content located on a NAS thus bypassing the Yamaha altogether.
Logged

blgentry

  • Regular Member
  • Citizen of the Universe
  • *****
  • Posts: 8014
Re: ASIO support
« Reply #17 on: March 01, 2016, 11:00:33 am »

^ That's really exciting.  Is USB2 a non starter for this application?  I know the line input is absolutely necessary with this application.  Just curious about the interface and whether USB2 could handle 13 in and 13 out at the same time!  Wow.

What DAW would you use instead?  I hear great things about Reaper, but I've only played with it.

Brian.
Logged

mojave

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 3732
  • Requires "iTunes or better" so I installed JRiver
Re: ASIO support
« Reply #18 on: March 02, 2016, 09:06:58 am »

^ That's really exciting.  Is USB2 a non starter for this application?  I know the line input is absolutely necessary with this application.  Just curious about the interface and whether USB2 could handle 13 in and 13 out at the same time!  Wow.

What DAW would you use instead?  I hear great things about Reaper, but I've only played with it.

Brian.
USB2 isn't necessarily a non-starter. It can depend on the display one is using. The JVC projectors have about 140 ms of video latency. This makes it easier to use a JVC with a USB2 audio device. With receiver and pre/pros, one can only delay the audio, but you can't delay the video like you can with JRiver. If the video is naturally delayed by the display, then you can work with higher latency on the audio.

Here are the maximum channels handled by the MOTU AVB audio devices:

Code: [Select]
Connection Sample rate   Channels (in and out)
Thunderbolt 44.1 to 96 kHz     128
Thunderbolt 176.4 or 192 kHz      64
USB2         44.1 or 48 kHz      64
USB2            88.2 or 96 kHz      32
USB2         176.4 or 192 kHz      24

MOTU audio devices come with the free AudioDesk DAW which supports VST plugins. I thought I'd just try that.
Logged

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4226
Re: ASIO support
« Reply #19 on: March 02, 2016, 09:08:04 am »

@mojave is the reason to use jriver in this setup so you can also use it as a source for non atmos/dtsx content?
Logged

blgentry

  • Regular Member
  • Citizen of the Universe
  • *****
  • Posts: 8014
Re: ASIO support
« Reply #20 on: March 02, 2016, 09:13:04 am »

mojave:  Thanks for the extra details.  I LOVE this kind of stuff!  :)

Brian.
Logged

mojave

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 3732
  • Requires "iTunes or better" so I installed JRiver
Re: ASIO support
« Reply #21 on: March 02, 2016, 10:14:18 am »

Just to clarify, the maximum channels listed above are total in/out channels. For 96 kHz via USB2 it shows 32 channels which is really 16 in and 16 out (or an combination of in/out that totals 32).

@mojave is the reason to use jriver in this setup so you can also use it as a source for non atmos/dtsx content?
Yes.
Personally I would still rather use a Windows based HTPC for madVR video output including 3D LUT's.
Logged

couchjr

  • World Citizen
  • ***
  • Posts: 121
Re: ASIO support
« Reply #22 on: May 17, 2016, 10:04:44 pm »

Bump. Any news on ASIO support?
Logged

glynor

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 19608
Re: ASIO support
« Reply #23 on: May 17, 2016, 10:22:15 pm »

Realizing that I'm months and months late on this (but you did bump an old thread). I can't let this stand...

But packing and unpacking does create work (processing overhead) for the sending and receiving device. Now by what mechanisms might that affect ultimate SQ?

It cannot. If it can, your computer is broken.

Processing overhead, especially this kind of overhead, can impact responsiveness, reliability, and other factors, but cannot impact quality. They either decode correctly or they do not. Furthermore, the overhead you're talking about there is less than insignificant. This type of unpacking is something that computers from the 1990s could do without serious effort, and the CPUs (and memory buffer sizes) in the even the cheapest computers now are orders-of-magnitude more powerful. Far less complex than the decoding required if you access this forum with HTTPS instead of HTTP. So, if this kind of overhead has any kind of impact on responsiveness, reliability, or any other factors with your hardware, and you aren't using a CPU from the 1990s, then something is broken.

Or, you're hearing what you want to hear.

Math is math, and this is (relatively) very simple math. The end.
Logged
"Some cultures are defined by their relationship to cheese."

Visit me on the Interweb Thingie: http://glynor.com/

couchjr

  • World Citizen
  • ***
  • Posts: 121
Re: ASIO support
« Reply #24 on: June 07, 2016, 09:00:10 am »

Hi Brian,

Haven't checked the forum in a while, and just saw your post. I was simply referring to George's statement:

Quote
• DoP creates a significant performance overhead. A DoP marker byte is required for every two bytes of data. This causes 33% overhead for 24bit drivers. For 32bit drivers like ours the overhead can be 50%.

If this has an effect on sound quality (note that I put this as a question), my assumption is that it would be indirect, and simply the result of tiny amounts of additional electrical noise created in the computer by the extra processing, which might have subtle effects on signal timing etc., perhaps affecting SQ in very high resolution files. The same principle that pushes some people to minimize activity (deleting background processes, etc.) on computers dedicated to serving music files. I don't know that this happens with DoP, but as I said before, if George thinks it makes enough difference to have written ASIO drivers for the Mac, I'd like the chance to listen for myself.

I can't be hearing things yet, since I've never heard an ASIO-based installation of MC on a Mac, and all my Windows-based  friends who use MC for hi-res audio already use ASIO. So I don't yet have any basis for comparison.  :)

I'm happy to take your word that there's no direct effect on SQ; as I said earlier in the thread, I'm no expert on any of this. Just trying to present the rationale given by the manufacturer to this forum. My understanding was that ASIO support for MC Mac was in development; I'm just hoping for news of progress.

Thanks for all your insights and assistance on the musical journey!
Logged

blgentry

  • Regular Member
  • Citizen of the Universe
  • *****
  • Posts: 8014
Re: ASIO support
« Reply #25 on: June 07, 2016, 10:07:37 am »

^ Just for clarity, I think you're responding to Glynor's post about DoP, not mine.

Brian.
Logged

couchjr

  • World Citizen
  • ***
  • Posts: 121
Re: ASIO support
« Reply #26 on: June 12, 2016, 11:36:01 pm »

Oops, yes. My apologies.
Logged
Pages: [1]   Go Up