Jump to content

What is the "effects buffer problem"?


martin1981

Recommended Posts

I recently switched from a Pro Tools HD system to Logic on a Macbook Pro. I have to say this is the best Logic forum I've found, and browsing through the posts have pretty much answered any questions I've had about Logic so far.

 

However I was just reading through the following thread, which was comparing the sound of Logic to other DAWs:

 

http://www.logicprohelp.com/viewtopic.php?t=38427

 

There are a few mentions of the "effects buffer problem", can anybody explain exactly what this is, and if it's something I need to watch out for? I'm just about to embark on my first full band mix in Logic, and will be using some of the built in Logic plugins but mainly various 3rd party plugins, including Waves and DUY.

 

Sorry if this has been covered, but I couldn't find any reference to this "buffer problem" either on this forum or with Google search. If it has been discussed already could somebody please point me to the topic? Thanks!

Link to comment
Share on other sites

The issue discussed in that thread is this:

http://support.apple.com/kb/TS2112

 

Although it says Logic's plug-ins don't exhibit this, there have been a few occasions when I've had Space Designer do this. Maybe because it hiccups sometimes on the AudioUnitReset call, or whatever. Anyway, it's barely an issue, more just a nagging inconvenience sometimes if the plug-in isn't properly written.

 

I can attest that several years ago UAD plugs had an issue with this, but they fixed it in some update along the way.

Link to comment
Share on other sites

Great, thanks for the reference! I haven't noticed anything while using Waves plugins so far (Diamond Bundle), and I guess they are the kind of plugin manufacturer who would weed this kind of thing out...

 

However I haven't installed my DUY plugins on the Logic rig yet, it'll be interesting to see if these are affected, given they are less mainstream. Will post if I have any findings. Thanks!

Link to comment
Share on other sites

Does Logic 7 have the same ability to "send a standard reset message that tells all plug-ins to clear their audio buffers"?

 

I've been getting this a lot lately with the Aether reverb plug. And running the song out at the end for 3 seconds is not fixing it. I suppose I could put a blank region well before the song starts and flush it out that way. But a PITA non-the-less.

Link to comment
Share on other sites

I wouldn't call this "barely an issue" In fact, when it comes to mixing in Logic I would call this a major issue and one that Apple apparently is too lazy to address. The fact that no other DAW that uses AUs exhibits this problem also blows the "plugin isn't properly written" argument completely out of the water. It's unfortunately Logic that isn't properly written in this department.
Link to comment
Share on other sites

Does Logic 7 have the same ability to "send a standard reset message that tells all plug-ins to clear their audio buffers"?

 

I've been getting this a lot lately with the Aether reverb plug. And running the song out at the end for 3 seconds is not fixing it. I suppose I could put a blank region well before the song starts and flush it out that way. But a PITA non-the-less.

 

I don't remember any versions of L7 which handled this improperly (coming from a developer). I know it works as advertised in several releases. As far as 'not fixing it' there is a whole collection of options passed to a plugin during render (the plug needs to know and report silence and account for its tail, and so on) - it sounds like this plugin needs to updated from multiple aspects. Just email the manu - a lot of people think bugs are always obvious to developers, when everyone thinks that way and it is not noticed by QA or devs... this stuff happens. Its really not so unusual, just send them a polite note or reminder.

 

J

Link to comment
Share on other sites

I wouldn't call this "barely an issue" In fact, when it comes to mixing in Logic I would call this a major issue and one that Apple apparently is too lazy to address. The fact that no other DAW that uses AUs exhibits this problem also blows the "plugin isn't properly written" argument completely out of the water. It's unfortunately Logic that isn't properly written in this department.

 

:roll:

 

ok... I'm not so sure of the source of the problem as you indicate, feel free to follow up with proofs, examples, etc.

Link to comment
Share on other sites

I wouldn't call this "barely an issue" In fact, when it comes to mixing in Logic I would call this a major issue and one that Apple apparently is too lazy to address. The fact that no other DAW that uses AUs exhibits this problem also blows the "plugin isn't properly written" argument completely out of the water. It's unfortunately Logic that isn't properly written in this department.

 

:roll:

 

ok... I'm not so sure of the source of the problem as you indicate, feel free to follow up with proofs, examples, etc.

 

