Forum > Audio and Video
uos and uoslib version 1.0 is here
Fred vS:
Hello everybody.
I am extremely happy to announce the new version of uos and the birth of the universal uos library...
uos (United Open-libraries of Sound) unifies the best open-source audio libraries.
For that new release, there is a new member : SoundTouch.
That fabulous library can do stretching and pitching of sound (changing tempo without changing rate).
With uos you can:
. Listen to mp3, ogg, wav, flac,... audio files.
. With 16, 32 or float 32 bit resolution.
. Record all types of input into file.
. Add DSP effects and filters, however many you want and record it.
. Listen to multiple inputs and outputs.
uos uses the SoundTouch, PortAudio, SndFile and Mpg123 audio libraries.
For Pascal developers you may use the uos-unit, download source here :
>> https://github.com/fredvs/uos
For all the others (including Pascal developers) you may use the universal uos library :
>> https://github.com/fredvs/uoslib
Nearly all the uos functions/procedures are accessible from the library (but Pascal developers who use the uos-unit can do more things, like custom DSP)..
Here compiled examples using the uos universal library :
>> https://sites.google.com/site/biotray/uoslib_sandro.zip
PS : Till now, there is only a Pascal header but, because uoslib is universal, other headers for foreign languages (C, CNet, Java,...) are super-welcome.
Fred.
Graeme:
Excellent work! :)
metis:
Hi Fred,
really nice work, that will help to a lots of people, to build their own AudioPlayer, but I got some questions: ;D
> For MULTIPLE AudioPlayers, You create several instances of 'Tuos_Player', but this way - afaik - You can't do any submixing with UOS. >:(
So, why don't You simply use Your UOS-In-/OutStreams to implement several Player-In-/Out-Channels within ONE PlayerThread ?
> Is there some reason for only using flat Methods in Your UOS-Classes; why don't You use any ClassProperties instead, where it's appropriate ?
> What's about UOS and higher Resolutions than 32 Float ?
> What's about UOS and higher SampleRates than 48000Hz, like 88200Hz or 96000Hz ?
( At least on my PC (WinXP SP3), UOS works only up to 48000Hz. )
> Why did You deliver a different (and much smaller) LibPortaudio-32.dll-File with Your last UOS-Release ?
( My PortAudio-PlayerApp crashes with this file - why ? ) :(
> How to implement WMA in UOS ?
( I got lots of old (but good ;D ) stuff in WMA8, and don't want to convert them all. )
> And, finally: I think, You mixed up some Code dealing with LowPass/HighPass - but i have to check it out again , if I got some more time. 8-)
But anyway - Thank You for Your work ! :)
altasam
Fred vS:
@ altasam : Whouw, many thanks for that deep analyse...
--- Quote ---> For MULTIPLE AudioPlayers, You create several instances of 'Tuos_Player', but this way - afaik - You can't do any submixing with UOS. >:(
So, why don't You simply use Your UOS-In-/OutStreams to implement several Player-In-/Out-Channels within ONE PlayerThread ?
--- End quote ---
Hum, you put your finger on a sensible thing...
Have you try to use multiple InStreams in only one thread ?
I have try it but after 3 Inputs, my little computer does not synchronize well the input's. So the idea, if you want to mix multiple threads/players, is to create one who use Output of the others as input.
But i agree, submixing must be more developed.
--- Quote ---> Is there some reason for only using flat Methods in Your UOS-Classes; why don't You use any ClassProperties instead, where it's appropriate ?
--- End quote ---
I want that the same uos-unit is working for uoslib too => ClassProperties are used inside uos unit, for universality, final-public procedures have "procedural look".
{EDIT] But if you prefer ClassProperties, no problem, i can easy do it.
In fact, there is a "sub layer" on root uos. I find easier for the end user to not have to declare uos classes in his main application.
But, wel, i will create a "root_uos" and a "flat_uos" units.
--- Quote ---> What's about UOS and higher Resolutions than 32 Float ?
--- End quote ---
Hum, does it exists higher resolution sound-cards than 32 bit float ?
AFAIK, even 32 bit float resolution cards are in fact 24 bit int ...
But if it exists, why not (but i do not think PortAudio does it...)
--- Quote ---> What's about UOS and higher SampleRates than 48000Hz, like 88200Hz or 96000Hz ?
( At least on my PC (WinXP SP3), UOS works only up to 48000Hz. )
--- End quote ---
Hum, uos does it. Try "Simple Player" with a 96 k file, it works.
--- Code: --- InIndex := uos_AddFromFile(PlayerIndex1, pchar(Edit1.Text), -1, samformat, -1);
uos_AddIntoDevOut(PlayerIndex1, -1, -1, uos_InputGetSampleRate(PlayerIndex1, InIndex), -1, samformat, -1);
--- End code ---
--- Quote ---> Why did You deliver a different (and much smaller) LibPortaudio-32.dll-File with Your last UOS-Release ?
( My PortAudio-PlayerApp crashes with this file - why ? ) :(
--- End quote ---
Ooops, it is the stripped version of Portaudio.dll. In my Windows 7, it works.
But if there are problems with other Windows version, of course i will give a other. By the way, have you a Portaudio.dll that works on your system ?
I may give this one then (if you give it as attachment).
--- Quote ---> How to implement WMA in UOS ?
( I got lots of old (but good ;D ) stuff in WMA8, and don't want to convert them all. )
--- End quote ---
WMA is not open source. Legal-free-open-source libraries for WMA do not exist. :-X
--- Quote --- And, finally: I think, You mixed up some Code dealing with LowPass/HighPass - but i have to check it out again , if I got some more time. 8-)
--- End quote ---
Yep, nice that you have noted it and, many, many thanks for the pull you will give on uos GitHub. ;)
Cheers
Fred.
Fred vS:
--- Quote ---You can't do any submixing with UOS.
--- End quote ---
Hum, only by curiosity, what do you mean by "submixing".
Do you mean mixing all the inputs into one ?
For recording i guess ?
Thanks.
Navigation
[0] Message Index
[#] Next page