Old 04-26-2018, 12:59 AM   #121
geraintluff
Human being with feelings
 
geraintluff's Avatar
 
Join Date: Nov 2009
Location: mostly inside my own head
Posts: 223
Default

Quote:
Originally Posted by RJHollins View Post
I wondered if there is a 'scaling' control that allows for global 'Strength'
of the Corrected result ? Unless I'm overlooking ... it seems the corrective amount is 100%.

If this type of control option is not available ... is it possible ?
No problem. Implemented and released in v1.5.0 (updated ReaPack and Stash ZIP).

I had to tidy the dials up to make room for it, but note the new "Amount" control:



EDIT: it now hides the Q and Amount knobs until you hit "Correct", because they don't do anything until that point.

It scales the correction curve (white) but not the bands - that seemed (to me) the more intuitive and clear way to display what it was doing.

Quote:
Originally Posted by cymbals View Post
Yes- at the top right corner, adjust the mix percentage - that will allow you to dial down the strength of it.
The built-in wet/dry dial probably wouldn't give you the result you want because:
  • phase issues mean things don't add up right (true for any EQ that's not explicitly linear-phase)
  • even without phase issues, a linear mix doesn't give nice (or even symmetrical!) dB interpolation. For example, a 50% wet/dry mix of a +10dB boost is +6.4dB, but a 50% wet/dry mix of a -10dB cut is -3.6dB.

Have fun!

Geraint
__________________
JSFX set | Bandcamp | say thanks (donations)

Last edited by geraintluff; 04-26-2018 at 01:57 AM.
geraintluff is offline   Reply With Quote
Old 04-26-2018, 01:45 AM   #122
RJHollins
Human being with feelings
 
Join Date: Dec 2011
Posts: 1,200
Default

Hi Geraintluff

No problem. Implemented and released in v1.5.0 (updated ReaPack and Stash ZIP)."

Hmmm ... I tried updating via ReaPack ... and tried the direct ZIP links.

When launching Spectrum-Match ... it does not seem to be the v1.0.5 that has the new feature ?!?

----- EDIT ---
Nevermind ..... Amount knob shows AFTER 'Correct'.

Will test this out ..... THANKS !!
RJHollins is offline   Reply With Quote
Old 04-26-2018, 02:04 AM   #123
cymbals
Human being with feelings
 
cymbals's Avatar
 
Join Date: Aug 2007
Posts: 136
Default

Hi,
The RealPack version of the Spectrum Matcher doesn't show the new knob.

Also, please update the Author field in ReaPack - most of them show up as Author Unknown, and makes them difficult to find. Thanks!
cymbals is offline   Reply With Quote
Old 04-26-2018, 02:31 AM   #124
RJHollins
Human being with feelings
 
Join Date: Dec 2011
Posts: 1,200
Default

Quote:
Originally Posted by cymbals View Post
Hi,
The RealPack version of the Spectrum Matcher doesn't show the new knob.

Also, please update the Author field in ReaPack - most of them show up as Author Unknown, and makes them difficult to find. Thanks!
See my post above ...

The AMOUNT knob doesn't show UNTIL you click CORRECT.
RJHollins is offline   Reply With Quote
Old 04-26-2018, 02:57 AM   #125
geraintluff
Human being with feelings
 
geraintluff's Avatar
 
Join Date: Nov 2009
Location: mostly inside my own head
Posts: 223
Default

Quote:
Originally Posted by cymbals View Post
Hi,
The RealPack version of the Spectrum Matcher doesn't show the new knob.

Also, please update the Author field in ReaPack - most of them show up as Author Unknown, and makes them difficult to find. Thanks!
Sorry for the confusion - yeah, I hid it (and the "Q" dial) until it's actually correction, because those dials don't do anything otherwise.

I was hoping that it would make it easier to use for new users, by making it clear that the "amount" dial was only relevant to the correction filter, but if it's confusing I can put them both back.

(Also, thanks for the tip on ReaPack "author" field - should be fixed now. I'm working on putting in descriptions for them too - please let me know if this doesn't work!)
__________________
JSFX set | Bandcamp | say thanks (donations)

Last edited by geraintluff; 04-26-2018 at 07:44 AM.
geraintluff is offline   Reply With Quote
Old 04-26-2018, 05:52 AM   #126
cymbals
Human being with feelings
 