You really can't be serious right? Do a google search, this one has been beaten to death. "Polite note or reminder" another good one. Give me a break.... :shock: :roll:

Link to comment
Share on other sites

I wouldn't call this "barely an issue" In fact, when it comes to mixing in Logic I would call this a major issue and one that Apple apparently is too lazy to address. The fact that no other DAW that uses AUs exhibits this problem also blows the "plugin isn't properly written" argument completely out of the water. It's unfortunately Logic that isn't properly written in this department.

 

:roll:

 

ok... I'm not so sure of the source of the problem as you indicate, feel free to follow up with proofs, examples, etc.

 

You really can't be serious right?

 

I was serious, actually. I know the symptoms. I've written a few AUs. The probability that you know Logic's interaction with an AU better than I do is unlikely. Regarding all AU hosts; Logic 'ain't so bad', and I am skeptic of the validity of your claim because it contradicts my experiences.

 

Do a google search, this one has been beaten to death.

 

Google: No results found for "effects buffer problem".

 

"Polite note or reminder" another good one.

 

Google: No results found for "Polite note or reminder".

 

Give me a break.... :shock: :roll:

 

np - Cheers!

Link to comment
Share on other sites

Wow! Just seen the previous half-day's worth of posts and I had no idea this would be such a heated discussion!! :?

 

As I mentioned in the original post, I did a Google search for terms such as "logic pro effects buffer problem" and basically nothing came up...

 

Anyway I've bounced a few tracks already on my new system, one with Space Designer and another with Waves Renaissance Verb and so far I haven't encountered this problem. However I'm definitely going to be looking out for it from now on, based on what's been said in this post.

Link to comment
Share on other sites

I am truly amazed by the people who deny this problem.

 

It's not denial, just reality. Several AU developers have caught this problem after the fact and fixed their plug-ins. Here's a typical example from expertsleepers site:

 

Augustus Loop

v1.6.5 now responds properly to AudioUnitReset(), so in e.g. Logic the delay buffer will be cleared when song playback is started etc.

 

The reason this is so important in Logic specifically, is that Logic handles effects far more efficiently than other DAWs. Plug-ins are not constantly on. They are actively processing only when needed. For example, if you've ever used Pro Tools you'd notice that as you instantiate more plug-ins on more tracks, the cpu usage grows proportionately. That cpu usage stays the same regardless of whether only one track is actively playing or 56 tracks are actively playing.

 

Logic doesn't work like that. It shuts down processing of AU's that aren't actually doing anything. This allows you to have a much higher plug-in count in most situations as cpu resources are essentially shared dynamically. As it was explained to me, this puts a responsibility on AU developers to ensure they are managing the calls properly to handle this toggling of the processing active status and their own buffer management.

 

I run quite a few 3rd party plugs from various manufacturers and yes, it took a couple of years for some of them to get fixed to support this. You may have a few that are still not updated to fix this. Have you tried contacting the developers of those plug-ins?

Link to comment
Share on other sites

I still have issues with the delay and reverb buffers within Logic emptying before doing a cycle region bounce.... nce It's just that you have to clear it before you bounce. You'll here it in your everyday workflow when you hit play after listening to a complex part you've programmed with effects etc. Not many plugin developers have cleared this issue. To the point that I am still thinking it's an Apple issue....

I mean, would it be so hard for Apple to implement a pref selectable parameter to clear the audio buffer before playback begins?

Link to comment
Share on other sites

I am truly amazed by the people who deny this problem.

 

It's not denial, just reality. Several AU developers have caught this problem after the fact and fixed their plug-ins. Here's a typical example from expertsleepers site:

 

Augustus Loop

v1.6.5 now responds properly to AudioUnitReset(), so in e.g. Logic the delay buffer will be cleared when song playback is started etc.

 

The reason this is so important in Logic specifically, is that Logic handles effects far more efficiently than other DAWs. Plug-ins are not constantly on. They are actively processing only when needed. For example, if you've ever used Pro Tools you'd notice that as you instantiate more plug-ins on more tracks, the cpu usage grows proportionately. That cpu usage stays the same regardless of whether only one track is actively playing or 56 tracks are actively playing.

 

Logic doesn't work like that. It shuts down processing of AU's that aren't actually doing anything. This allows you to have a much higher plug-in count in most situations as cpu resources are essentially shared dynamically. As it was explained to me, this puts a responsibility on AU developers to ensure they are managing the calls properly to handle this toggling of the processing active status and their own buffer management.

 

