Difference between revisions of "uos"
Line 35: | Line 35: | ||
** ''uos'' => The application must declare uos class and variables. The procedures can be used as oop way. | ** ''uos'' => The application must declare uos class and variables. The procedures can be used as oop way. | ||
* All the examples in uos packages uses ''uos_flat''. There is a example using ''uos'' => SimplePlayer_noflat | * All the examples in uos packages uses ''uos_flat''. There is a example using ''uos'' => SimplePlayer_noflat | ||
− | |||
− | |||
− | |||
− | |||
− | |||
Play a file 'MySong.mp3' | Play a file 'MySong.mp3' | ||
<syntaxhighlight> | <syntaxhighlight> | ||
− | + | begin | |
+ | uos_LoadLibs( uoslibFilename, PortAudioFileName, SndFileFileName, Mpg123FileName, Mp4ffFileName, FaadFileName ); | ||
uos_CreatePlayer( 0 ); // you may create how many players you want, from 0 to to what you computer can do... | uos_CreatePlayer( 0 ); // you may create how many players you want, from 0 to to what you computer can do... | ||
uos_AddIntoDevOut( 0 ); // Add Output with default parameters | uos_AddIntoDevOut( 0 ); // Add Output with default parameters | ||
Line 49: | Line 45: | ||
// And let's play it... | // And let's play it... | ||
uos_Play(0); // Play the song... | uos_Play(0); // Play the song... | ||
+ | end; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Play a sound file with some dsp effects (only for uos, in future for uoslib too): | Play a sound file with some dsp effects (only for uos, in future for uoslib too): | ||
<syntaxhighlight> | <syntaxhighlight> | ||
+ | begin | ||
+ | uos_LoadLib( PortAudioFileName, SndFileFileName, Mpg123FileName, Mp4ffFileName, FaadFileName ); | ||
uos_CreatePlayer( 0 ); // First create the player: | uos_CreatePlayer( 0 ); // First create the player: | ||
uos_AddIntoDevOut( 0 ); // Add Output with default parameters | uos_AddIntoDevOut( 0 ); // Add Output with default parameters | ||
Line 59: | Line 58: | ||
uos_AddDSPIn( 0, 2 ); | uos_AddDSPIn( 0, 2 ); | ||
uos_Play( 0 ); // Play the song with DSP effect... | uos_Play( 0 ); // Play the song with DSP effect... | ||
+ | end; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Listen to your mic into your loudspeakers (for uoslib too) : | Listen to your mic into your loudspeakers (for uoslib too) : | ||
<syntaxhighlight> | <syntaxhighlight> | ||
+ | begin | ||
+ | uos_LoadLib( PortAudioFileName, SndFileFileName, Mpg123FileName, Mp4ffFileName, FaadFileName ); | ||
uos_CreatePlayer( 0 ); | uos_CreatePlayer( 0 ); | ||
uos_AddIntoDevOut( 0 ); | uos_AddIntoDevOut( 0 ); | ||
Line 71: | Line 73: | ||
Now, ear your mic, listen to a mp3, apply some effects and record the mic into wav file at same time: | Now, ear your mic, listen to a mp3, apply some effects and record the mic into wav file at same time: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | begin | ||
+ | uos_LoadLib( PortAudioFileName, SndFileFileName, Mpg123FileName, Mp4ffFileName, FaadFileName ); | ||
uos_CreatePlayer( 0 ); | uos_CreatePlayer( 0 ); | ||
uos_AddIntoDevOut( 0 ) ; // Output into OUT Device | uos_AddIntoDevOut( 0 ) ; // Output into OUT Device | ||
Line 83: | Line 87: | ||
uos_Play(0); // Listen your mic with DSP effects and record it ... | uos_Play(0); // Listen your mic with DSP effects and record it ... | ||
uos_Play(1); // Listen to mp3 while recording | uos_Play(1); // Listen to mp3 while recording | ||
+ | end; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 89: | Line 94: | ||
Initialization Procedures: | Initialization Procedures: | ||
− | uos_LoadLib | + | uos_LoadLib( ); // Load dynamic libraries for uos |
− | uos_UnLoadLib; | + | uos_LoadLibs( ); // Load dynamic libraries for uoslibs |
+ | uos_UnLoadLib(); | ||
Output | Output | ||
uos_AddIntoDevOut(); // Output into OUT Device | uos_AddIntoDevOut(); // Output into OUT Device | ||
Line 101: | Line 107: | ||
uos_Seek(); // Change position | uos_Seek(); // Change position | ||
Player | Player | ||
− | uos_Play(); | + | uos_Play(); // Start playing |
− | uos_RePlay(); | + | uos_RePlay(); // Resume playing after pause |
− | uos_Stop(); | + | uos_Stop(); // Stop playing and free thread |
− | uos_Pause(); | + | uos_Pause(); // Pause playing |
DSP | DSP | ||
uos_AddDSPIn() // DSP procedure for input | uos_AddDSPIn() // DSP procedure for input |
Revision as of 00:35, 20 July 2016
uos (United OpenLib of Sound) is a multi-platform package of audio handling routines that unifies the best open-source audio libraries.
Features
- play .mp3, .ogg, .wav, .flac, .m4a and cdrom audio files.
- 16, 32 or float 32 bit resolution
- record all types of input into file, in 16 or 32 bit resolution, mono or stereo.
- add DSP effects and filters, however many you want and record it.
- play multiple inputs and outputs simultaneously
- internet audio streaming
Uos can use the SoundTouch, PortAudio, SndFile, Mpg123, Faad and Mp4ff audio libraries.
Included in the package: Examples and binary libraries for Linux 32/64, Windows 32/64, Mac OSX 32 and FreeBSD 32/64.
Download
uoslib
uoslib is the Universal Library version of uos unit and is accessible from Pascal and all other languages (C, Java, ...)
Included in the package: Examples and binary libraries for Linux 32/64, Windows 32/64, Mac OSX 32 and FreeBSD 32/64.
Install
The best way to show how uos works is to look at the examples in uos/uoslib packages. All is included, you only have to compile the demos and run it...
Here some examples how to use uos :
- Copy all the files in /uos/src/ into the directory of your project.
- add uos_flat or uos in your uses section. (for uoslib add uoslib_h)
- uos_flat => All is done by the unit. The procedures are more "universal", same syntax as uoslib.
- uos => The application must declare uos class and variables. The procedures can be used as oop way.
- All the examples in uos packages uses uos_flat. There is a example using uos => SimplePlayer_noflat
Play a file 'MySong.mp3'
begin
uos_LoadLibs( uoslibFilename, PortAudioFileName, SndFileFileName, Mpg123FileName, Mp4ffFileName, FaadFileName );
uos_CreatePlayer( 0 ); // you may create how many players you want, from 0 to to what you computer can do...
uos_AddIntoDevOut( 0 ); // Add Output with default parameters
uos_AddFromFile( 0, 'MySong.mp3' ); // Input from audio file
// And let's play it...
uos_Play(0); // Play the song...
end;
Play a sound file with some dsp effects (only for uos, in future for uoslib too):
begin
uos_LoadLib( PortAudioFileName, SndFileFileName, Mpg123FileName, Mp4ffFileName, FaadFileName );
uos_CreatePlayer( 0 ); // First create the player:
uos_AddIntoDevOut( 0 ); // Add Output with default parameters
uos_AddFromFile( 0, 'MySong.mp3' ); // Input from audio file
uos_AddDSPIn( 0, 1 ); // Add as many dsp effects you want
uos_AddDSPIn( 0, 2 );
uos_Play( 0 ); // Play the song with DSP effect...
end;
Listen to your mic into your loudspeakers (for uoslib too) :
begin
uos_LoadLib( PortAudioFileName, SndFileFileName, Mpg123FileName, Mp4ffFileName, FaadFileName );
uos_CreatePlayer( 0 );
uos_AddIntoDevOut( 0 );
uos_AddFromDevIn( 0 ); // Input from IN Device
uos_Play( 0 ); // Listen to your mic in your loudspeakers...
Now, ear your mic, listen to a mp3, apply some effects and record the mic into wav file at same time: </syntaxhighlight> begin
uos_LoadLib( PortAudioFileName, SndFileFileName, Mpg123FileName, Mp4ffFileName, FaadFileName ); uos_CreatePlayer( 0 ); uos_AddIntoDevOut( 0 ) ; // Output into OUT Device uos_AddIntoFile( 0, 'Myrecord.wav' ); // Output into OUT Device uos_AddFromDevIn( 0 ); // Input from IN Device uos_AddDSPIn( 0, 1 ); // Add as many dsp's you want uos_AddDSPIn( 0, 2 ); uos_CreatePlayer( 1 ); uos_AddFromFile( 1, 'MySong.mp3' ); // the background audio file uos_AddIntoDevOut( 1 ) ; // Output into OUT1 Device;
uos_Play(0); // Listen your mic with DSP effects and record it ... uos_Play(1); // Listen to mp3 while recording
end; </syntaxhighlight>
Syntax
Here are the basic uos procedures. Each procedure has its equivalent with arguments for custom parameters.
Initialization Procedures:
uos_LoadLib( ); // Load dynamic libraries for uos uos_LoadLibs( ); // Load dynamic libraries for uoslibs uos_UnLoadLib();
Output
uos_AddIntoDevOut(); // Output into OUT Device uos_AddIntoFile(); // Output into Wav File
Input
uos_AddFromDevIn(); // Input from IN device uos_AddFromFile(); // Input from Audio File uos_InputLength(); // Lenght of Input in samples uos_InputPosition(); // Get position uos_Seek(); // Change position
Player
uos_Play(); // Start playing uos_RePlay(); // Resume playing after pause uos_Stop(); // Stop playing and free thread uos_Pause(); // Pause playing
DSP
uos_AddDSPIn() // DSP procedure for input uos_AddDSPOut() // DSP procedure for output uos_SetDSPin() // Set DSP In uos_SetDSPout() // Set DSP out uos_SetDSPVolumeIn(...) // Set Volume uos_AddFilterIn(...) // Add filer uos_AddPlugin(...) // Add pluggin
And much more other procedures/functions (see in uos.pas...)