cymbals's Avatar
 
Join Date: Aug 2007
Posts: 136
Default

Quote:
Originally Posted by RJHollins View Post
See my post above ...

The AMOUNT knob doesn't show UNTIL you click CORRECT.
Ahh, thanks! Now I understand.
cymbals is offline   Reply With Quote
Old 04-30-2018, 03:17 AM   #127
geraintluff
Human being with feelings
 
geraintluff's Avatar
 
Join Date: Nov 2009
Location: mostly inside my own head
Posts: 223
Default New effect: Vibrato

I've added a new effect: Vibrato (main website)

It's a pretty simple one - it adds vibrato by detuning/delaying the audio, but instead of a constant LFO, it uses MIDI notes to produce a more natural envelope.

This is most useful for adding vibrato to synths that don't have already have it - for example, adding vibrato to ReaSynth or Hammer and Chord.



The "lookahead" dial adds latency - without this, the start of a note might be detuned due to ongoing vibrato from a previous note.
__________________
JSFX set | Bandcamp | say thanks (donations)

Last edited by geraintluff; 05-10-2018 at 11:03 AM.
geraintluff is offline   Reply With Quote
Old 05-02-2018, 07:45 AM   #128
geraintluff
Human being with feelings
 
geraintluff's Avatar
 
Join Date: Nov 2009
Location: mostly inside my own head
Posts: 223
Default New effect: Cross-Polyphonic FM

One more effect, based on some tinkering I did while on holiday - I couldn't think of a good name, so it's called Cross-Polyphonic FM (main website, audio demo with Hammer and Chord).

This is a MIDI-controlled frequency-modulator. You can add it after an existing synth, re-using the same MIDI notes to change the character of the sound, or have unrelated MIDI notes.

Multiple MIDI notes produces multiple modulation frequencies, but the notes aren't processed separately - they are added together to form a single modulation signal. This means that all the different notes interact, so open chords work well if you want it to sound tonal (similar to distortion).

__________________
JSFX set | Bandcamp | say thanks (donations)

Last edited by geraintluff; 05-08-2018 at 01:43 AM.
geraintluff is offline   Reply With Quote
Old 05-12-2018, 05:27 AM   #129
heda
Human being with feelings
 
heda's Avatar
 
Join Date: Jun 2012
Location: Spain
Posts: 4,739
Default

geraintluff
I just wanted to say you are so awesome and thank you
__________________
HeDaScripts for REAPER | VIP Donations
heda is offline   Reply With Quote
Old 06-04-2018, 12:47 AM   #130
cymbals
Human being with feelings
 
cymbals's Avatar
 
Join Date: Aug 2007
Posts: 136
Default

Hi Geraint!

Just wanted to say thanks for the spectrum matcher, and give you a challenge regarding it. Often times, I have the need to alter the mids, but want to keep the existing low end, or vice-versa.

It would be *really* useful to be able to right-click a band and disable the frequency matching for that band.

I'd happily donate for this feature.
cymbals is offline   Reply With Quote
Old 06-04-2018, 04:43 AM   #131
geraintluff
Human being with feelings
 
geraintluff's Avatar
 
Join Date: Nov 2009
Location: mostly inside my own head
Posts: 223
Default

Quote:
Originally Posted by cymbals View Post
Just wanted to say thanks for the spectrum matcher, and give you a challenge regarding it. Often times, I have the need to alter the mids, but want to keep the existing low end, or vice-versa.

It would be *really* useful to be able to right-click a band and disable the frequency matching for that band.
Neat idea! Disabling individual bands could be fiddly - what would you think about a range control (or high/low dials) to determine which bands were active? I think it would be cleaner. Frequencies outside that range could be left alone or trimmed (highpass/lowpass) according to a setting.
__________________
JSFX set | Bandcamp | say thanks (donations)
geraintluff is offline   Reply With Quote
Old 06-04-2018, 05:00 AM   #132
Sju
Human being with feelings
 
Join Date: Jun 2015
Posts: 563
Default

I just spent a good deal of time trying to get a huge low end bump out of an otherwise proper sounding curve... range sliders would be really nice, preferably with variable slope if possible.

If I may add another FR, I'd find it useful if the Gain parameter only affected the Wet (Amount >0%) signal, so you could level match and use the Amount slider with less loudness bias.

