Difference between revisions of "uos"

From Free Pascal wiki
Jump to navigationJump to search
Line 23: Line 23:
  
 
----
 
----
 
  
 
'''uos''' uses the SoundTouch, PortAudio, SndFile and Mpg123 audio libraries.
 
'''uos''' uses the SoundTouch, PortAudio, SndFile and Mpg123 audio libraries.
Line 32: Line 31:
  
 
http://github.com/fredvs/uos/
 
http://github.com/fredvs/uos/
 
  
 
----
 
----
Line 44: Line 42:
  
 
http://github.com/fredvs/uoslib/
 
http://github.com/fredvs/uoslib/
 
  
 
----
 
----
  
The best way to show how uos works is to look at the examples in uos package.
+
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...
 
All is included, you only have to compile the demos and run it...
  
Line 55: Line 52:
 
First : add ''uos'' in your uses section. (for uoslib add ''uoslib_h'')
 
First : add ''uos'' in your uses section. (for uoslib add ''uoslib_h'')
  
Then load libraries with:
+
Then load libraries:
  
uos_LoadLib(PortAudioFileName, SndFileFileName, Mpg123FileName, SoundTouchFileName);
+
For uos:
 +
    uos_LoadLib(PortAudioFileName, SndFileFileName, Mpg123FileName, SoundTouchFileName); /// full path of libraries
 
          
 
          
 
+
For uoslib:
(For uoslib : uos_LoadLibs(uoslibFilename, PortAudioFileName, SndFileFileName, Mpg123FileName, SoundTouchFileName);)  
+
    uos_LoadLibs(uoslibFilename, PortAudioFileName, SndFileFileName, Mpg123FileName, SoundTouchFileName);)  
 
                
 
                
-Let's play a sound file...
+
=> Let's play a sound file...
  
 
Create the player :
 
Create the player :
 
 
     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 71: Line 68:
  
 
And lets play it...
 
And lets play it...
 
 
   uos_Play(0);                        //// Play the song...
 
   uos_Play(0);                        //// Play the song...
  
-Let's play a sound file with some dsp effect (only for uos, in future for uoslib too):
 
  
First create the player :
+
=> Let's play a sound file with some dsp effect (only for uos, in future for uoslib too):
  
 +
First create the player:
 
   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 85: Line 81:
  
 
And lets play it...
 
And lets play it...
 
 
     uos_Play(0);      //// Play the song with DSP effect...
 
     uos_Play(0);      //// Play the song with DSP effect...
  
  
-Listen to your mic into your loudspeakers (for uoslib too) :
+
=> Listen to your mic into your loudspeakers (for uoslib too) :
  
 
Create the player:
 
Create the player:
 
 
     uos_CreatePlayer(0); /// you may create how many players you want, from 0 to what you computer can do...
 
     uos_CreatePlayer(0); /// you may create how many players you want, from 0 to what you computer can do...
 
     uos_AddIntoDevOut(0) ;  //// Add Output with default parameters     
 
     uos_AddIntoDevOut(0) ;  //// Add Output with default parameters     
Line 98: Line 92:
  
 
And lets play it...
 
And lets play it...
 
 
     uos_Play(0);              //// Listen to your mic in your loudspeakers...
 
     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:
+
=> Now, ear your mic, listen to a mp3, apply some effects and record the mic into wav file at same time:
 
 
Create the player :
 
  
 +
Create the player:
 
   uos_CreatePlayer(0); /// you may create how many players you want, from 0 to ...
 
   uos_CreatePlayer(0); /// you may create how many players you want, from 0 to ...
 
   uos_AddIntoDevOut(0) ;              //// Output into OUT Device
 
   uos_AddIntoDevOut(0) ;              //// Output into OUT Device
Line 117: Line 109:
  
 
And lets play it...
 
And lets play it...
 
 
   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 together with recording
 
   uos_Play(1);        //// Listen to mp3 together with recording
  
 +
__________________________________________________________________________________________________
  
 
Here are the basic uos procedures :
 
Here are the basic uos procedures :

Revision as of 20:27, 26 February 2014

uos (United OpenLib of Sound).


uoslogo.png

uos unifies the best open-source audio libraries.



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.

Included in the package: Examples and binary libraries for Linux 32/64, Windows 32/64, Mac OSX 32.

http://fredvs.github.io/uos/

http://github.com/fredvs/uos/


uoslib is the Universal Library version of uos unit. That library is accessible for 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.

http://fredvs.github.io/uoslib/

http://github.com/fredvs/uoslib/


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 :

First : add uos in your uses section. (for uoslib add uoslib_h)

Then load libraries:

For uos:

   uos_LoadLib(PortAudioFileName, SndFileFileName, Mpg123FileName, SoundTouchFileName); /// full path of libraries
       

For uoslib:

   uos_LoadLibs(uoslibFilename, PortAudioFileName, SndFileFileName, Mpg123FileName, SoundTouchFileName);) 
             

=> Let's play a sound file...

Create the player :

   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 lets play it...

  uos_Play(0);                         //// Play the song...


=> Let's play a sound file with some dsp effect (only for uos, in future for uoslib too):

First create the player:

 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 
 uos_AddDSPIn(0,1);                  //// Add how many dsp you want
 uos_AddDSPIn(0,2);

And lets play it...

   uos_Play(0);      //// Play the song with DSP effect...


=> Listen to your mic into your loudspeakers (for uoslib too) :

Create the player:

   uos_CreatePlayer(0); /// you may create how many players you want, from 0 to what you computer can do...
   uos_AddIntoDevOut(0) ;   //// Add Output with default parameters     
   uos_AddFromDevIn(0) ;   //// Input from IN Device

And lets play it...

   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:

Create the player:

  uos_CreatePlayer(0); /// you may create how many players you want, from 0 to ...
  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 how many dsp you want
  uos_AddDSPIn(0,2)
  uos_CreatePlayer(1);
  uos_AddFromFile(1,'MySong.mp3')    //// the background audio file
  uos_AddIntoDevOut(1) ;               //// Output into OUT Device;

And lets play it...

  uos_Play(0);                         //// Listen your mic with DSP effects and record it ...
  uos_Play(1);        //// Listen to mp3 together with recording

__________________________________________________________________________________________________

Here are the basic uos procedures : Each procedure has his equivalent with arguments for custom parameters...

Quote

   Init Procedures :
   uos_LoadLib; (uos_LoadLibs for uoslib)        //// Load dynamic libraries
   uos_UnLoadLib;
   Output Procedures:
   uos_AddIntoDevOut();         //// Output into OUT Device
   uos_AddIntoFile();           //// Output into Wav File
   Input Procedures:
   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 Procedures:   
   uos_Play;                    //// Start playing
   uos_RePlay;                  //// Resume playing after pause
   uos_Stop;                    //// Stop playing and free thread
   uos_Pause;                   //// Pause playing
   
   DSP Procedures :                 
   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...)