DriverHeaven.net

 
Looking for the skin chooser?
 
 
  • Home

  • Reviews

  • Articles

  • News

  • Tools

  • GamingHeaven

  • Forums

  • Network

 

Go Back   DriverHeaven.net > Forums > Hardware and Related Topics > kX Project Audio Driver Support Forum > Effects and the DSP


Reply
 
LinkBack Thread Tools
Old Mar 4, 2005, 08:54 AM   #1
DH Senior Member
 
Join Date: Jan 2003
Location: The Netherlands
Posts: 1,884
Rep Power: 48
Lex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really nice

exclamation NEW: ProFx AC97 Plugin

http://members.home.nl/nahutec/kxplugins/profx_ac97.png

Introduction;
Besides saving DSP resources, the major goal of the ProFx plugins is
to 'bypass' kX Mixer pages as much as possible so we can work at,
and focus on one place;...the DSP window.
[SRC] works fine, but when a ac97 source is selected, a user still
has to go to kX Mixer's ac97 page to make some adjustments.

All and all I think it's better to have 1 single plugin dealing with AC97 inputs;

- User can now select Left/Right AC97 Recording Sources independantly.
- on Audigy 1/2 cards, UDA device (second and better codec) can be
'switched on' giving a total of 4 mono analog input signals.
- AC97/UDA settings are conveniently stored in plugin's user presets.
- All 'muso' relevant ac97 controls can be accessed from plugin's UI.

Usage;
Since current [SRC] also has ac97 inputs, you can not use it in conjunction with [AC97].
That's why I wrote an alternative [SRC] version without ac97 inputs.
It is included in the download.
The rest is pretty straight forward.

Installation;
Download and unzip AC97.KXL and SRC.KXL.
http://members.home.nl/nahutec/kxplugins/profx_ac97.zip
Register them both. The new [SRC] overwrites the existing one.
You can verify the newer [SRC] in that it has no ac97 capabilities.

Compatibilty;
Compiled for 3538.
[AC97] should work fine with all CL 10k1 cards. (APS cards have no ac97 device)
I have tested Philips UDA ADC succesfully on an Audigy 1 and 2 OEM,
but I can't tell if it works on newer adg2 cards.
As usual; this is a beta version. Use at own risk and only if you know what you are doing.
Please report bugs and if it works (or not) on newer Audigy 2 cards.

/LeMury

PS:
To all 'skin fans';
I will skin the plug after it prooves itself to be functional/usefull.
I wrote a kind of 'generic' and scalable skin so I probably do it with the rest.

PPS:
For those who don't know;
There is absolutly no use in loading more the one instance of [AC97].
(kinda like loading two Epilogs or two Prologs)

Last edited by LeMury; Mar 8, 2005 at 07:37 PM. Reason: cleanup
Lex Nahumury is offline   Reply With Quote


Old Mar 4, 2005, 09:26 AM   #2
DriverHeaven Lover
 
Join Date: Sep 2003
Location: Romania
Posts: 123
Rep Power: 0
townkat is on a distinguished road

Cool,

This is only my opinion and may be not correct so pls do not mind on me.
The normal src do the job anyway for me (i have SBLive!) so for Audigy owners adding UDA to SRC plugin should be better. All i wanted SRC to have was +20dB check as i tough it is analog but if it is digital gain it's not usefull since u can use separate gain plugin.

An usefull plugin would be an in-out router like normal what-you-hear not what-you-can-record, this probably cant use DSP for calculations, it's a thing u can do with normal windows mixer (playback not recording) with standard drivers but it's not posible trough KX DSP.
__________________
mixy kx plugins
http://www.geocities.com/picacioiu/
townkat is offline   Reply With Quote
Old Mar 4, 2005, 09:41 AM   #3
DriverHeaven Junior Member
 
Join Date: Jan 2005
Posts: 37
Rep Power: 0
2ndhannes is on a distinguished road

Hi LeMury!

The new src seems to work fine with my Audigy 2 ZS - big thanks!