I'm not sure though if the Amount is just a simple dry/wet or an interpolation of the band gains? Would this be feasible in the latter case? Also this might break existing projects?

EDIT: Wait, I can just use Reaper's dry/wet knob for this, right?

PS. Thank you for these awesome plugins!

Last edited by Sju; 06-04-2018 at 05:28 AM.
Sju is offline   Reply With Quote
Old 06-04-2018, 05:45 AM   #133
cymbals
Human being with feelings
 
cymbals's Avatar
 
Join Date: Aug 2007
Posts: 136
Default

Quote:
Originally Posted by geraintluff View Post
Disabling individual bands could be fiddly - what would you think about a range control (or high/low dials) to determine which bands were active? I think it would be cleaner. Frequencies outside that range could be left alone or trimmed (highpass/lowpass) according to a setting.
That sounds great - whichever is easiest!

Hey, not sure what caused it, but I ran two instances of spectrum matcher on the master bus, for A/B'ing with one active, and when I re-opened the project there was a loud roar until I turned off the one active spectrum matcher. Never had that happened with just one instance, but was able to repeat the problem.
cymbals is offline   Reply With Quote
Old 06-04-2018, 07:02 AM   #134
geraintluff
Human being with feelings
 
geraintluff's Avatar
 
Join Date: Nov 2009
Location: mostly inside my own head
Posts: 223
Default

Quote:
Originally Posted by Sju View Post
I'm not sure though if the Amount is just a simple dry/wet or an interpolation of the band gains? Would this be feasible in the latter case? Also this might break existing projects?

EDIT: Wait, I can just use Reaper's dry/wet knob for this, right?
"Amount" interpolates the gain (in dB). You shouldn't use the built-in wet/dry knob - it won't add up correctly because of phase shifts. (This is true for ReaEQ and most other EQs as well.)
__________________
JSFX set | Bandcamp | say thanks (donations)

Last edited by geraintluff; 06-05-2018 at 01:50 PM.
geraintluff is offline   Reply With Quote
Old 06-04-2018, 08:15 AM   #135
geraintluff
Human being with feelings
 
geraintluff's Avatar
 
Join Date: Nov 2009
Location: mostly inside my own head
Posts: 223
Default

Quote:
Originally Posted by cymbals View Post
Hey, not sure what caused it, but I ran two instances of spectrum matcher on the master bus, for A/B'ing with one active, and when I re-opened the project there was a loud roar until I turned off the one active spectrum matcher. Never had that happened with just one instance, but was able to repeat the problem.
That's not great, I'll have a look - sorry about that.

Do you think it might have been "active" but not "frozen"? If so, that's a straightforward fix.

EDIT - changed and released in v1.5.1. When you reload a corrected-but-not-frozen instance, it used to forget the analysis but still try to correct (and went a bit wrong). Now it turns correction off - just as before, if you want to keep your correction curve, hit Freeze.
__________________
JSFX set | Bandcamp | say thanks (donations)

Last edited by geraintluff; 06-04-2018 at 11:13 AM.
geraintluff is offline   Reply With Quote
Old 06-05-2018, 03:10 PM   #136
geraintluff
Human being with feelings
 
geraintluff's Avatar
 
Join Date: Nov 2009
Location: mostly inside my own head
Posts: 223
Default

Quote:
Originally Posted by cymbals View Post
Often times, I have the need to alter the mids, but want to keep the existing low end, or vice-versa.
Quote:
Originally Posted by Sju View Post
I just spent a good deal of time trying to get a huge low end bump out of an otherwise proper sounding curve... range sliders would be really nice, preferably with variable slope if possible.
Alright - this is in.

You should now be able to set upper/lower limits for the correction. You can also select the boundary type: highpass/lowpass, flat (continues from the nearest band) or zero (returns to 0dB).

Give it a whirl and let me know how it works for you.



The layout's a bit busier now, but I think tidying that up is a task for another time.

Quote:
Originally Posted by Sju View Post
If I may add another FR, I'd find it useful if the Gain parameter only affected the Wet (Amount >0%) signal, so you could level match and use the Amount slider with less loudness bias.
Also done. Old projects/presets should work fine.

Get v1.6.0 (or the latest ZIP) for both of these changes.

Geraint
__________________
JSFX set | Bandcamp | say thanks (donations)

