Forum > Audio and Video

uos and uoslib version 1.0 is here

(1/5) > >>

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

Go to full version