I run quite a few 3rd party plugs from various manufacturers and yes, it took a couple of years for some of them to get fixed to support this. You may have a few that are still not updated to fix this. Have you tried contacting the developers of those plug-ins?

 

I can run the same amount of 3rd party plugins in Ableton Live getting the same cpu performance as Logic without a single buffer hitch. I have also talked to numerous developers about this now worn out issue and have gotten the exact same response from each and every one of them: It's an issue with Logic not clearing the buffers on reset. None of them feel they should "fix" what is essentially an issue with the DAW itself.(Massey anyone?) As far as the old "Logic is more efficient this way" argument is concerned, it's pretty much a non starter these days due to the fact that modern, APPLE computers have way more than enough power to run a DAW efficiently. The performance gain of the old plugin handling is simply too small to make any difference at all. This is a simple fix that for some weird reason, the Logic coders are either too proud or too lazy to fix, plain and simple. Heck even Garageband doesn't have the problem. If you don't believe me, fire up Live or Reaper or Garageband or even the upcoming Studio One and you'll see what I mean. Don't get me wrong, I love Logic and make a living using it but these dumb behaviors really need to be addressed. It's as if the coders want it to be great but aren't willing to take it all the way. This problem is compounded by the fact that many users simply find workarounds to the issues and accept the state of the program as status quo. Perhaps this is why they don't really see the need to improve things. If there ever will be an update to this DAW (don't get me started on that one) and these issues still haven't been fixed I have a feeling many of us will simply but reluctantly find another solution. Too bad really, you can deny all you want but that is in fact the real, sad reality of the situation.

Link to comment
Share on other sites

The reason this is so important in Logic specifically, is that Logic handles effects far more efficiently than other DAWs. Plug-ins are not constantly on. They are actively processing only when needed. For example, if you've ever used Pro Tools you'd notice that as you instantiate more plug-ins on more tracks, the cpu usage grows proportionately. That cpu usage stays the same regardless of whether only one track is actively playing or 56 tracks are actively playing.

 

Logic doesn't work like that. It shuts down processing of AU's that aren't actually doing anything. This allows you to have a much higher plug-in count in most situations as cpu resources are essentially shared dynamically. As it was explained to me, this puts a responsibility on AU developers to ensure they are managing the calls properly to handle this toggling of the processing active status and their own buffer management.

 

I could have gotten into more detail in my post, though I would have likely lost readers quite easily - you've worded it perfectly Mr.8.

 

When the current AU spec arrived, the plugin format had the most complex set of properties and callbacks, compared to other formats. VST 2.x was popular at the time (it still is, and this was not many years ago), the interface was trivial in comparison, VST 2.x also supports far fewer features. Many devs created workarounds to 'enable' some features which were not present in the VST interface.

 

Anyways, plugins developers don't have it easy (IMO). Supporting multiple plugin formats across multiple operating systems and obtaining compatability among all hosts (even if it is just the major hosts) is not trivial. It requires a lot of man hours (development, QA & support) to execute properly, where properly is defined as 'operates as the user expects'. Even if you go back 10 years in Logic support, you have OS 9 - OS X, several hardware changes, universal binary, multiple code rewrites for user interfaces, Universal Binary, 64 bit, VST to AU, and so on. In other words, support for one host means multiple man years of maintenance for medium sized developers (that's *not* new development) - now add other formats, hosts and Operating Systems to the equation (as many plugin devs do support multiple formats and operating systems)... you get the idea. The lowest common denominator is the starting point for plugin implementation/format support (otherwise you have exponential codebase increase and maintenance issues), so what do you have as a default implementation of a plugin? VST or whatever the lowest common denominator is among supported formats. Then time goes by, formats evolve, bugs get fixed as they are discovered (they are not always noticed or reproduced in house, before general release). Plugin development is not a trivial operation, I think a lot of people would be surprised at how small many companies actually are and how much profit they yield (or should I say little). So yes, I can only recommend that users report anomalies to plugin developers, there are dozens of hosts per platform, and they operate differently. There would be too much to reasonably test every feature and implement it immediately for the average plugin developer that supports multiple formats.

 