Bye,
Hannes
2ndhannes is offline   Reply With Quote
Old Mar 4, 2005, 10:01 AM   #4
kX Lover
 
Samir's Avatar
 
Join Date: Jan 2003
Posts: 521
Rep Power: 0
Samir is on a distinguished road

LeMury:

UDA = Philips ADC ???
__________________
MU3NKA 3A HAPO6!
Samir is offline   Reply With Quote
Old Mar 4, 2005, 10:31 AM   #5
DH Senior Member
 
Join Date: Jan 2003
Location: The Netherlands
Posts: 1,884
Rep Power: 48
Lex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really nice

Quote:
Originally Posted by townkat
The normal src do the job anyway for me (i have SBLive!)
Glad to hear that because I wrote [SRC] .
No seriously;
SRC is nice, but the fact that each SRC instance can 'share/carry/initialise' AC97
is not good and bothered me from the start.
There is only 1 AC97 device, so there should only be 1 plugin asserting this device.

Quote:
Originally Posted by townkat
..so for Audigy owners adding UDA to SRC plugin should be better.
No I disagree, because to fully utilize UDA, user has to open kX Mixer->AC97 page and set some sliders too.

Besides all that, there are a lot of users who requested seperate L/R ac97 rec source.
This is not possible with current AC97 page.
Anyway; The goal is to make things safer, easier and clearer to operate.

Quote:
Originally Posted by townkat
All i wanted SRC to have was +20dB check as i tough it is analog but if it is digital gain it's not usefull since u can use separate gain plugin.
Do you mean +20dB Mic Boost? If so, that is analog in AC97 device but very noisy.

Quote:
An usefull plugin would be an in-out router like normal what-you-hear not what-you-can-record, this probably cant use DSP for calculations.
What exactly do you mean with "what-you-hear"?
To me, "what-you-hear" is a mix of;
All computer generated playback signals + All (analog+digital) Input signals.
I don't see why this can't be done in kX DSP.
If you mean only 'All ac97 Analog Input signals', then it is possible on sblive and audigy 1
to program AC97 device to ouput directly to DAC bypassing everything. (ThroughAC97)

/LeMury
Lex Nahumury is offline   Reply With Quote
Old Mar 4, 2005, 10:32 AM   #6
DH Senior Member
 
Join Date: Jan 2003
Location: The Netherlands
Posts: 1,884
Rep Power: 48
Lex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really nice

Quote:
Originally Posted by 2ndhannes
Hi LeMury!
The new src seems to work fine with my Audigy 2 ZS - big thanks!
Bye,Hannes
Ok, but does the [AC97] plugin work correctly on your 2ZS?

/LeMury
Lex Nahumury is offline   Reply With Quote
Old Mar 4, 2005, 10:35 AM   #7
DH Senior Member
 
Join Date: Jan 2003
Location: The Netherlands
Posts: 1,884
Rep Power: 48
Lex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really nice

Quote:
Originally Posted by Samir
LeMury:

UDA = Philips ADC ???
Yes.

/LeMury
PS: what card do you have Samir?
(I have sigs turned off)
Lex Nahumury is offline   Reply With Quote
Old Mar 4, 2005, 11:02 AM   #8
DriverHeaven Lover
 
Join Date: Sep 2003
Location: Romania
Posts: 123
Rep Power: 0
townkat is on a distinguished road

"Glad to hear that because I wrote [SRC] ."
I know .thnx again for it, the big goal for me is not dsp usage but that i can only get what i need , not more (i belive this translates as screen space economy and less brain usage ).

"If you mean only 'All ac97 Analog Input signals', then it is possible on sblive and audigy 1
to program AC97 device to ouput directly to DAC bypassing everything. (ThroughAC97)"
Thats what i mean, its a feature that cant be controled with actual plugins (probably except kx mixer)

"Do you mean +20dB Mic Boost? If so, that is analog in AC97 device but very noisy."
Yep, thats what i mean, it should exist in src and appear or became active only when mic is selected (and dissapear or became inactive when other source is selected).