Last edited by geraintluff; 06-05-2018 at 03:22 PM.
geraintluff is offline   Reply With Quote
Old 06-06-2018, 01:05 AM   #137
Sju
Human being with feelings
 
Join Date: Jun 2015
Posts: 563
Default

Awesome! Thank you

Good thought with the different filter modes.

One minor issue I noticed is that with low end boosts, sweeping the highpass frequency around tends to cause loud volume spikes when it enables/disables the individual bands.

Another: When the filters are set to their respective default positions (10Hz and 20kHz), their mode setting still seems to alter the curve slightly. Does the "flat" setting completely disable them in those positions?

Last edited by Sju; 06-06-2018 at 01:17 AM.
Sju is offline   Reply With Quote
Old 06-06-2018, 04:51 AM   #138
geraintluff
Human being with feelings
 
geraintluff's Avatar
 
Join Date: Nov 2009
Location: mostly inside my own head
Posts: 223
Default

Quote:
Originally Posted by Sju View Post
One minor issue I noticed is that with low end boosts, sweeping the highpass frequency around tends to cause loud volume spikes when it enables/disables the individual bands.
Ooh, yeah. The issue is these dials actually change the number of filters currently active, and shuffles their order around. I'll have to think some more about what to do about this - I tried one solution but it had an unreasonable performance impact.

Quote:
Originally Posted by Sju View Post
When the filters are set to their respective default positions (10Hz and 20kHz), their mode setting still seems to alter the curve slightly. Does the "flat" setting completely disable them in those positions?
The defaults (20Hz highpass on the low end, 18kHz flat on high end) are equivalent to the previous version. It affects the curve slightly at the low end, but the high end should be fine.

So, it kind of depends what you mean by "disable". The filters are actually not centred on the bands themselves, but are placed on the boundaries between the bands. If you set the boundaries to "flat" then the final bands extend outwards, so there aren't any filters the very edges, which is possibly what you're thinking about.
__________________
JSFX set | Bandcamp | say thanks (donations)

Last edited by geraintluff; 06-06-2018 at 06:34 AM.
geraintluff is offline   Reply With Quote
Old 06-08-2018, 04:47 AM   #139
Sju
Human being with feelings
 
Join Date: Jun 2015
Posts: 563
Default

Quote:
Originally Posted by geraintluff View Post
The defaults (20Hz highpass on the low end, 18kHz flat on high end) are equivalent to the previous version. It affects the curve slightly at the low end, but the high end should be fine.
Ah ok, yeah I was wondering what was the "default" mode.

So another idea. Do you think it might be useful to be able to invert the action of the Amount parameter, to be able to subtract a spectrum of one signal from another? Could be useful in mixing for fitting together sounds occupying the same frequencies, especially with the new filters so you could target the subtraction to the crucial frequencies.

EDIT: ^ Not sure if I'm thinking about this right.. The obtained spectrum is actually the difference of the two signals, so just inverting it would then actually only subtract the parts that already don't overlap? It'd require a different algorithm to find the overlapping areas, yes?

Related to this, are the parameters in Spectrum Matcher automatable, i. e. don't cause zipper noise? Could then use parameter modulation to dynamically change the subtraction Amount with a sidechain signal.

Last edited by Sju; 06-08-2018 at 05:14 AM.
Sju is offline   Reply With Quote
Old 06-08-2018, 07:37 AM   #140
geraintluff
Human being with feelings
 
geraintluff's Avatar
 
Join Date: Nov 2009
Location: mostly inside my own head
Posts: 223
Default

Quote:
Originally Posted by Sju View Post
So another idea. Do you think it might be useful to be able to invert the action of the Amount parameter, to be able to subtract a spectrum of one signal from another? Could be useful in mixing for fitting together sounds occupying the same frequencies, especially with the new filters so you could target the subtraction to the crucial frequencies.

EDIT: ^ Not sure if I'm thinking about this right.. The obtained spectrum is actually the difference of the two signals, so just inverting it would then actually only subtract the parts that already don't overlap? It'd require a different algorithm to find the overlapping areas, yes?
It would be simple to extend the Amount dial to go down to -100%. This would be equivalent to swapping the reference and the input around.

