• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: CallHostTransportState doesn't return to stopped state
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: CallHostTransportState doesn't return to stopped state


  • Subject: Re: CallHostTransportState doesn't return to stopped state
  • From: Eric Eizenman <email@hidden>
  • Date: Fri, 24 Aug 2007 11:49:16 -0700

What you've described is actually a common problem in the AU world. Once an AU is initialized, it's expected to be armed for process until it's uninitialized. Some hosts that don't call your render function constantly (like Logic) would make your meters look frozen because they would stick to the last value calculated. The reason is that hosts call AudioUnitReset only when they about to start streaming audio not when they stop.
I guess calling AudioUnitReset when stopping the audio stream is problematic with certain AUs, like those with tail, but for most AUs it's a real problem.
We had filed a bug, asking for something like VSTs Suspen/Resume, but it was dismissed as invalid.


------------------------------------------------------------------
Eric Eizenman
BIAS Inc., Audio Software Development
------------------------------------------------------------------


On Aug 24, 2007, at 6:01 AM, Paul Tapper wrote:

Thanks for your replies.

To clarify, my problem is that I have a level meter on my plug's UI, which I want to return to zero when the transport is stopped (as you'd expect).

This works fine for me in Ableton Live 6 (as they pump some small zero blocks through the plug's ProcessBufferLists when the transport is stopped).

However, in Logic Express 7, I'm finding that it doesn't pump ProcessBufferLists when stopped, so I was going to pump it myself, but I don't seem to have a good way of checking whether the transport is stopped as CallHostTransportState isn't working for me.

I could, of course, put a check for ProcessBufferLists not having been called for a while (0.5 secs or something) and start pumping then, but that would be bad if there was just a delay in the audio processing during a play (maybe in a big project) as it would introduce audio glitches.

Any suggestions very welcome.

Paul

Date: Wed, 22 Aug 2007 16:36:14 -0700
From: Eric Eizenman <email@hidden>
Subject: Re: CallHostTransportState doesn't return to stopped state
To: coreaudio-api list <email@hidden>
Message-ID: <email@hidden>
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed

Paul, It sounds like you're looking for the wrong indication. Knowing
whether the transport is not playing wouldn't suggest that your
render call is not being invoked. Is that what you were saying Bill ?

------------------------------------------------------------------
Eric Eizenman
BIAS Inc., Audio Software Development
------------------------------------------------------------------


On Aug 22, 2007, at 3:04 PM, William Stewart wrote:

is playing should be set to false when the transport is not moving. that is how you can distinguish between an AU that is being called regardless of whether the host is playing its time line or not..

Sounds like a bug in Logic?


Bill

On 21/08/2007, at 3:33 PM, Paul Tapper wrote:

Hi,

I'm trying to check whether my AudioUnit is having audio played through it or not by calling CallHostTransportState and checking the isPlaying that it returns.

When I test in Logic Express 7, the plug starts off by reporting that the audio is stopped (isPlaying is false), and then when I play audio it reports isPlaying as true, which is fine. The problem comes when I press stop, and the audio stops playing, the plug still gets isPlaying true - I would have thought it should return to false. Am I just using it wrong?

I also find that currentSample just keeps returning 0.0 whether the audio is stopped or playing.

I'm obviously doing something wrong. Please can someone help. Or maybe this is the recommended way of testing for whether the audio is playing?

Thanks

Paul


_________________________________________________________________
Get Pimped! FREE emoticon packs from Windows Live - http:// www.pimpmylive.co.uk


_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
inc.com


This email sent to email@hidden

_______________________________________________ Do not post admin requests to the list. They will be ignored. Coreaudio-api mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden
References: 
 >Re: CallHostTransportState doesn't return to stopped state (From: "Paul Tapper" <email@hidden>)

  • Prev by Date: Re: multiple Cocoa views
  • Next by Date: Re: RawAudioFileComponent example crash
  • Previous by thread: Re: CallHostTransportState doesn't return to stopped state
  • Next by thread: Problem in AUElement::SaveState, conversion from Float32 -> UInt32 not working in non debug mode
  • Index(es):
    • Date
    • Thread