" to fully utilize UDA, user has to open kX Mixer->AC97 page and set some sliders too."
I dont have UDA on my card but why not adding the sliders to SRC and make them available (visible or active) only when UDA is selected.

"Besides all that, there are a lot of users who requested seperate L/R ac97 rec source."
I know, i read that post, this is an usefull thing but then add 2 Combo-boxes to SRC (left/right) and a gang (stereo link) checkbox (checked by default of corse ).

cya
__________________
mixy kx plugins
http://www.geocities.com/picacioiu/
townkat is offline   Reply With Quote
Old Mar 4, 2005, 11:27 AM   #9
DH Senior Member
 
Join Date: Jan 2003
Location: The Netherlands
Posts: 1,884
Rep Power: 48
Lex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really nice

Quote:
but then add 2 Combo-boxes to SRC (left/right) and a gang (stereo link) checkbox (checked by default of corse.
Yes, but that still does not solve the 'multiple ac97 instances issue' I mentioned.

/LeMury
Lex Nahumury is offline   Reply With Quote
Old Mar 4, 2005, 11:34 AM   #10
DriverHeaven Lover
 
Join Date: Sep 2003
Location: Romania
Posts: 123
Rep Power: 0
townkat is on a distinguished road

"Yes, but that still does not solve the 'multiple ac97 instances issue' I mentioned."
Ohh, sorry i forgot, if AC97 or UDA is already used just make it inactive or invisible in combobox (inactive (gray) is better that invisible here so u know is used and not hardware unavailable) and load AC97/UDA code only when its not already in use, but this can be done only if u know how to detect if UDA or AC97 is already used (in other plugin...), cause i dont know how to do this or if it is posible to do it.
__________________
mixy kx plugins
http://www.geocities.com/picacioiu/
townkat is offline   Reply With Quote
Old Mar 4, 2005, 12:51 PM   #11
DH Senior Member
 
Join Date: Jan 2003
Location: The Netherlands
Posts: 1,884
Rep Power: 48
Lex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really nice

Quote:
..but this can be done only if u know how to detect if UDA or AC97 is already used (in other plugin...),
Yep,..that is exactly the 'problem'..!
But even if there is some form of 'plug to plug' notification, which SRC's ac97 instance must be disabled or greyed out???
First, last, second, middle??
Like I said; it's not good to have multiple ac97 accessing plugins active.

/LeMury
Lex Nahumury is offline   Reply With Quote
Old Mar 4, 2005, 01:03 PM   #12
DriverHeaven Lover
 
Join Date: Sep 2003
Location: Romania
Posts: 123
Rep Power: 0
townkat is on a distinguished road

not the instance should be gray-out but the text that make it selectable in combobox.
Let's say i have 2 SRC plugins added in kx dsp. Well, i open 1'st plugin and select "AC97 mic" in combobox, then i open the second SRC plugin, and, when i clik in combobox to see the sources available all AC97 sources are not displayed, or are grayed-out (inactive) so they cannot be selected..
So, the question
"which SRC's ac97 instance must be disabled or greyed out???"
became
"which SRC's ac97 instance must disable or greyed out some options from its source combobox ???"
and the answer is
all except the first one where the AC97/UDA is selected
__________________
mixy kx plugins
http://www.geocities.com/picacioiu/
townkat is offline   Reply With Quote
Old Mar 4, 2005, 01:04 PM   #13
DriverHeaven Maniac
 
thomasabarnes's Avatar
 
Join Date: Jan 2003
Location: USA
Posts: 1,315
Rep Power: 44
thomasabarnes will become famous soon enough
System Specs

Hi LeMury:

Thanks man, for the new plugin! I tried it out, and it's working beautifully with recording Mic and Line In sources onto separate tracks. This was right on time for some kX users. I may even need to use it one day. There's a guy who asked about being able to record Mic and Line In on separate tracks, and I had mentioned that he could get a Y adapter, connect it to Line in and connect his guitar to one female connector and his mic to the other, but now you have solved this problem. Man I'm beginning to think youre a genius. Thanks for your help and work.
__________________

May a song always touch you in a positive way.
Sonar 8 Producer Edition, Vista Ultimate 64Bit, MOTU UltraLite MK3, 250 GB HDD 7200 rpm, 80 GB HDD 7200 rpm, Lite-On DVDRW LH 18A1P
My Music Production: Top 40, Contemporary Christian, Pop/Rock, Decent Rap, Inspirationals, and Children Songs
thomasabarnes is offline   Reply With Quote
Old Mar 4, 2005, 01:41 PM   #14
DH Senior Member
 
Join Date: Jan 2003
Location: The Netherlands
Posts: 1,884
Rep Power: 48
Lex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really nice

Quote:
"which SRC's ac97 instance must be disabled or greyed out???"
became
"which SRC's ac97 instance must disable or greyed out some options from its source combobox ???"
I understood you the first time. Ofcourse I did not mean disable the whole src instance....(duh).
Only it's ac97 part of course.

Quote:
and the answer is
all except the first one where the AC97/UDA is selected
Nah, that's not elegant.
If user would accidently select the wrong SRC instance, all other SRCs ac97 parts get disabled in one blow. User will have to reload all SRCs, or I have to program yet another reset button.
To messy!
Besides, adding the plug 2 plug notification would also be quite messy and not worth the effort.

No, I can't be confinced. Current SRC's AC97 implementation is (although well meant) a design flaw on my part.

/LeMury

Last edited by LeMury; Mar 4, 2005 at 02:06 PM. Reason: typos
Lex Nahumury is offline   Reply With Quote
Old Mar 4, 2005, 01:50 PM   #15
DH Senior Member
 
Join Date: Jan 2003
Location: The Netherlands
Posts: 1,884
Rep Power: 48
Lex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really nice

Quote:
Originally Posted by thomasabarnes
.. and I had mentioned that he could get a Y adapter, connect it to Line in and connect his guitar to one female connector and his mic to the other, but now you have solved this problem.
Thanks Thomas but the 'Y adapter" solution was and still is the best solution
if user has some external gear like a mixer console or diff. preamps.
That is:
Mic->Preamp->L LineIn--\_____LINE_IN
Git->Preamp->R LineIn--/

/LeMury
Lex Nahumury is offline   Reply With Quote
Old Mar 4, 2005, 01:50 PM   #16
DriverHeaven Lover
 
Join Date: Sep 2003
Location: Romania
Posts: 123
Rep Power: 0
townkat is on a distinguished road

hmm.. now i understand wht u dont like...i agree with you on this part but ther should be some solution for this too. . I will think more and if any ideea comes to my head i'll post here.
__________________
mixy kx plugins
http://www.geocities.com/picacioiu/
townkat is offline   Reply With Quote
Old Mar 4, 2005, 02:05 PM   #17
DH Senior Member
 
Join Date: Jan 2003
Location: The Netherlands
Posts: 1,884
Rep Power: 48
Lex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really nice

Quote:
Originally Posted by townkat
hmm.. now i understand wht u dont like...i agree with you on this part but ther should be some solution for this too. . I will think more and if any ideea comes to my head i'll post here.
Ok.Btw; Reason for releasing a separate [AC97] plugin is also (if not only) to make kX (DSP) more understandable for new non-tech users.

There are to many post about people getting send back and forth between
kX Mixer and the DSP Window just to get their Mic to work or be able to hear their guitar.

/LeMury
Lex Nahumury is offline   Reply With Quote
Old Mar 4, 2005, 02:24 PM   #18
DriverHeaven Lover
 
radiocolonel.it's Avatar
 
Join Date: Jan 2005
Location: Italy
Posts: 192
Rep Power: 0
radiocolonel.it is on a distinguished road

Great Job

... It works great with my SB live 5.1 (SB0102) and CT4832.
It's what i was looking for!!! I needed to record both voice and guitar at the same time on two different tracks and there was no way to do it before. This DSP is a really flexible tool! Congratulions for your job LeMury!!!
radiocolonel.it is offline   Reply With Quote
Old Mar 4, 2005, 10:34 PM   #19
DriverHeaven Junior Member
 
Join Date: Feb 2005
Posts: 71
Rep Power: 0
John Lodge is on a distinguished road

Sb0400

Works with the Audigy 2 Value.

Of course the output to speakers with this card still does not work yet with the 3538 beta.

But AC97 input and output to a Windows Application (it is not an ASIO aware app that I am using) worked and continues to do so.

The UDA switch works whereas the switch on the kmixer ac97 page did not.

Good work!!
John Lodge is offline   Reply With Quote
Old Mar 5, 2005, 03:35 AM   #20
DH Senior Member
 
Join Date: Jan 2003
Location: The Netherlands
Posts: 1,884
Rep Power: 48
Lex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really nice

Quote:
Originally Posted by John Lodge
Works with the Audigy 2 Value.
The UDA switch works whereas the switch on the kmixer ac97 page did not.
Good! Thx for reporting this.
Lex Nahumury is offline   Reply With Quote
Old Mar 5, 2005, 05:38 AM   #21
DriverHeaven Junior Member
 
Join Date: Jan 2005
Posts: 37
Rep Power: 0
2ndhannes is on a distinguished road

Quote:
Originally Posted by LeMury
Ok, but does the [AC97] plugin work correctly on your 2ZS?

/LeMury
Oh, sorry for being so imprecise

I meant to say that both work fine with the A2zs - I tried both outputs of the
ac97 part and heard no difference, but since both volumes could be controlled
indepently by the correct sliders, I guess everything is fine...

One thing: the src plugin still has AC97/2 in the list of possible sources. Is this
intended?

Bye,
Hannes
2ndhannes is offline   Reply With Quote
Old Mar 5, 2005, 06:47 AM   #22
kX Lover
 
Samir's Avatar
 
Join Date: Jan 2003
Posts: 521
Rep Power: 0
Samir is on a distinguished road

Quote:
Originally Posted by LeMury
Yes.

/LeMury
PS: what card do you have Samir?
(I have sigs turned off)
I use plain Audigy2, AC97 plugin works smooth as milk! Of course, i tried it without anything else enabled in DSP; AC97, few peaks & k2lt... I've noticed change in Src plugin...

Thanks LeMury!
__________________
MU3NKA 3A HAPO6!
Samir is offline   Reply With Quote
Old Mar 5, 2005, 07:13 AM   #23
DH Senior Member
 
Join Date: Jan 2003
Location: The Netherlands
Posts: 1,884
Rep Power: 48
Lex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really nice

Quote:
Originally Posted by 2ndhannes
I meant to say that both work fine with the A2zs - I tried both outputs of the ac97 part and heard no difference..
The UDA (Philips ADC) is a better codec. It has ~9dB better SNR.
If you connect 2 peaks you'll see;
- AC97 device noise floor ~ -72dB
- UDA device noise floor ~ -82dB
That (and a few other things) is the difference.
Also note that you now can record 4 analog channels simultaniously;
2 from AC97 and 2 from UDA.

Quote:
One thing: the src plugin still has AC97/2 in the list of possible sources. Is this
intended?
Yes and no. I was pressed for time to and had to rewrite SRC quickly.
Since AC97.2(UDA) device is not 'programmed' by SRC the way AC97 device was,
it doesn't conflict in any way to have it there.
I'll (probably) remove it later.

Thanks for reporting back.

/LeMury
Lex Nahumury is offline   Reply With Quote
Old Mar 5, 2005, 07:16 AM   #24
DH Senior Member
 
Join Date: Jan 2003
Location: The Netherlands
Posts: 1,884
Rep Power: 48
Lex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really nice

Quote:
Originally Posted by Samir
I use plain Audigy2, AC97 plugin works smooth as milk! Of course, i tried it without anything else enabled in DSP; AC97, few peaks & k2lt... I've noticed change in Src plugin..
Ok, Good! Thx.

/LeMury
Lex Nahumury is offline   Reply With Quote
Old Mar 5, 2005, 08:13 AM   #25
DH Senior Member
 
Join Date: Jan 2003
Location: The Netherlands
Posts: 1,884
Rep Power: 48
Lex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really nice

Quote:
Originally Posted by townkat
"If you mean only 'All ac97 Analog Input signals', then it is possible on sblive and audigy 1
to program AC97 device to ouput directly to DAC bypassing everything. (ThroughAC97)"
Thats what i mean, its a feature that cant be controled with actual plugins (probably except kx mixer)
Well, on Sblive you *can* use this plugin to do 'ThroughAC97' just as with kX mixer.
(I don't know why it should be usefull but anyway.)

/LeMury
Lex Nahumury is offline   Reply With Quote
Old Mar 5, 2005, 09:36 AM   #26
DriverHeaven Junior Member
 
Join Date: Dec 2003
Location: Australia
Posts: 40
Rep Power: 0
BODYPRINT is on a distinguished road

Used the new plugins to record some guitars today.

Had left out from AC97 and Line/Mic 2 into WinMM Record and it worked great.
The new level control in the AC97 plugin is great.

AC97 gone from SRC, and recorded from UDA out from your new plug.

Thanks LeMury. Top stuff.
BODYPRINT is offline   Reply With Quote
Old Mar 6, 2005, 02:13 AM   #27
Apple Fanboy?
 
dj_stick's Avatar
 
Join Date: Jun 2003
Location: Basement of the first floor
Posts: 16,946
Rep Power: 119
dj_stick has a divinity and aura the likes we have never seendj_stick has a divinity and aura the likes we have never seendj_stick has a divinity and aura the likes we have never seendj_stick has a divinity and aura the likes we have never seendj_stick has a divinity and aura the likes we have never seendj_stick has a divinity and aura the likes we have never seendj_stick has a divinity and aura the likes we have never seendj_stick has a divinity and aura the likes we have never seendj_stick has a divinity and aura the likes we have never seendj_stick has a divinity and aura the likes we have never seendj_stick has a divinity and aura the likes we have never seen
System Specs

one thing i noticed was that the module doesn't appear under the ProFX menu
__________________
Chris - The Aussie Super Mod
Driverheaven Rules - Sig Request Thread

How you can help DriverHeaven by using Digg!

Driverheaven Super-Moderator

Quote:
Originally Posted by OmegaRED View Post
You know, there's "off topic" and then there's so freakin' off topic it you gotta wear a straitjacket to join the conversation.
dj_stick is online now   Reply With Quote
Old Mar 6, 2005, 05:53 AM   #28
DH Senior Member
 
Join Date: Jan 2003
Location: The Netherlands
Posts: 1,884
Rep Power: 48
Lex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really nice

Quote:
Originally Posted by dj_stick
one thing i noticed was that the module doesn't appear under the ProFX menu
That's correct (for the time beeing).
The newer [src] uses same GUID as 'old' src, that's why it automaticly appears under ProFX menu.

/LeMury
Lex Nahumury is offline   Reply With Quote
Old Mar 6, 2005, 07:30 PM   #29
DriverHeaven Junior Member
 
Join Date: Feb 2005
Posts: 71
Rep Power: 0
John Lodge is on a distinguished road

Quote:
Originally Posted by LeMury
Good! Thx for reporting this.
Well after "touching" the mixer AC97 page It no longer works I guess I am used to that. I could probably reinstall but I will wait for the change to the beta to try again.
John Lodge is offline   Reply With Quote
Old Mar 6, 2005, 08:09 PM   #30
DH Senior Member
 
Join Date: Jan 2003
Location: The Netherlands
Posts: 1,884
Rep Power: 48
Lex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really nice

Quote:
Originally Posted by John Lodge
Well after "touching" the mixer AC97 page It no longer works I guess I am used to that. I could probably reinstall but I will wait for the change to the beta to try again.
What do you mean "It no longer works" ? Could you be more specific.

FYI;
kX Mixer AC97 Page and this [AC97] plugin both can access ac97 hardware at the same time of course.

/LeMury
Lex Nahumury is offline   Reply With Quote
Reply

Bookmarks

Thread Tools