Ugh, AU devs typically now have 2 major transitions on the horizon, but it looks like clear weather after that. :wink:

 

I actually remember this discussion came up a few years back (Logic 7.x), I made a test AU (effect) which indicated reset messages; I could never get it to fail in Logic. Logic always sent the reset message. IIRC, a local hero who goes by 'ski' was involved in the discussion. I may be wrong, and I would forgive him if he did forget - we've both talked a lot of Logic in the meantime so we may either/both be hazy on the discussion.

 

Cheers,

 

J

Link to comment
Share on other sites

This is exactly what I'm talking about. Another tired argument defending what is essentially flakey software implementation. Apple won't fix it, the 3rd party devs sure as hell don't want to code around it and we, the people who pay for the software and use it end up the losers. I'll say it again: Logic is the only AU Daw that has this problem. I'm still amazed at those who say it's not an Apple issue. My advice is to complain to Apple and complain loudly.
Link to comment
Share on other sites

I usually get it when using uad-2 stuff. Or, I'll hear the remnant of a cymbal from bfd2 or some other vi like k3.5 ringing over at the top of the song. I just keep hitting play a few times until it disappears and then I do my bounce. More times then not there's still some little glitch at the very top of the bounce that I have to delete. You could also mix in realtime into audio hijack pro and avoid any of this. I'll do that if it's really out of control. It's not a deal breaker at this point.
Link to comment
Share on other sites

I can run the same amount of 3rd party plugins in Ableton Live getting the same cpu performance as Logic

 

That is simply not true. You can try it for yourself. The difference is dramatic. Live (version 7 here) with 9 stereo audio tracks and one plug-in, (I used the Sonalksis DQ1 for my test) reports cpu usage at 23%. This is at idle, or if the tracks are playing all at the same time, or if they are spread out to play in succession. It doesn't matter. Live works just the same as Pro Tools in this regard. Plug-ins are actively processing all the time, even when there isn't anything playing on the track.

 

Logic, with the same audio files on 9 tracks, at idle reports 3% cpu usage, playing the files in succession reports 7% and playing them all at once reports 9% cpu usage.

 

For large orchestral and film projects with high end virtual instruments, this distinction becomes very important. Or my workflow for example, where I often need Final Cut Pro, Logic, Motion, Kyma and Shake open at the same time. I can't have the DAW just sitting there consuming massive resources when it really isn't doing anything but standing by. This prevents me from using Live or Pro Tools on a regular basis.

 

I have also talked to numerous developers about this now worn out issue and have gotten the exact same response from each and every one of them: It's an issue with Logic not clearing the buffers on reset. None of them feel they should "fix" what is essentially an issue with the DAW itself.

 

That's pure stubbornness on the part of those developers. The type of process allocation that Logic does is what others are aspiring to. It's exactly how VST3 works, actually.

Steinberg:

VST3 helps to improve overall performance by applying processing to plug-ins only when audio signals are present on their respective inputs. Instead of always processing input signals, VST3 plug-ins can apply their processing economically and only when it is needed.

 

This is the way everything is going to go, hopefully RTAS too. If developers are too lazy to support properly resetting their own buffers on a playback command, then they're going to be behind the curve. The kinds of problems you're having is exactly the kind of thing that happens when developers are late in supporting newer technologies.

Link to comment
Share on other sites

I'm not familiar with other AU hosts that run into the effects buffer issue. I imagine Logic is expecting AudioUnits to behave properly, thus not performing extra workaround steps that other hosts do.

 

Carrierandoperator, what plugins have you written? And, thanks for sharing your direct experiences on here. I have not programmed for a few years, but I always enjoy hearing the technical details.

Link to comment
Share on other sites

Anybody have a list of plugins which have this problem? Or does it depend on the size of the project etc.?

 

As I mentioned before I've bounced a few tracks already which had Waves and Space Designer reverbs on, but didn't notice any problems so far. I need to test it more extensively though now I've heard about this issue, because they were only very small projects...

 

Also haven't got my DUY plugins going yet (Magic EQ, Magic Spectrum, Analog Bundle), but I assume these may not be affected, as it sounds like it's only effects which have a "tail" which are causing the problems?? (reverbs, delays...). Will test them out within the next week and see if any issues arise.

Link to comment
Share on other sites