I'm not at my computer right now to add this and test it, but you can try it yourself by changing "0" to "-1" in this line (2047)
EDIT - released in v1.7.0. Amount dial now goes to -100%, and double-clicking sets it to 0.

For what you're thinking of, you could try using the combined/summed audio as the reference. If you then put Spectrum Matcher on the individual tracks, normally it would make each track sound like the combined reference - but with a negative Amount, it should make it sound less like the reference, exaggerating the most distinctive features of each track.

I don't know what the result will sound like in practice, but that's what I would try first. It's a neat idea, and I'm interested to see if it works.

Quote:
Originally Posted by Sju View Post
Related to this, are the parameters in Spectrum Matcher automatable, i. e. don't cause zipper noise? Could then use parameter modulation to dynamically change the subtraction Amount with a sidechain signal.
I'm afraid not, for performance reasons basically. It would take about 2x CPU when automation was active. It also ~triples the time it takes to actually load/add/move the plugin (to the order of a couple of seconds on my machine).

I thought that was too high a cost given that it's not its intended use. It sounds to me like what you really want for that is a multi-band EQ with sidechain (which ReaXComp unfortunately does not support).

Possible workaround: copy the curve to ReaFIR (by hand), use wet/dry dial

I have warned against using REAPER's wet/dry dial because things don't add up linearly due to phase shifts - for example, it's possible to have a curve where the 50%/50% result reduces some frequencies below both the 100% wet and 100% dry. If the correction curve is very gentle, you might get away with it, but I don't want to recommend it.

That goes for ReaEQ as well, because the phase shifts are exactly the same.

However, if you copied the spectrum into ReaFIR, the wet/dry dial would work because it's a linear-phase EQ. There isn't a good way to copy that curve across though, it would be by hand.

Geraint
__________________
JSFX set | Bandcamp | say thanks (donations)

Last edited by geraintluff; 06-09-2018 at 02:53 AM.
geraintluff is offline   Reply With Quote
Old 06-08-2018, 08:30 AM   #141
Sju
Human being with feelings
 
Join Date: Jun 2015
Posts: 563
Default

Quote:
Originally Posted by geraintluff View Post
It would be simple to extend the Amount dial to go down to -100%. This would be equivalent to swapping the reference and the input around.

I'm not at my computer right now to add this and test it, but you can try it yourself by changing "0" to "-1" in this line (2047), like:
Code:
correction_strength = control_dial(correction_strength, -1, 1, 0);
Cool, I'll try that.

Quote:
Originally Posted by geraintluff View Post
For what you're thinking of, you could try using the combined/summed audio as the reference. If you then put Spectrum Matcher on the individual tracks, normally it would make each track sound like the combined reference - but with a negative Amount, it should make it sound less like the reference, exaggerating the most distinctive features of each track.

I don't know what the result will sound like in practice, but that's what I would try first. It's a neat idea, and I'm interested to see if it works.
Good idea, I'll give it a go. Perhaps another way would be to learn one of the signals, then match white noise to that spectrum and use that curve in inverse on the other signal?

Quote:
Originally Posted by geraintluff View Post
I'm afraid not, for performance reasons basically. It would take about 2x CPU when automation was active. It also ~triples the time it takes to actually load/add/move the plugin (to the order of a couple of seconds on my machine).

I thought that was too high a cost given that it's not its intended use.
Yeah that's understandable. I like how lightweight it feels right now, especially when you freeze the curve. I haven't had the need yet to copy the curve into ReaEQ, like you suggested for possible performance increase.


Quote:
Originally Posted by geraintluff View Post
It sounds to me like what you really want for that is a multi-band EQ with sidechain (which ReaXComp unfortunately does not support).

Possible workaround: copy the curve to ReaFIR (by hand), use wet/dry dial
I've actually used TDL Nova for this, and it's very suitable for this purpose. It even has that spectrum matching feature, but it's unfortunately not as accurate with 7 bands (also it sometimes focuses them on narrow resonances instead of the overall contour, which isn't always desirable).

Quote:
Originally Posted by geraintluff View Post
I have warned against using REAPER's wet/dry dial because things don't add up linearly due to phase shifts - for example, it's possible to have a curve where the 50%/50% result reduces some frequencies below both the 100% wet and 100% dry. If the correction curve is very gentle, you might get away with it, but I don't want to recommend it.