Carrierandoperator, what plugins have you written?

 

As you may have guessed by my member name, I prefer to remain anonymous (sorry, I'm just a quiet person). The first AU that I wrote was in 2003. I've written and/or been involved in the development of many since that time, from freeware to majors (based in the states). I have worked on effects, synths, and even a few other lesser known AU formats. I have 38 AUs in today's build cycle (that doesn't imply 38 commercial AUs - I can only think of a few companies that have released anywhere near that many commercial AUs, and I never worked with those companies. Having worked with majors, you'd be correct if you guessed I have not worked with AUs exclusively.

 

As a former programmer, you would probably agree that programming takes more time than most people imagine (to do well), I have worked on a lot of unreleased stuff, and commercial standards. However, I have never personally implemented a commercial TDM plugin -- that requires a specialist in areas which I am not specialized. Again, sorry to want to remain anonymous, even though I am not a household name among producers/engineers/musicians. Chats with developers can quickly become very long, time consuming, and developers must often tiptoe around details. I don't mind that remaining anonymous and not disclosing what I have worked on reduces the credibility of my posts to some people; As with everything on the internet and regarding science and technology, the reader should always question the validity of what is being said and believe as much as they choose (hopefully backing up some of that with her/his knowledge while questioning what they believe and know). History has proven that even the biggest names have been incorrect (at times) in their thoughts, works, statements, predictions, and expectations.

 

Side Note: I grew up in the twin cities

 

And, thanks for sharing your direct experiences on here. I have not programmed for a few years, but I always enjoy hearing the technical details.

 

You're welcome, and again sorry to not get into all the details. What type of programming did you do?

 

Cheers,

 

J

Link to comment
Share on other sites

Anybody have a list of plugins which have this problem? Or does it depend on the size of the project etc.?

 

I know that there was an older version of EZDrummer that did this in Logic. Oftentimes, after pausing playback and moving the transport, or rewinding and playing the song from the beginning, you would hear the decay of whatever drums were playing when the song was paused.

 

What type of programming did you do?

 

No commercial products. It was the Commodore 64 as a hobby for many years, but by the time I began to understand assembly language, it was obsolete.

 

Then I learned some C and made simple things for Mac System 7, which was a real pain and I gave it up. I miss "monotasking" operating systems, and computers that are simple enough for one person to understand completely.

 

Mostly these days I put together shell scripts under OS X to kludge together solutions for the music lab computer network at my school. I also hacked at ffmpeg (open source audio/video encoder) a bit a few years ago, to make freaky nonstandard Video CDs.

 

Chats with developers can quickly become very long, time consuming, and developers must often tiptoe around details.

 

I use Line 6 instruments and amplifiers, and one of their product managers is active on their forum. I swear he must spend 4 hours a day answering stupid questions (and an hour a day answering smart ones). It's understandable you wouldn't want to be subjected to that.

 

Matt

Link to comment
Share on other sites

I can run the same amount of 3rd party plugins in Ableton Live getting the same cpu performance as Logic

 

That is simply not true. You can try it for yourself. The difference is dramatic. Live (version 7 here) with 9 stereo audio tracks and one plug-in, (I used the Sonalksis DQ1 for my test) reports cpu usage at 23%. This is at idle, or if the tracks are playing all at the same time, or if they are spread out to play in succession. It doesn't matter. Live works just the same as Pro Tools in this regard. Plug-ins are actively processing all the time, even when there isn't anything playing on the track.

 

Logic, with the same audio files on 9 tracks, at idle reports 3% cpu usage, playing the files in succession reports 7% and playing them all at once reports 9% cpu usage.

 

For large orchestral and film projects with high end virtual instruments, this distinction becomes very important. Or my workflow for example, where I often need Final Cut Pro, Logic, Motion, Kyma and Shake open at the same time. I can't have the DAW just sitting there consuming massive resources when it really isn't doing anything but standing by. This prevents me from using Live or Pro Tools on a regular basis.

 

I have also talked to numerous developers about this now worn out issue and have gotten the exact same response from each and every one of them: It's an issue with Logic not clearing the buffers on reset. None of them feel they should "fix" what is essentially an issue with the DAW itself.

 

That's pure stubbornness on the part of those developers. The type of process allocation that Logic does is what others are aspiring to. It's exactly how VST3 works, actually.

Steinberg:

VST3 helps to improve overall performance by applying processing to plug-ins only when audio signals are present on their respective inputs. Instead of always processing input signals, VST3 plug-ins can apply their processing economically and only when it is needed.

 

This is the way everything is going to go, hopefully RTAS too. If developers are too lazy to support properly resetting their own buffers on a playback command, then they're going to be behind the curve. The kinds of problems you're having is exactly the kind of thing that happens when developers are late in supporting newer technologies.

 

Just tried it again, no difference whatsoever. In fact, another nameless DAW in beta actually shows better performance than Logic with zero buffer issues. This is on both an intel C2D Macbook Pro and a Quad intel Mac Pro. Sorry but your argument doesn't hold water when it comes to recent machines. Btw, at least VST3 plugs don't suffer from this problem.

Link to comment
Share on other sites

Just tried it again, no difference whatsoever.

Tried what?

 

Btw, at least VST3 plugs don't suffer from this problem.

They will if they don't flush their own buffers on a reset call from the host. It still comes down to the amount of effort the developer wants to put into it.

Link to comment
Share on other sites

All I can add to this conversation is that non-clearing buffers of both audio effects tails (all Logic native plugs) as well as EXS-24 "burps" (which can occur minutes after I've stopped Logic) drive me batty. Absolutely batty.

 

Worse on L8 than L7, but L7 wasn't so innocent...

 

See my sig for my system info.

Link to comment
Share on other sites

Just tried it again, no difference whatsoever.

Tried what?

 

Btw, at least VST3 plugs don't suffer from this problem.

They will if they don't flush their own buffers on a reset call from the host. It still comes down to the amount of effort the developer wants to put into it.

 

Excuse me but are not really reading my posts? What is it that you don't understand?

Honestly, you can only bury your head in the sand for so long. I can only hope you have nothing to do with being a Logic beta tester.

Link to comment
Share on other sites

All I can add to this conversation is that non-clearing buffers of both audio effects tails (all Logic native plugs). . . . drive me batty.

It would probably help to be precise here. There are two issues as I see it. Logic only sends the audiounitreset when it gets a new playback command. During cycle mode, when the playhead returns to the beginning of the cycle, no new playback command is issued so any delay effects from the end of the cycle length get played at the beginning of it. This can suck. I don't see any reason why it can't re-issue that call on a new cycle. It works if you click in the ruler bar to reposition the playhead during playback, so why not do this for cycle start as well?

 

If you stop the transport and start it again, thus issuing a new playback command, only then does it send the reset. In this case, Logic's native plug-ins, and properly written 3rd party plugs, do get cleared. Notwithstanding an allowance for an occasional hiccup, I've never experienced a bounce that had delays printed in at the head unless it was an AU that didn't support the reset call properly.

 

What I have noticed is that the chances for the occasional hiccup tend to increase as the project complexity grows. So there's no doubt that there is room for improvement. And yeah, maybe they could get rid of the EXS24 burp while they're at it.

 

Excuse me but are not really reading my posts? What is it that you don't understand?

You said you tried something again, but you never explained exactly what you tried. Are you implying that Ableton dynamically allows plug-ins to release cpu resources when no audio is present in their channels?

Link to comment
Share on other sites

It would probably help to be precise here.

 

True 'nuf.

 

I have very few 3rd party plugs, so when it comes to reverb or delay I use Logic's Space Designer (SpD) and Stereo Delay. The more memorable "ghost tails" that occur are with SpD. After stopping Logic it doesn't matter how long I might wait for a reverb tail to die out; if I start Logic from the top (before any notes are encountered) I'll get a blast of tail sound.

 

Sometimes SpD's will output a hard glitchy sound upon receiving the audio produced from the first note of a track playing an instrument. Sometimes it won't. Can't help but feel that this behavior is related to this issue we're talking about so I thought I'd mention it.

 

EXS "burps" --- I'll have, say, an EXS piano or string sound up, and Logic has been stopped for a while, and that EXS track is selected. Playing a single note on the keyboard will result in hearing a ghost repeat (and subsequent endless sustain) of the last note or chord heard prior to stopping Logic, along with the note I played. If the sound has an active send to a reverb, the ghost repeat will sometimes be accompanied by that glitchy reverb sound.

 

Batty.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...