That goes for ReaEQ as well, because the phase shifts are exactly the same.
Is this somehow different from how parallel EQs like Pultecs work, or is it just a feature of them? FWIW I don't always like the sound of linear phase in parallel. Pre-ringing with transients is one thing, but sometimes the phase shift might even sound "good", for example when high-passing a distorted bass track, where the cancellation cuts out some of the mud near the cutoff freq. Switching between minimum and linear phase in EQuilibrium changed the sound from "kinda hollow" to "muddy" in that particular case.

Quote:
Originally Posted by geraintluff View Post
However, if you copied the spectrum into ReaFIR, the wet/dry dial would work because it's a linear-phase EQ. There isn't a good way to copy that curve across though, it would be by hand.
The dry path in the built-in dry/wet control unfortunately isn't latency compensated last time I checked, so it doesn't work with plugins with PDC (although I think it might be possible to work around this by compensating with the Time Adjustment Delay JSFX).

Well, I'm not completely sold on the dynamic spectrum ducking thing anyway. But a static "fitting" curve for two similiar signals might be useful in some instances. I'll go check if I can get that negative amount working.
Sju is offline   Reply With Quote
Old 06-09-2018, 03:22 PM   #142
geraintluff
Human being with feelings
 
geraintluff's Avatar
 
Join Date: Nov 2009
Location: mostly inside my own head
Posts: 223
Default Updates/releases

Fixed something that I'd wanted for a while - thanks to some wise words from Justin, presets are now shipped with the effects, and should just get auto-imported when the effect is loaded.

Other updates include a slight (15%) performance improvement to Spring Box, and a second "polar" display mode in Panalysis (where left/right are sides instead of diagonals)

__________________
JSFX set | Bandcamp | say thanks (donations)

Last edited by geraintluff; 06-09-2018 at 03:29 PM.
geraintluff is offline   Reply With Quote
Old 06-11-2018, 03:42 PM   #143
geraintluff
Human being with feelings
 
geraintluff's Avatar
 
Join Date: Nov 2009
Location: mostly inside my own head
Posts: 223
Default New synth: Soft Bell

My imaginative naming scheme strikes again with Soft Bell.

This synth aims to make soft chimes and bell-like sounds (audio demo 1, audio demo 2) using individually-specified harmonics.

It can also be used with audio input - it acts like something between a resonant filter and a ring-modulator, so can produce interesting inharmonic sounds if you turn the "tonality" dial down.



There should be a couple of presets already pre-loaded when you open it. If someone could let me know if that works, I'd appreciate it. Great, thanks!

Geraint
__________________
JSFX set | Bandcamp | say thanks (donations)

Last edited by geraintluff; 06-11-2018 at 05:28 PM.
geraintluff is offline   Reply With Quote
Old 06-11-2018, 04:53 PM   #144
JamesPeters
Human being with feelings
 
JamesPeters's Avatar
 
Join Date: Aug 2011
Location: Near a big lake
Posts: 1,489
Default

9 presets are indeed included.
__________________
http://petersamplification.com
JamesPeters is offline   Reply With Quote
Old 06-13-2018, 02:35 PM   #145
geraintluff
Human being with feelings
 
geraintluff's Avatar
 
Join Date: Nov 2009
Location: mostly inside my own head
Posts: 223
Default Legato/Portamento support!

OK! Humonica, Hammer and Chord, Soft Bell and Cross-Polyphonic FM now have legato/portamento support.

(audio demo 1, audio demo 2)

You can configure these and a couple of other parameters in the new "config" screen:



There are two legato modes, both for monophonic lines. "Retrigger" means it closes the old note and opens a new one, bending the pitch (with optional portamento) so that they match. "Glide" doesn't trigger a new note, it keeps shifting the old one around.

The portamento control in the "Legato" section determines which notes have portamento applied. By default, only overlapping notes have portamento applied (if it is enabled), but it can be set so that all notes have portamento (from the most recent note).

EDIT 2018-06-13: added latency/anticipation to (some of) these. With legato enabled, this means the previous note changes slightly before the new note starts. This can gives a more natural transition, particularly in Hammer and Chord.
__________________
JSFX set | Bandcamp | say thanks (donations)

Last edited by geraintluff; 06-17-2018 at 10:54 AM.
geraintluff is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 02:38 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2018, vBulletin Solutions Inc.