diff --git a/.zfproject.xml b/.zfproject.xml
index cffca41f9..c9da28565 100644
--- a/.zfproject.xml
+++ b/.zfproject.xml
@@ -100,6 +100,10 @@
+
+
+
+
@@ -325,6 +329,12 @@
+
+
+
+
+
+
@@ -370,6 +380,7 @@
+
diff --git a/LICENSE_3RD_PARTY b/LICENSE_3RD_PARTY
index e616578a1..9a89df2d2 100644
--- a/LICENSE_3RD_PARTY
+++ b/LICENSE_3RD_PARTY
@@ -28,6 +28,10 @@ Linked code:
- Note: Only used for development, not needed to run Airtime.
- License: LGPLv3
+ * Soundcloud php api wrapper
+ - https://github.com/mptre/php-soundcloud/blob/master/Services/Soundcloud.php
+ - License: MIT
+
----------------
Non-linked code:
----------------
diff --git a/application/configs/ACL.php b/application/configs/ACL.php
index e6fd9c72e..26f1905b3 100644
--- a/application/configs/ACL.php
+++ b/application/configs/ACL.php
@@ -21,7 +21,8 @@ $ccAcl->add(new Zend_Acl_Resource('library'))
->add(new Zend_Acl_Resource('nowplaying'))
->add(new Zend_Acl_Resource('search'))
->add(new Zend_Acl_Resource('dashboard'))
- ->add(new Zend_Acl_Resource('preference'));
+ ->add(new Zend_Acl_Resource('preference'))
+ ->add(new Zend_Acl_Resource('recorder'));
/** Creating permissions */
$ccAcl->allow('G', 'index')
@@ -29,13 +30,13 @@ $ccAcl->allow('G', 'index')
->allow('G', 'error')
->allow('G', 'nowplaying')
->allow('G', 'api')
+ ->allow('G', 'recorder')
->allow('G', 'schedule')
->allow('G', 'dashboard')
->allow('H', 'library')
->allow('H', 'search')
->allow('H', 'plupload')
->allow('H', 'playlist')
- ->allow('H', 'sideplaylist')
->allow('A', 'user')
->allow('A', 'preference');
diff --git a/application/controllers/RecorderController.php b/application/controllers/RecorderController.php
new file mode 100644
index 000000000..1f33beb93
--- /dev/null
+++ b/application/controllers/RecorderController.php
@@ -0,0 +1,32 @@
+_helper->getHelper('contextSwitch');
+ $ajaxContext->addActionContext('get-show-schedule', 'json')
+ ->initContext();
+ }
+
+ public function indexAction()
+ {
+ // action body
+ }
+
+ public function getShowScheduleAction()
+ {
+ //$from = $this->_getParam("from");
+ //$to = $this->_getParam("to");
+
+ $today_timestamp = date("Y-m-d H:i:s");
+
+ $this->view->shows = Show::getShows($today_timestamp, null, $excludeInstance=NULL, $onlyRecord=TRUE);
+ }
+
+
+}
+
+
+
diff --git a/application/controllers/ScheduleController.php b/application/controllers/ScheduleController.php
index 2a071ec78..e589f7fe9 100644
--- a/application/controllers/ScheduleController.php
+++ b/application/controllers/ScheduleController.php
@@ -188,7 +188,7 @@ class ScheduleController extends Zend_Controller_Action
$this->view->showContent = $show->getShowContent();
$this->view->timeFilled = $show->getTimeScheduled();
- $this->view->percentFilled = $show->getPercentScheduledInRange();
+ $this->view->percentFilled = $show->getPercentScheduled();
$this->view->chosen = $this->view->render('schedule/scheduled-content.phtml');
unset($this->view->showContent);
@@ -237,7 +237,7 @@ class ScheduleController extends Zend_Controller_Action
$this->view->showContent = $show->getShowContent();
$this->view->timeFilled = $show->getTimeScheduled();
- $this->view->percentFilled = $show->getPercentScheduledInRange();
+ $this->view->percentFilled = $show->getPercentScheduled();
$this->view->chosen = $this->view->render('schedule/scheduled-content.phtml');
unset($this->view->showContent);
}
@@ -268,7 +268,7 @@ class ScheduleController extends Zend_Controller_Action
$this->view->timeFilled = $show->getTimeScheduled();
$this->view->showName = $show->getName();
$this->view->showLength = $show->getShowLength();
- $this->view->percentFilled = $show->getPercentScheduledInRange();
+ $this->view->percentFilled = $show->getPercentScheduled();
$this->view->s_wday = $dateInfo_s['weekday'];
$this->view->s_month = $dateInfo_s['month'];
diff --git a/application/controllers/plugins/Acl_plugin.php b/application/controllers/plugins/Acl_plugin.php
index b0f0dd029..e3682ba11 100644
--- a/application/controllers/plugins/Acl_plugin.php
+++ b/application/controllers/plugins/Acl_plugin.php
@@ -110,10 +110,11 @@ class Zend_Controller_Plugin_Acl extends Zend_Controller_Plugin_Abstract
{
$controller = strtolower($request->getControllerName());
- if ($controller == 'api'){
- $this->setRoleName("G");
-
- } else if (!Zend_Auth::getInstance()->hasIdentity()){
+ if ($controller == 'api' || $controller == 'recorder'){
+
+ $this->setRoleName("G");
+ }
+ else if (!Zend_Auth::getInstance()->hasIdentity()){
if ($controller !== 'login') {
diff --git a/application/models/Nowplaying.php b/application/models/Nowplaying.php
index c0325dc9d..5602945f6 100644
--- a/application/models/Nowplaying.php
+++ b/application/models/Nowplaying.php
@@ -2,92 +2,91 @@
class Application_Model_Nowplaying
{
- /*
- public static function InsertBlankRow($i, $rows){
- $startDateFull = $rows[$i-1][3];
- $endDateFull = $rows[$i][2];
- $startDate = explode(".", $startDateFull);
- $endDate = explode(".", $endDateFull);
+ public static function FindBeginningOfShow($rows){
+ $numRows = count($rows);
- $epochStartMS = strtotime($startDate[0])*1000;
- $epochEndMS = strtotime($endDate[0])*1000;
+ $newCopy = array();
- if (count($startDate) > 1)
- $epochStartMS += $startDate[1];
- if (count($endDate) > 1)
- $epochEndMS += $endDate[1];
+ for ($i=0; $i<$numRows; $i++){
+ $currentRow = $rows[$i];
+ if ($i == 0 || ($i != 0 && $currentRow['instance_id'] != $rows[$i-1]['instance_id'])){
+ //$currentRow is first instance of a show.
+ $group = $currentRow;
+ $group['group'] = 'x';
+ $group['item_starts'] = $group['show_starts'];
+ $group['item_ends'] = $group['show_ends'];
- $blankRow = array(array("b", $startDateFull, $startDateFull, $endDate, Application_Model_DateHelper::ConvertMSToHHMMSSmm($epochEndMS - $epochStartMS), "-", "-", "-", "-" , "-", "", ""));
- array_splice($rows, $i, 0, $blankRow);
- return $rows;
- }
-
- public static function FindGaps($rows){
- $n = count($rows);
-
- $blankRowIndices = array();
- $arrayIndexOffset = 0;
-
- if ($n < 2)
- return $rows;
-
- for ($i=1; $i<$n; $i++){
- if ($rows[$i-1][3] != $rows[$i][2])
- array_push($blankRowIndices, $i);
+ array_push($newCopy, $group);
+ }
+ array_push($newCopy, $currentRow);
}
- for ($i=0, $n=count($blankRowIndices); $i<$n; $i++){
- $rows = Application_Model_Nowplaying::InsertBlankRow($blankRowIndices[$i]+$arrayIndexOffset, $rows);
- $arrayIndexOffset++;
- }
-
- return $rows;
+ return $newCopy;
}
- */
-
-/*
- public static function FindGapsBetweenShows($showsMap){
+ public static function FindGapAtEndOfShow($rows){
+ $numRows = count($rows);
- $previousShow = null;
- foreach($showsMap as $k => $show){
- $currentShow = $showsMap[$k];
+ $newCopy = array();
- if (!is_null($previousShow)){
- $diff = strtotime($currentShow['starts']) - strtotime($previousShow['ends'])
- if ($$diff != 0){
- //array_splice($showsMap, $i, 0, $blankRow);
+ for ($i=0; $i<$numRows; $i++){
+ $currentRow = $rows[$i];
+ array_push($newCopy, $currentRow);
+ if ($i+1 == $numRows || ($i+1 !=$numRows && $currentRow['instance_id'] != $rows[$i+1]['instance_id'])){
+ //$row is the last instance in the show.
+ if ($currentRow['item_ends'] == ""){
+ //show is empty and has no scheduled items in it. Therefore
+ //the gap is the entire length of the show.
+ $currentRow['item_ends'] = $currentRow['show_starts'];
+ }
+
+ $diff = strtotime($currentRow['show_ends']) - strtotime($currentRow['item_ends']);
+ if ($diff > 0){
+ //gap at the end of show. Lets create a "gap" row
+ $gap = $currentRow;
+ $gap['gap'] = '';
+ $gap['item_starts'] = $diff;
+
+ array_push($newCopy, $gap);
}
}
-
- $previousShow = $showsMap[$k];
}
-
- return $showsMap;
+ return $newCopy;
}
-*/
- public static function FindGapAtEndOfShow($show, $rows){
- $showStartTime = $show['starts'];
- $showEndTime = $show['ends'];
- if (count($rows) > 1){
- $lastItem = $rows[count($rows)-1];
- $lastItemEndTime = $lastItem['ends'];
- } else {
- $lastItemEndTime = $showStartTime;
+ public static function FilterRowsByDate($rows, $date, $startCutoff, $endCutoff){
+ $dateNow = new Application_Model_DateHelper;
+ $timeNow = $dateNow->getDate();
+
+ $data = array();
+ //iterate over each show, and calculate information for it.
+ $numItems = count($rows);
+ for ($i=0; $i<$numItems; $i++){
+ $item = $rows[$i];
+
+ if ((strtotime($item['item_ends']) > $date->getEpochTime() - $startCutoff
+ && strtotime($item['item_starts']) < $date->getEpochTime() + $endCutoff) || array_key_exists("group", $item) || array_key_exists("gap", $item)){
+
+ if (array_key_exists("group", $item)){
+ $type = "g";
+ } else if (array_key_exists("gap", $item)){
+ $type = "b";
+ } else if (strtotime($item['item_ends']) < strtotime($timeNow)){
+ $type = "p";
+ } else if (strtotime($item['item_starts']) < strtotime($timeNow) && strtotime($timeNow) < strtotime($item['item_ends'])
+ && strtotime($item['show_starts']) < strtotime($timeNow) && strtotime($timeNow) < strtotime($item['show_ends'])){
+ $type = "c";
+ } else {
+ $type = "n";
+ }
+
+ array_push($data, array($type, $item["item_starts"], $item["item_starts"], $item["item_ends"], $item["clip_length"], $item["track_title"], $item["artist_name"], $item["album_title"], $item["playlist_name"], $item["show_name"], $item["instance_id"]));
+ }
}
- $diff = Application_Model_DateHelper::TimeDiff($lastItemEndTime, $showEndTime);
-
- if ($diff <= 0){
- //ok!
- return null;
- } else {
- //There is a gap at the end of the show. Return blank row
- return array("b", $diff, "-", "-", "-", "-", "-", "-", "-", "-", "-", "-");
- }
+ return $data;
}
public static function GetDataGridData($viewType, $dateString){
@@ -105,44 +104,19 @@ class Application_Model_Nowplaying
$timeNow = $date->getDate();
$startCutoff = $date->getNowDayStartDiff();
- $endCutoff = $date->getNowDayEndDiff();
+ $endCutoff = $date->getNowDayEndDiff();
}
- $showsMap = Show_DAL::GetShowsInRange($timeNow, $startCutoff, $endCutoff);
+ $rows = Show_DAL::GetShowsInRange($timeNow, $startCutoff, $endCutoff);
+ $rows = Application_Model_Nowplaying::FindBeginningOfShow($rows);
+ $rows = Application_Model_Nowplaying::FindGapAtEndOfShow($rows);
+ //$rows = FindGapsBetweenShows
+ $data = Application_Model_Nowplaying::FilterRowsByDate($rows, $date, $startCutoff, $endCutoff);
- //iterate over each show, and calculate information for it.
- foreach($showsMap as $k => $show){
- $rows = Schedule::GetShowInstanceItems($k);
- $gapRow = Application_Model_Nowplaying::FindGapAtEndOfShow($showsMap[$k], $rows);
- foreach ($rows as $item){
- //check if this item is in todays date range
- if (strtotime($item['ends']) > $date->getEpochTime() - $startCutoff
- && strtotime($item['starts']) < $date->getEpochTime() + $endCutoff){
- if ($item['ends'] < $timeNow){
- $type = "p";
- } else if ($item['starts'] < $timeNow && $timeNow < $item['ends']){
- $type = "c";
- } else {
- $type = "n";
- }
-
- array_push($showsMap[$k]['items'], array($type, $item["starts"], $item["starts"], $item["ends"], $item["clip_length"], $item["track_title"], $item["artist_name"],
- $item["album_title"], $item["name"], $item["show_name"], $item["instance_id"], $item["group_id"]));
- }
- }
-
- if (!is_null($gapRow))
- array_push($showsMap[$k]['items'], $gapRow);
- }
-
- //$showsMap = Application_Model_Nowplaying::FindGapsBetweenShows($showsMap);
-
-
$date = new Application_Model_DateHelper;
$timeNow = $date->getDate();
-
- return array("currentShow"=>Show_DAL::GetCurrentShow($timeNow), "rows"=>$showsMap);
+ return array("currentShow"=>Show_DAL::GetCurrentShow($timeNow), "rows"=>$data);
}
}
diff --git a/application/models/Schedule.php b/application/models/Schedule.php
index f515327e1..ad8d24d3a 100644
--- a/application/models/Schedule.php
+++ b/application/models/Schedule.php
@@ -278,12 +278,11 @@ class Schedule {
return ($count == '0');
}
- public static function getTimeUnScheduledInRange($s_datetime, $e_datetime) {
+ public static function getTimeUnScheduledInRange($instance_id, $s_datetime, $e_datetime) {
global $CC_CONFIG, $CC_DBC;
- $sql = "SELECT SUM(clip_length) FROM ".$CC_CONFIG["scheduleTable"]."
- WHERE (starts >= '{$s_datetime}')
- AND (ends <= '{$e_datetime}')";
+ $sql = "SELECT SUM(clip_length) FROM $CC_CONFIG[scheduleTable]"
+ ." WHERE instance_id = $instance_id";
$time = $CC_DBC->GetOne($sql);
@@ -313,6 +312,20 @@ class Schedule {
return $res;
}
+
+ public static function GetTotalShowTime($instance_id) {
+ global $CC_CONFIG, $CC_DBC;
+
+ $sql = "SELECT SUM(clip_length) FROM $CC_CONFIG[scheduleTable]"
+ ." WHERE instance_id = $instance_id";
+
+ $res = $CC_DBC->GetOne($sql);
+
+ if(is_null($res))
+ return 0;
+
+ return $res;
+ }
public static function getPercentScheduledInRange($s_datetime, $e_datetime) {
@@ -337,6 +350,25 @@ class Schedule {
return $percent;
}
+ public static function GetPercentScheduled($instance_id, $s_datetime, $e_datetime){
+ $time = Schedule::GetTotalShowTime($instance_id);
+
+ $s_epoch = strtotime($s_datetime);
+ $e_epoch = strtotime($e_datetime);
+
+ $con = Propel::getConnection(CcSchedulePeer::DATABASE_NAME);
+ $sql = "SELECT EXTRACT(EPOCH FROM INTERVAL '{$time}')";
+ $r = $con->query($sql);
+ $i_epoch = $r->fetchColumn(0);
+
+ $percent = ceil(($i_epoch / ($e_epoch - $s_epoch)) * 100);
+
+ if ($percent > 100)
+ $percent = 100;
+
+ return $percent;
+ }
+
/**
* Return TRUE if file is going to be played in the future.
@@ -490,7 +522,8 @@ class Schedule {
." WHERE st.playlist_id = pt.id"
." AND st.file_id = ft.id"
." AND st.instance_id = si.id"
- ." AND si.show_id = show.id";
+ ." AND si.show_id = show.id"
+ ." AND st.starts < si.ends";
if ($timePeriod < 0){
$sql .= " AND st.ends < TIMESTAMP '$timeStamp'"
diff --git a/application/models/Shows.php b/application/models/Shows.php
index 065328d02..993c5e84f 100644
--- a/application/models/Shows.php
+++ b/application/models/Shows.php
@@ -175,15 +175,26 @@ class Show {
Show::populateShowUntilLastGeneratedDate($showId);
}
- public static function getShows($start_timestamp, $end_timestamp, $excludeInstance=NULL) {
+ public static function getShows($start_timestamp, $end_timestamp, $excludeInstance=NULL, $onlyRecord=FALSE) {
global $CC_DBC;
$sql = "SELECT starts, ends, show_id, name, description, color, background_color, cc_show_instances.id AS instance_id
FROM cc_show_instances
- LEFT JOIN cc_show ON cc_show.id = cc_show_instances.show_id
- WHERE ((starts >= '{$start_timestamp}' AND starts < '{$end_timestamp}')
+ LEFT JOIN cc_show ON cc_show.id = cc_show_instances.show_id";
+
+ //only want shows that are starting at the time or later.
+ if($onlyRecord) {
+
+ $sql = $sql." WHERE (starts >= '{$start_timestamp}' AND starts < timestamp '{$start_timestamp}' + interval '2 hours')";
+ $sql = $sql." AND (record = TRUE)";
+ }
+ else {
+
+ $sql = $sql." WHERE ((starts >= '{$start_timestamp}' AND starts < '{$end_timestamp}')
OR (ends > '{$start_timestamp}' AND ends <= '{$end_timestamp}')
OR (starts <= '{$start_timestamp}' AND ends >= '{$end_timestamp}'))";
+ }
+
if(isset($excludeInstance)) {
foreach($excludeInstance as $instance) {
@@ -196,7 +207,6 @@ class Show {
}
//echo $sql;
-
return $CC_DBC->GetAll($sql);
}
@@ -446,6 +456,10 @@ class ShowInstance {
return $showInstance->getDbShowId();
}
+ public function getShowInstanceId() {
+ return $this->_instanceId;
+ }
+
public function getName() {
$show = CcShowQuery::create()->findPK($this->getShowId());
return $show->getDbName();
@@ -625,11 +639,8 @@ class ShowInstance {
}
public function getTimeScheduled() {
-
- $start_timestamp = $this->getShowStart();
- $end_timestamp = $this->getShowEnd();
-
- $time = Schedule::getTimeScheduledInRange($start_timestamp, $end_timestamp);
+ $instance_id = $this->getShowInstanceId();
+ $time = Schedule::GetTotalShowTime($instance_id);
return $time;
}
@@ -638,8 +649,9 @@ class ShowInstance {
$start_timestamp = $this->getShowStart();
$end_timestamp = $this->getShowEnd();
+ $instance_id = $this->getShowInstanceId();
- $time = Schedule::getTimeUnScheduledInRange($start_timestamp, $end_timestamp);
+ $time = Schedule::getTimeUnScheduledInRange($instance_id, $start_timestamp, $end_timestamp);
return $time;
}
@@ -652,6 +664,14 @@ class ShowInstance {
return Schedule::getPercentScheduledInRange($start_timestamp, $end_timestamp);
}
+ public function getPercentScheduled(){
+ $start_timestamp = $this->getShowStart();
+ $end_timestamp = $this->getShowEnd();
+ $instance_id = $this->getShowInstanceId();
+
+ return Schedule::GetPercentScheduled($instance_id, $start_timestamp, $end_timestamp);
+ }
+
public function getShowLength(){
global $CC_DBC;
@@ -760,32 +780,34 @@ class Show_DAL{
public static function GetShowsInRange($timeNow, $start, $end){
global $CC_CONFIG, $CC_DBC;
- $sql = "SELECT *,"
- ." si.starts as start_timestamp,"
- ." si.ends as end_timestamp,"
- ." si.id as instance_id"
- ." FROM "
- ." $CC_CONFIG[showInstances] si,"
- ." $CC_CONFIG[showTable] s"
- ." WHERE si.show_id = s.id"
- ." AND ((si.starts < TIMESTAMP '$timeNow' - INTERVAL '$start seconds' AND si.ends > TIMESTAMP '$timeNow' - INTERVAL '$start seconds')"
+ $sql = "SELECT"
+ ." si.starts as show_starts,"
+ ." si.ends as show_ends,"
+ ." st.starts as item_starts,"
+ ." st.ends as item_ends,"
+ ." st.clip_length as clip_length,"
+ ." ft.track_title as track_title,"
+ ." ft.artist_name as artist_name,"
+ ." ft.album_title as album_title,"
+ ." s.name as show_name,"
+ ." si.id as instance_id,"
+ ." pt.name as playlist_name"
+ ." FROM $CC_CONFIG[showInstances] si"
+ ." LEFT JOIN $CC_CONFIG[scheduleTable] st"
+ ." ON st.instance_id = si.id"
+ ." LEFT JOIN $CC_CONFIG[playListTable] pt"
+ ." ON st.playlist_id = pt.id"
+ ." LEFT JOIN $CC_CONFIG[filesTable] ft"
+ ." ON st.file_id = ft.id"
+ ." LEFT JOIN $CC_CONFIG[showTable] s"
+ ." ON si.show_id = s.id"
+ ." WHERE ((si.starts < TIMESTAMP '$timeNow' - INTERVAL '$start seconds' AND si.ends > TIMESTAMP '$timeNow' - INTERVAL '$start seconds')"
." OR (si.starts > TIMESTAMP '$timeNow' - INTERVAL '$start seconds' AND si.ends < TIMESTAMP '$timeNow' + INTERVAL '$end seconds')"
." OR (si.starts < TIMESTAMP '$timeNow' + INTERVAL '$end seconds' AND si.ends > TIMESTAMP '$timeNow' + INTERVAL '$end seconds'))"
- ." ORDER BY si.starts";
+ ." AND (st.starts < si.ends)"
+ ." ORDER BY st.starts";
- $rows = $CC_DBC->GetAll($sql);
-
- $showsMap = array();
- $rowsCount = count($rows);
-
- for ($i=0; $i<$rowsCount; $i++){
- $rows[$i]['items'] = array();
- array_push($rows[$i]['items'],
- array("s", $rows[$i]["starts"], $rows[$i]["starts"], $rows[$i]["ends"], "", "", "", "", "", $rows[$i]["name"], $rows[$i]["instance_id"], ""));
- $showsMap[$rows[$i]['instance_id']] = $rows[$i];
- }
-
- return $showsMap;
+ return $CC_DBC->GetAll($sql);
}
}
diff --git a/application/models/StoredFile.php b/application/models/StoredFile.php
index a93217cae..8db111b01 100644
--- a/application/models/StoredFile.php
+++ b/application/models/StoredFile.php
@@ -1655,7 +1655,7 @@ class StoredFile {
$fromTable = "cc_playlist AS pl LEFT JOIN cc_playlisttimes AS plt USING(id) LEFT JOIN cc_subjs AS sub ON pl.editedby = sub.id";
- $datatables["optWhere"][] = "plt.length <= INTERVAL '{$p_length}'";
+ $datatables["optWhere"][] = "INTERVAL '{$p_length}' > INTERVAL '00:00:00'";
$datatables["optWhere"][] = "plt.length > INTERVAL '00:00:00'";
return StoredFile::searchFiles($fromTable, $datatables);
diff --git a/application/views/helpers/SoundCloudLink.php b/application/views/helpers/SoundCloudLink.php
new file mode 100644
index 000000000..9f4d321e5
--- /dev/null
+++ b/application/views/helpers/SoundCloudLink.php
@@ -0,0 +1,22 @@
+getRequest();
+ $host = $request->getHttpHost();
+ $controller = $request->getControllerName();
+ $action = $request->getActionName();
+
+ $redirectUrl = "http://{$host}/{$controller}/{$action}";
+
+ $soundcloud = new Services_Soundcloud('2CLCxcSXYzx7QhhPVHN4A', 'pZ7beWmF06epXLHVUP1ufOg2oEnIt9XhE8l8xt0bBs', $redirectUrl);
+ $authorizeUrl = $soundcloud->getAuthorizeUrl();
+
+ return $authorizeUrl;
+ }
+}
+
diff --git a/application/views/scripts/airtime-recorder/index.phtml b/application/views/scripts/airtime-recorder/index.phtml
new file mode 100644
index 000000000..0a04fb79c
--- /dev/null
+++ b/application/views/scripts/airtime-recorder/index.phtml
@@ -0,0 +1 @@
+
View script for controller AirtimeRecorder and script/action name index
\ No newline at end of file
diff --git a/application/views/scripts/recorder/get-show-schedule.phtml b/application/views/scripts/recorder/get-show-schedule.phtml
new file mode 100644
index 000000000..72a5d839b
--- /dev/null
+++ b/application/views/scripts/recorder/get-show-schedule.phtml
@@ -0,0 +1 @@
+
View script for controller Recorder and script/action name getShowSchedule
\ No newline at end of file
diff --git a/application/views/scripts/recorder/index.phtml b/application/views/scripts/recorder/index.phtml
new file mode 100644
index 000000000..60ca18d3a
--- /dev/null
+++ b/application/views/scripts/recorder/index.phtml
@@ -0,0 +1 @@
+
View script for controller Recorder and script/action name index
\ No newline at end of file
diff --git a/application/views/scripts/schedule/schedule-show-dialog.phtml b/application/views/scripts/schedule/schedule-show-dialog.phtml
index c10038bfd..c0a28a984 100644
--- a/application/views/scripts/schedule/schedule-show-dialog.phtml
+++ b/application/views/scripts/schedule/schedule-show-dialog.phtml
@@ -28,6 +28,7 @@
showLength; ?>
+
diff --git a/ecasound-2.7.2/AUTHORS b/ecasound-2.7.2/AUTHORS
new file mode 100644
index 000000000..44bef8fda
--- /dev/null
+++ b/ecasound-2.7.2/AUTHORS
@@ -0,0 +1,278 @@
+=======================================================================
+*** Ecasound - AUTHORS file ***
+=======================================================================
+
+Note about author information in version control (git)
+------------------------------------------------------
+
+For recent development history (since August 2008), the Ecasound git
+repository (see:
+ - http://ecasound.git.sourceforge.net/git/gitweb.cgi?p=ecasound )
+... contains accurate author information. For earlier commits, the git
+repository does not provide an accurate view, as all of these
+pre-2008/Aug patches were committed by the release manager. However,
+even in the older commits, the original author (if different from
+commit author), is identified in the patch description (e.g. "Patch
+from.." or "Patch by..").
+
+Main author, coordination of development
+========================================
+
+Kai Vehmanen [kaiv] (kvehmanen -at- eca -dot- cx)
+
+New functionality, refactoring old code
+=======================================
+
+Allie, Stuart [allies] (stuart -dot- allie -at- hydro -dot- com -dot- au)
+ Added EIAM command set for controller parameters (ctrlp-*), bugfixes.
+Bowman, Brad [bowman]
+ Perl ECI binding, bug hunting.
+Chappell, Jesse [jesse] (jesse -at- essej -dot- net)
+ Improvements to libsndfile support, various bugfixes.
+Coker, Rob [rcs] (rcs -at- birch -dot- net)
+ Pulse gate (-eemp) code.
+Cunningham, Jeffrey [jeffrey] (jeffrey -at- cunningham -dot- net)
+ Various improvements to ecasignalview.
+Dobson, Julian [juliand]
+ Improved mechanism for mp3 header parsing.
+Ewe, Michael [mewe]
+ Signal handling bugfixes to ecasignalview and the ECI C impl.
+Fendt, Stefan (stefan -at- lionfish -dot- ping -dot- de)
+ Original code for reverb (-ete) and RC-lowpass filter (-ef4).
+Hall, Jeremy [jhall] (jhall -at- maoz -dot- com)
+ Extensive testing, ALSA 0.6.x support, many design ideas.
+Halttunen, Janne [jhalttun]
+ Helped in developing the EIAM, and specifically the
+ new ECI concept. Wrote the native Python ECI implementation.
+Hamara, Arto [artham] (artham -at- utu -dot- fi)
+ Ecasound logo(s), preset params, general linear
+ envelope support, various bug fixes!
+Jeanneau, Aymeric [ajeanneau] (ajeanneau -at- cvf -dot- fr)
+ Reentrant libecasoundc (C ECI) implementation.
+Lang, Mario [mlang]
+ Ecasound.el, the ecasound emacs module.
+Leake, Tony [tonyleake]
+ PHP ECI extension.
+Lees, Andrew [andrewl]
+ Reopen functionality to threshold gate (-ge).
+Linson, Adam [alinson]
+ Adding the cop-get command
+Lopez-Cabanillas, Pedro [pedrolc] (pedro -dot- lopez-cabanillas -at- gmail -dot -com)
+ ALSA sequencer interface support.
+Massy, S. [smassy]
+ Ecalength utility, extensive testing and debugging.
+Poelstra, Remco [rjpoelstra]
+ ECI C API bug hunting.
+Polton, Richard [rpolton]
+ The 250k gcc3.x patch. :)
+Tiedemann, Eric S. [est]
+ Wrote the eci.py interface.
+Uekawa, Junichi [juekawa]
+ Maintainer for Ecasound's Debian package. Improvements to build
+ system and numerous bugfixes.
+Weil, Jan [janweil] (Jan -dot- Weil -at- web -dot- de)
+ Wrote the Ruby ECI implementation.
+
+Contributions
+==============
+
+Anarcat [anarcat]
+ Work on Ecasound's FreeBSD port.
+Amundsen, Eric [amundsen]
+ Bug hunting.
+Beaupre, Antoine [beaupran]
+ Patches for FreeBSD compatibility.
+Berndtgen, Manfred [mb]
+ Bugfix to ecasignalview.
+Bolton, Sean [smbolton]
+ Patches for Mac OS X compability.
+Brulebois, Cyril [cyrilbrulebois]
+ Patches for issues reported by GCC 3.4.
+Campbell, Ross [rcampbel]
+ Tips concerning Solaris compatibility.
+Carmack, Michael [karmak]
+ Tips concerning Solaris.
+Claassen, Julien [julien]
+ Ideas for interface development, marketing work.
+Darilek, Nolan [nolan_d]
+ Ogg vorbis fixes.
+Dye, Rob [rob]
+ OSS compilation fixes.
+Eure, Ian [ieure]
+ Work on the Ecasound debian packages.
+Fischer, Hans-Georg [hgfischer]
+ Bug fix that solved edi-1.
+Grabner Markus [grabner]
+ Updated RPM spec-file for x86_64 platforms.
+Groffen, Fabian [grobian] (grobian -at- gentoo -dot- org)
+ OS X build fixes.
+Head, Chris [hawk777]
+ Patches fixing ecasignalview build errors.
+Heller, Aaron [aheller]
+ Fixes to big-endian support.
+Harris, Steve [swharris]
+ gcc 2.96 (RH7.0) testing and fixes.
+Hughes, Jeremy [jedahu]
+ Bugfix for JACK port muting
+Lavallée, Marc
+ Rpm-spec for Mandrake.
+Merino, Pedro Antonio Fructuoso [pfructuoso]
+ Various bugfix patches.
+Morris, Steve [smorris]
+ Ewf-handling fixes.
+O'Toole David [dto]
+ Patches to ecasound.el.
+Petit, Bertrand
+ Helped with POSIX-compatibility issues.
+Poulton, Ron [thok]
+ Helped to track down the mysterious chain-bug.
+Rzewnicki, Eric Dantan [ericdr]
+ Lots of typo fixes and corrections to Ecasound docs.
+Sacré, Dominic [dsacre]
+ Fixes to 'jack_generic'.
+Sassmannshausen, Ruediger [rsassman]
+ Mp3 filename parsing fixes.
+Shchepin, Alexey [alexey]
+ Bugfix to time crop gate operator (-gc).
+Sijrier, Remon [remon]
+ Fix to a bug in setting -eca initial values.
+Smith, Richard A.
+ Helped in solving the "gcc 2.95" bug.
+Sousa, Rui
+ OSS bug fixes.
+Stradling, Rob [robstr]
+ MIDI-MMC bug fixes.
+Tkachenko, Vadim -
+ Helped to get started with autoconf.
+Yee-king, Matt [yeeking]
+ Helped debugging big-endian troubles on PowerPC.
+Westbrook, Tim [iondiode]
+ Autoconf 2.5x fixes.
+Wever, Mark de [koraq]
+ Bugs in libecasoundc-config.
+Wróblewski, Artur [wrobell]
+ PLD-Linux RPM-specfile, readline and destdir patches.
+
+Contributions - Patches, Bug Hunting and Feature Proposals
+==========================================================
+
+Starting from 2.2.1 release (in Feb/2003), contributors have
+been listed in the release notes. For all past releases notes,
+see:
+
+ - http://eca.cx/relnotes/
+
+Below is a list of all contributors to 2.2.1 and beyond, collected
+from the published releases notes, and listed in the order they appear
+in the release notes:
+
+Junichi Uekawa
+Kai Vehmanen
+Janne Halttunen
+Antti Boman
+William Goldsmith
+Oliver Thuns
+Mario Lang
+Michael Hellwig
+Janno Liivak
+Raoul Megelas
+Jan Stary
+Daniel Kruszyna
+Jeremy Hall
+Vegard Lima
+Carsten Bauer
+Ismail Donmez
+Lars Henrik Mai
+Stephan Niemz
+Al Oemens
+Tommi Uimonen
+Hirendra Hindocha
+Stefan Bundt
+Dave Phillips
+Jan Weil
+Mark de Wever
+Fernando Pablo Lopez-Lezcano
+Michael Ewe
+Eric Dantan Rzewnicki
+Pierre Lorenzon
+Jesse Chappell
+Sean Bolton
+Adam Linson
+Paul Winkler
+Didier Bellamy
+Manfred Berndtgen
+Stéphane Letz
+Paul Marquardt
+kito -at- gentoo-org
+jcwjcw -at- qwest-net
+Vitaly Belostotsky
+Steve Harris
+Tim Blechmann
+Aaron Heller
+Kamil Wencel
+Julien Claassen
+Erik de Castro Lopo
+Frederik Eaton
+Philippe Schelté aka Dubphil
+Julian Dobson
+Alexey Shchepin
+Brad Fuller
+Peter Lutek
+Stuart Allie
+Jeffrey Cunningham
+Kyle Kirkland
+Olivier Guilyardi
+Jack O'Quin
+Pierre Lorenzon
+Pedro Lopez-Cabanillas
+Pedro Antonio Fructuoso Merino
+Arieh Skliarouk
+Tom Rosenfeld
+Valery -at- vslash -dot com
+Markus Grabner
+Michael Willoughby
+Rocco
+Dave Serls
+Stephen Stocker
+Aaron Heller
+Chris Head
+Zrajm Akfohg
+Florian Ladstaedter
+Koen
+Kurt Konolige
+Brad Bowman
+Joel Roth
+Martin Michlmayr
+Joe Planisky
+Rémi Rouaud
+Etienne Deleflie
+Klaus Schulz
+Keith Creasy
+Cyril Brulebois
+Fabian Groffen
+Andrew Lees
+Sergei Steshenko
+Alexis Ballier
+Avuton Olrich
+Dominic Sacré
+Erik Nomitch
+
+Code from other projects
+========================
+
+Davis Paul
+ pthread_mutex_spinlock() from libpbd.
+Dyson, John S.
+ The original advanced compressor (-eca) code.
+Furse, Richard W.E.
+ Sine tone generation code from Computer Music Toolkit
+ LADSPA plugin set is used in AUDIO_IO_TONE.
+Harris, Steve and Tim Blechmann
+ Denormal handling code from swh-plugins package.
+Laydier, Antoine [SMF]
+ Mp3 header parsing (layer.cpp).
+
+
+Note! The developer tags (for example [kaiv] is one) are used
+ throughout Ecasound docs: NEWS, TODO-list, edi-list.txt,
+ ChangeLog files and so on.
diff --git a/ecasound-2.7.2/BUGS b/ecasound-2.7.2/BUGS
new file mode 100644
index 000000000..60c5f6fb1
--- /dev/null
+++ b/ecasound-2.7.2/BUGS
@@ -0,0 +1,58 @@
+-----------------------------------------------------------------------
+*** Ecasound - Known Bugs/Features ***
+-----------------------------------------------------------------------
+
+Reporting bugs
+-----------------------------------------------------------------------
+
+Please send your bug reports to the ecasound-list mailing list (see
+README or http://eca.cx/ecasound/mlists.php for list contact information).
+
+If the bug (or feature request) cannot be solved immediately (or
+getting a response takes longer than you care to wait for), feel free
+to add the item to the sourceforge.net tracker (see below). It is
+also a good idea to send a note to the list that you have added
+a new item as the sourceforge.net tracker is not monitored by
+all developers.
+
+To get the best results, see for example Simon Tatham's excellent
+article on 'How to Report Bugs Effectively' (if you are in a hurry,
+skip to the summary at the end of the article :)):
+
+ http://www.chiark.greenend.org.uk/~sgtatham/bugs.html
+
+Ecasound bug tracker at sourceforge.net
+-----------------------------------------------------------------------
+
+Ecasound has used the sourceforge.net bug tracker since Jan/2006:
+
+ https://sourceforge.net/tracker/?group_id=4605&atid=104605
+
+This tracker is used to monitor longstanding bugs and
+feature/improvement items. It replaces the old Ecasound Development
+Item practise (items marked with 'edi-x' tags) that was used
+between 2002-08.
+
+Known Bugs and Features (not in other issue trackers)
+-----------------------------------------------------------------------
+
+In addition to the below items, some known missing features have been
+listed in the 'TODO' file (in same directory as this file).
+
+- commas in filenames given as arguments to '-i' and '-o' options need
+ to be either escaped with backslashes (-i foo\\,bar.wav) or quoted
+ with doublequotes (-i "foo,bar.wav")
+- certain combinations of glibc and linux-2.6 kernels cause the 'cs-edit'
+ EIAM command to fail (ecasound exits back to shell after the command);
+ as a workaround, set the LD_ASSUME_KERNEL=2.2.5 environment variable
+ before running ecasound; see http://people.redhat.com/drepper/assumekernel.html
+ for background information on LD_ASSUME_KERNEL
+- ecasound cannot parse ogg and flac headers so correct audio
+ format parameters must be set manually with ecasound's '-f' option
+- pitch shifter (-ei) doesn't work with all real-time audio object
+ types (for instance JACK)
+- ecasound crashes if /dev/midi points to an invalid rawmidi device
+- MIDI-ops like '-km' cannot be used in presets
+- controller sources and big buffersizes
+ - distortion results for example if sine-oscillators
+ are used with big buffersize (-b:X) settings
diff --git a/ecasound-2.7.2/COPYING b/ecasound-2.7.2/COPYING
new file mode 100644
index 000000000..9b90a3ca2
--- /dev/null
+++ b/ecasound-2.7.2/COPYING
@@ -0,0 +1,18 @@
+=======================================================================
+*** Ecasound - Licensing/distribution policy ***
+=======================================================================
+
+Copyright (C) 1997-2006 Kai Vehmanen and others (see ecasound/AUTHORS).
+
+Ecasound is freely distributable according to the terms of the
+GNU General Public License (see the file 'COPYING.GPL').
+
+This program is distributed without any warranty. See the file
+'COPYING.GPL' for details.
+
+As an exception to the above, the C, C++ and python implementations
+of the Ecasound Control Interface (ECI) are licensed under the LGPL
+(see the file 'COPYING.LGPL'). This allows writing ECI applications
+that are not licensed under GPL.
+
+=======================================================================
diff --git a/ecasound-2.7.2/COPYING.GPL b/ecasound-2.7.2/COPYING.GPL
new file mode 100644
index 000000000..d60c31a97
--- /dev/null
+++ b/ecasound-2.7.2/COPYING.GPL
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ , 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/ecasound-2.7.2/COPYING.LGPL b/ecasound-2.7.2/COPYING.LGPL
new file mode 100644
index 000000000..cfe59bcad
--- /dev/null
+++ b/ecasound-2.7.2/COPYING.LGPL
@@ -0,0 +1,502 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+ , 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
diff --git a/ecasound-2.7.2/Documentation/Makefile b/ecasound-2.7.2/Documentation/Makefile
new file mode 100644
index 000000000..075ec298c
--- /dev/null
+++ b/ecasound-2.7.2/Documentation/Makefile
@@ -0,0 +1,662 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# Documentation/Makefile. Generated from Makefile.in by configure.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+# ----------------------------------------------------------------------
+# File: ecasound/Documentation/Makefile.am
+# Description: Ecasound documentation files
+# License: GPL (see ecasound/{AUTHORS,COPYING})
+# ----------------------------------------------------------------------
+srcdir = .
+top_srcdir = ..
+
+pkgdatadir = $(datadir)/ecasound
+pkglibdir = $(libdir)/ecasound
+pkgincludedir = $(includedir)/ecasound
+top_builddir = ..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = /usr/bin/install -c
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-unknown-linux-gnu
+host_triplet = x86_64-unknown-linux-gnu
+subdir = Documentation
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-exec-recursive install-info-recursive \
+ install-recursive installcheck-recursive installdirs-recursive \
+ pdf-recursive ps-recursive uninstall-info-recursive \
+ uninstall-recursive
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/naomi/dev-campcaster/campcaster/ecasound-2.7.2/missing --run aclocal-1.9
+AMDEP_FALSE = #
+AMDEP_TRUE =
+AMTAR = ${SHELL} /home/naomi/dev-campcaster/campcaster/ecasound-2.7.2/missing --run tar
+AM_CFLAGS = -ffast-math -fstrict-aliasing -DNDEBUG -DENABLE_DBC
+AM_CPPFLAGS = -D_REENTRANT -D_XOPEN_SOURCE=500
+AM_CXXFLAGS = -ffast-math -fstrict-aliasing -DNDEBUG -DENABLE_DBC
+AM_LDFLAGS =
+AR = ar
+ARTSC_CONFIG = none
+AUTOCONF = ${SHELL} /home/naomi/dev-campcaster/campcaster/ecasound-2.7.2/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/naomi/dev-campcaster/campcaster/ecasound-2.7.2/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/naomi/dev-campcaster/campcaster/ecasound-2.7.2/missing --run automake-1.9
+AWK = gawk
+CC = gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -g -O2
+CPP = gcc -E
+CPPFLAGS =
+CXX = g++
+CXXCPP = g++ -E
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DSYMUTIL =
+ECA_AM_ALL_STATIC_FALSE =
+ECA_AM_ALL_STATIC_TRUE = #
+ECA_AM_COMPILE_ALSA_FALSE = #
+ECA_AM_COMPILE_ALSA_TRUE =
+ECA_AM_COMPILE_ARTS_FALSE =
+ECA_AM_COMPILE_ARTS_TRUE = #
+ECA_AM_COMPILE_AUDIOFILE_FALSE = #
+ECA_AM_COMPILE_AUDIOFILE_TRUE =
+ECA_AM_COMPILE_JACK_FALSE =
+ECA_AM_COMPILE_JACK_TRUE = #
+ECA_AM_COMPILE_OSS_FALSE = #
+ECA_AM_COMPILE_OSS_TRUE =
+ECA_AM_COMPILE_SAMPLERATE_FALSE = #
+ECA_AM_COMPILE_SAMPLERATE_TRUE =
+ECA_AM_COMPILE_SNDFILE_FALSE = #
+ECA_AM_COMPILE_SNDFILE_TRUE =
+ECA_AM_DEBUG_MODE_FALSE =
+ECA_AM_DEBUG_MODE_TRUE = #
+ECA_AM_DISABLE_EFFECTS_FALSE =
+ECA_AM_DISABLE_EFFECTS_TRUE = #
+ECA_AM_FEELING_EXPERIMENTAL_FALSE =
+ECA_AM_FEELING_EXPERIMENTAL_TRUE = #
+ECA_AM_KVUTILS_INSTALLED_FALSE = #
+ECA_AM_KVUTILS_INSTALLED_TRUE =
+ECA_AM_PYECASOUND_CEXT_FALSE =
+ECA_AM_PYECASOUND_CEXT_TRUE = #
+ECA_AM_PYECASOUND_INSTALL_FALSE = #
+ECA_AM_PYECASOUND_INSTALL_TRUE =
+ECA_AM_RUBYECASOUND_INSTALL_FALSE =
+ECA_AM_RUBYECASOUND_INSTALL_TRUE = #
+ECA_AM_SYSTEM_READLINE_FALSE = #
+ECA_AM_SYSTEM_READLINE_TRUE =
+ECA_AM_USE_NCURSES_FALSE = #
+ECA_AM_USE_NCURSES_TRUE =
+ECA_AM_USE_TERMCAP_FALSE =
+ECA_AM_USE_TERMCAP_TRUE = #
+ECA_S_EXTRA_CPPFLAGS =
+ECA_S_EXTRA_LIBS = -lsamplerate -laudiofile -lsndfile -lasound
+ECA_S_JACK_INCLUDES =
+ECA_S_JACK_LIBS =
+ECA_S_PREFIX = /usr/local
+ECA_S_PYTHON_DLMODULES = /usr/lib/python2.6/lib-dynload
+ECA_S_PYTHON_INCLUDES =
+ECA_S_PYTHON_MODULES = /usr/lib/python2.6
+ECA_S_READLINE_INCLUDES = /usr/include/readline
+ECA_S_READLINE_LIBS = -lreadline -lhistory
+ECA_S_RUBY_SITEDIR =
+ECHO = echo
+ECHO_C =
+ECHO_N = -n
+ECHO_T =
+EGREP = /bin/grep -E
+EXEEXT =
+F77 =
+FFLAGS =
+GREP = /bin/grep
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
+LDFLAGS =
+LIBECASOUNDC_VERSION = 2
+LIBECASOUNDC_VERSION_AGE = 1
+LIBECASOUND_VERSION = 22
+LIBECASOUND_VERSION_AGE = 0
+LIBKVUTILS_VERSION = 9
+LIBKVUTILS_VERSION_AGE = 5
+LIBLO_CFLAGS =
+LIBLO_LIBS =
+LIBOBJS =
+LIBOIL_CFLAGS =
+LIBOIL_LIBS =
+LIBS = -ldl -lm -lrt -lpthread
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LN_S = ln -s
+LTLIBOBJS =
+MAKEINFO = ${SHELL} /home/naomi/dev-campcaster/campcaster/ecasound-2.7.2/missing --run makeinfo
+NMEDIT =
+OBJEXT = o
+PACKAGE = ecasound
+PACKAGE_BUGREPORT =
+PACKAGE_NAME = ecasound
+PACKAGE_STRING = ecasound 2.7.2
+PACKAGE_TARNAME = ecasound
+PACKAGE_VERSION = 2.7.2
+PATH_SEPARATOR = :
+PKG_CONFIG = /usr/bin/pkg-config
+PYTHONPATH = /usr/bin/python
+RANLIB = ranlib
+RUBYPATH = none
+SED = /bin/sed
+SET_MAKE =
+SHELL = /bin/bash
+STRIP = strip
+VERSION = 2.7.2
+ac_ct_CC = gcc
+ac_ct_CXX = g++
+ac_ct_F77 =
+am__fastdepCC_FALSE = #
+am__fastdepCC_TRUE =
+am__fastdepCXX_FALSE = #
+am__fastdepCXX_TRUE =
+am__include = include
+am__leading_dot = .
+am__quote =
+am__tar = ${AMTAR} chof - "$$tardir"
+am__untar = ${AMTAR} xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-unknown-linux-gnu
+build_alias =
+build_cpu = x86_64
+build_os = linux-gnu
+build_vendor = unknown
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+host = x86_64-unknown-linux-gnu
+host_alias =
+host_cpu = x86_64
+host_os = linux-gnu
+host_vendor = unknown
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = /home/naomi/dev-campcaster/campcaster/ecasound-2.7.2/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = mkdir -p --
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /usr/local
+program_transform_name = s,x,x,
+psdir = ${docdir}
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+sysconfdir = ${prefix}/etc
+target_alias =
+SUBDIRS = users_guide programmers_guide
+
+# ---------------------------------------------------------------------
+# Files going into distribution:
+man1_pages_to_install = \
+ ecasound.1 \
+ ecasound-iam.1 \
+ ecatools.1 \
+ ecaconvert.1 \
+ ecafixdc.1 \
+ ecalength.1 \
+ ecaplay.1 \
+ ecamonitor.1 \
+ ecanormalize.1 \
+ ecasignalview.1
+
+man5_pages_to_install = \
+ ecasoundrc.5
+
+html_man_pages = \
+ ecasound_manpage.html \
+ ecasoundrc_manpage.html \
+ ecatools_manpage.html \
+ ecalength_manpage.html \
+ ecasound-iam_manpage.html
+
+EXTRA_DIST = $(man1_pages_to_install) \
+ $(man5_pages_to_install) \
+ $(html_man_pages)
+
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Documentation/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --foreign Documentation/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+ list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(mkdir_p) "$(distdir)/$$subdir" \
+ || exit 1; \
+ distdir=`$(am__cd) $(distdir) && pwd`; \
+ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+ (cd $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$top_distdir" \
+ distdir="$$distdir/$$subdir" \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool \
+ distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-data-local
+
+install-exec-am:
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-info-am uninstall-local
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
+ clean clean-generic clean-libtool clean-recursive ctags \
+ ctags-recursive distclean distclean-generic distclean-libtool \
+ distclean-recursive distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-data-local install-exec \
+ install-exec-am install-info install-info-am install-man \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ maintainer-clean-recursive mostlyclean mostlyclean-generic \
+ mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \
+ tags tags-recursive uninstall uninstall-am uninstall-info-am \
+ uninstall-local
+
+ $(srcdir)/ecasound_manpage.yo \
+ $(srcdir)/ecasoundrc_manpage.yo \
+ $(srcdir)/ecasound-iam_manpage.yo \
+ $(srcdir)/ecatools_manpage.yo \
+ $(srcdir)/ecalength_manpage.yo \
+ $(srcdir)/index.html \
+ $(srcdir)/examples.html \
+ $(srcdir)/manpages.html \
+ $(srcdir)/tutorials.html \
+ $(srcdir)/style_ecasound.css \
+ $(srcdir)/ecasound_osc_interface.txt
+
+# ---------------------------------------------------------------------
+# local targets for generating docs from latex and yodl sources
+
+all:
+
+docs: docs-guides docs-manpages
+
+docs-guides:
+ cd programmers_guide; $(MAKE) $(AM_MAKEFLAGS) docs
+ cd users_guide; $(MAKE) $(AM_MAKEFLAGS) docs
+
+docs-manpages: $(man1_pages_to_install) \
+ $(man5_pages_to_install) \
+ $(html_man_pages)
+
+# ---------------------------------------------------------------------
+# Man pages
+
+# following are copies of ecatools.1
+ecaconvert.1: ecatools.1
+ cp ecatools.1 ecaconvert.1
+ecafixdc.1: ecatools.1
+ cp ecatools.1 ecafixdc.1
+ecamonitor.1: ecatools.1
+ cp -v ecatools.1 ecamonitor.1
+ecanormalize.1: ecatools.1
+ cp -v ecatools.1 ecanormalize.1
+ecaplay.1: ecatools.1
+ cp -v ecatools.1 ecaplay.1
+ecasignalview.1: ecatools.1
+ cp -v ecatools.1 ecasignalview.1
+
+%.1: $(srcdir)/%_manpage.yo
+ yodl2man -o $@ $<
+
+%.5: $(srcdir)/%_manpage.yo
+ yodl2man -o $@ $<
+
+%.html: $(srcdir)/%.yo
+ yodl2html -o $@ $<
+
+# ---------------------------------------------------------------------
+# doxygen (target removed 2009/Feb)
+#doxygen:
+# doxygen doxygen_libkvutils_config
+# doxygen doxygen_libecasound_config
+
+# ---------------------------------------------------------------------
+# Clean targets
+
+clean:
+
+clean-docs: clean-manpages clean-guides
+
+clean-guides:
+ cd programmers_guide; $(MAKE) $(AM_MAKEFLAGS) clean-docs
+ cd users_guide; $(MAKE) $(AM_MAKEFLAGS) clean-docs
+
+clean-manpages:
+ rm -f $(man1_pages_to_install) \
+ $(man5_pages_to_install) \
+ $(html_man_pages)
+
+# ---------------------------------------------------------------------
+# Install targets
+install-data-local:
+ mkdir -p $(DESTDIR)$(mandir)/man1
+ mkdir -p $(DESTDIR)$(mandir)/man5
+ for f in $(man1_pages_to_install) ; do if test -f $$f ; then cp -v $$f $(DESTDIR)$(mandir)/man1/; fi ; done
+ for f in $(man5_pages_to_install) ; do if test -f $$f ; then cp -v $$f $(DESTDIR)$(mandir)/man5/; fi ; done
+
+# ---------------------------------------------------------------------
+# Uninstall targets
+uninstall-local:
+ for f in $(man1_pages_to_install) ; do if test -f $$f ; then rm -vf $(DESTDIR)$(mandir)/man1/$$f ; fi ; done
+ for f in $(man5_pages_to_install) ; do if test -f $$f ; then rm -vf $(DESTDIR)$(mandir)/man5/$$f ; fi ; done
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/ecasound-2.7.2/Documentation/Makefile.am b/ecasound-2.7.2/Documentation/Makefile.am
new file mode 100644
index 000000000..e39927c2a
--- /dev/null
+++ b/ecasound-2.7.2/Documentation/Makefile.am
@@ -0,0 +1,128 @@
+# ----------------------------------------------------------------------
+# File: ecasound/Documentation/Makefile.am
+# Description: Ecasound documentation files
+# License: GPL (see ecasound/{AUTHORS,COPYING})
+# ----------------------------------------------------------------------
+
+prefix = @prefix@
+mandir = @mandir@
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+SUBDIRS = users_guide programmers_guide
+
+# ---------------------------------------------------------------------
+# Files going into distribution:
+
+man1_pages_to_install = \
+ ecasound.1 \
+ ecasound-iam.1 \
+ ecatools.1 \
+ ecaconvert.1 \
+ ecafixdc.1 \
+ ecalength.1 \
+ ecaplay.1 \
+ ecamonitor.1 \
+ ecanormalize.1 \
+ ecasignalview.1
+
+man5_pages_to_install = \
+ ecasoundrc.5
+
+html_man_pages = \
+ ecasound_manpage.html \
+ ecasoundrc_manpage.html \
+ ecatools_manpage.html \
+ ecalength_manpage.html \
+ ecasound-iam_manpage.html
+
+EXTRA_DIST = $(man1_pages_to_install) \
+ $(man5_pages_to_install) \
+ $(html_man_pages)
+ $(srcdir)/ecasound_manpage.yo \
+ $(srcdir)/ecasoundrc_manpage.yo \
+ $(srcdir)/ecasound-iam_manpage.yo \
+ $(srcdir)/ecatools_manpage.yo \
+ $(srcdir)/ecalength_manpage.yo \
+ $(srcdir)/index.html \
+ $(srcdir)/examples.html \
+ $(srcdir)/manpages.html \
+ $(srcdir)/tutorials.html \
+ $(srcdir)/style_ecasound.css \
+ $(srcdir)/ecasound_osc_interface.txt
+
+# ---------------------------------------------------------------------
+# local targets for generating docs from latex and yodl sources
+
+all:
+
+docs: docs-guides docs-manpages
+
+docs-guides:
+ cd programmers_guide; $(MAKE) $(AM_MAKEFLAGS) docs
+ cd users_guide; $(MAKE) $(AM_MAKEFLAGS) docs
+
+docs-manpages: $(man1_pages_to_install) \
+ $(man5_pages_to_install) \
+ $(html_man_pages)
+
+# ---------------------------------------------------------------------
+# Man pages
+
+# following are copies of ecatools.1
+ecaconvert.1: ecatools.1
+ cp ecatools.1 ecaconvert.1
+ecafixdc.1: ecatools.1
+ cp ecatools.1 ecafixdc.1
+ecamonitor.1: ecatools.1
+ cp -v ecatools.1 ecamonitor.1
+ecanormalize.1: ecatools.1
+ cp -v ecatools.1 ecanormalize.1
+ecaplay.1: ecatools.1
+ cp -v ecatools.1 ecaplay.1
+ecasignalview.1: ecatools.1
+ cp -v ecatools.1 ecasignalview.1
+
+%.1: $(srcdir)/%_manpage.yo
+ yodl2man -o $@ $<
+
+%.5: $(srcdir)/%_manpage.yo
+ yodl2man -o $@ $<
+
+%.html: $(srcdir)/%.yo
+ yodl2html -o $@ $<
+
+# ---------------------------------------------------------------------
+# doxygen (target removed 2009/Feb)
+#doxygen:
+# doxygen doxygen_libkvutils_config
+# doxygen doxygen_libecasound_config
+
+# ---------------------------------------------------------------------
+# Clean targets
+
+clean:
+
+clean-docs: clean-manpages clean-guides
+
+clean-guides:
+ cd programmers_guide; $(MAKE) $(AM_MAKEFLAGS) clean-docs
+ cd users_guide; $(MAKE) $(AM_MAKEFLAGS) clean-docs
+
+clean-manpages:
+ rm -f $(man1_pages_to_install) \
+ $(man5_pages_to_install) \
+ $(html_man_pages)
+
+# ---------------------------------------------------------------------
+# Install targets
+install-data-local:
+ mkdir -p $(DESTDIR)$(mandir)/man1
+ mkdir -p $(DESTDIR)$(mandir)/man5
+ for f in $(man1_pages_to_install) ; do if test -f $$f ; then cp -v $$f $(DESTDIR)$(mandir)/man1/; fi ; done
+ for f in $(man5_pages_to_install) ; do if test -f $$f ; then cp -v $$f $(DESTDIR)$(mandir)/man5/; fi ; done
+
+# ---------------------------------------------------------------------
+# Uninstall targets
+uninstall-local:
+ for f in $(man1_pages_to_install) ; do if test -f $$f ; then rm -vf $(DESTDIR)$(mandir)/man1/$$f ; fi ; done
+ for f in $(man5_pages_to_install) ; do if test -f $$f ; then rm -vf $(DESTDIR)$(mandir)/man5/$$f ; fi ; done
diff --git a/ecasound-2.7.2/Documentation/Makefile.in b/ecasound-2.7.2/Documentation/Makefile.in
new file mode 100644
index 000000000..d0128bfc8
--- /dev/null
+++ b/ecasound-2.7.2/Documentation/Makefile.in
@@ -0,0 +1,662 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# ----------------------------------------------------------------------
+# File: ecasound/Documentation/Makefile.am
+# Description: Ecasound documentation files
+# License: GPL (see ecasound/{AUTHORS,COPYING})
+# ----------------------------------------------------------------------
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = Documentation
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-exec-recursive install-info-recursive \
+ install-recursive installcheck-recursive installdirs-recursive \
+ pdf-recursive ps-recursive uninstall-info-recursive \
+ uninstall-recursive
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AM_CFLAGS = @AM_CFLAGS@
+AM_CPPFLAGS = @AM_CPPFLAGS@
+AM_CXXFLAGS = @AM_CXXFLAGS@
+AM_LDFLAGS = @AM_LDFLAGS@
+AR = @AR@
+ARTSC_CONFIG = @ARTSC_CONFIG@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+ECA_AM_ALL_STATIC_FALSE = @ECA_AM_ALL_STATIC_FALSE@
+ECA_AM_ALL_STATIC_TRUE = @ECA_AM_ALL_STATIC_TRUE@
+ECA_AM_COMPILE_ALSA_FALSE = @ECA_AM_COMPILE_ALSA_FALSE@
+ECA_AM_COMPILE_ALSA_TRUE = @ECA_AM_COMPILE_ALSA_TRUE@
+ECA_AM_COMPILE_ARTS_FALSE = @ECA_AM_COMPILE_ARTS_FALSE@
+ECA_AM_COMPILE_ARTS_TRUE = @ECA_AM_COMPILE_ARTS_TRUE@
+ECA_AM_COMPILE_AUDIOFILE_FALSE = @ECA_AM_COMPILE_AUDIOFILE_FALSE@
+ECA_AM_COMPILE_AUDIOFILE_TRUE = @ECA_AM_COMPILE_AUDIOFILE_TRUE@
+ECA_AM_COMPILE_JACK_FALSE = @ECA_AM_COMPILE_JACK_FALSE@
+ECA_AM_COMPILE_JACK_TRUE = @ECA_AM_COMPILE_JACK_TRUE@
+ECA_AM_COMPILE_OSS_FALSE = @ECA_AM_COMPILE_OSS_FALSE@
+ECA_AM_COMPILE_OSS_TRUE = @ECA_AM_COMPILE_OSS_TRUE@
+ECA_AM_COMPILE_SAMPLERATE_FALSE = @ECA_AM_COMPILE_SAMPLERATE_FALSE@
+ECA_AM_COMPILE_SAMPLERATE_TRUE = @ECA_AM_COMPILE_SAMPLERATE_TRUE@
+ECA_AM_COMPILE_SNDFILE_FALSE = @ECA_AM_COMPILE_SNDFILE_FALSE@
+ECA_AM_COMPILE_SNDFILE_TRUE = @ECA_AM_COMPILE_SNDFILE_TRUE@
+ECA_AM_DEBUG_MODE_FALSE = @ECA_AM_DEBUG_MODE_FALSE@
+ECA_AM_DEBUG_MODE_TRUE = @ECA_AM_DEBUG_MODE_TRUE@
+ECA_AM_DISABLE_EFFECTS_FALSE = @ECA_AM_DISABLE_EFFECTS_FALSE@
+ECA_AM_DISABLE_EFFECTS_TRUE = @ECA_AM_DISABLE_EFFECTS_TRUE@
+ECA_AM_FEELING_EXPERIMENTAL_FALSE = @ECA_AM_FEELING_EXPERIMENTAL_FALSE@
+ECA_AM_FEELING_EXPERIMENTAL_TRUE = @ECA_AM_FEELING_EXPERIMENTAL_TRUE@
+ECA_AM_KVUTILS_INSTALLED_FALSE = @ECA_AM_KVUTILS_INSTALLED_FALSE@
+ECA_AM_KVUTILS_INSTALLED_TRUE = @ECA_AM_KVUTILS_INSTALLED_TRUE@
+ECA_AM_PYECASOUND_CEXT_FALSE = @ECA_AM_PYECASOUND_CEXT_FALSE@
+ECA_AM_PYECASOUND_CEXT_TRUE = @ECA_AM_PYECASOUND_CEXT_TRUE@
+ECA_AM_PYECASOUND_INSTALL_FALSE = @ECA_AM_PYECASOUND_INSTALL_FALSE@
+ECA_AM_PYECASOUND_INSTALL_TRUE = @ECA_AM_PYECASOUND_INSTALL_TRUE@
+ECA_AM_RUBYECASOUND_INSTALL_FALSE = @ECA_AM_RUBYECASOUND_INSTALL_FALSE@
+ECA_AM_RUBYECASOUND_INSTALL_TRUE = @ECA_AM_RUBYECASOUND_INSTALL_TRUE@
+ECA_AM_SYSTEM_READLINE_FALSE = @ECA_AM_SYSTEM_READLINE_FALSE@
+ECA_AM_SYSTEM_READLINE_TRUE = @ECA_AM_SYSTEM_READLINE_TRUE@
+ECA_AM_USE_NCURSES_FALSE = @ECA_AM_USE_NCURSES_FALSE@
+ECA_AM_USE_NCURSES_TRUE = @ECA_AM_USE_NCURSES_TRUE@
+ECA_AM_USE_TERMCAP_FALSE = @ECA_AM_USE_TERMCAP_FALSE@
+ECA_AM_USE_TERMCAP_TRUE = @ECA_AM_USE_TERMCAP_TRUE@
+ECA_S_EXTRA_CPPFLAGS = @ECA_S_EXTRA_CPPFLAGS@
+ECA_S_EXTRA_LIBS = @ECA_S_EXTRA_LIBS@
+ECA_S_JACK_INCLUDES = @ECA_S_JACK_INCLUDES@
+ECA_S_JACK_LIBS = @ECA_S_JACK_LIBS@
+ECA_S_PREFIX = @ECA_S_PREFIX@
+ECA_S_PYTHON_DLMODULES = @ECA_S_PYTHON_DLMODULES@
+ECA_S_PYTHON_INCLUDES = @ECA_S_PYTHON_INCLUDES@
+ECA_S_PYTHON_MODULES = @ECA_S_PYTHON_MODULES@
+ECA_S_READLINE_INCLUDES = @ECA_S_READLINE_INCLUDES@
+ECA_S_READLINE_LIBS = @ECA_S_READLINE_LIBS@
+ECA_S_RUBY_SITEDIR = @ECA_S_RUBY_SITEDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GREP = @GREP@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBECASOUNDC_VERSION = @LIBECASOUNDC_VERSION@
+LIBECASOUNDC_VERSION_AGE = @LIBECASOUNDC_VERSION_AGE@
+LIBECASOUND_VERSION = @LIBECASOUND_VERSION@
+LIBECASOUND_VERSION_AGE = @LIBECASOUND_VERSION_AGE@
+LIBKVUTILS_VERSION = @LIBKVUTILS_VERSION@
+LIBKVUTILS_VERSION_AGE = @LIBKVUTILS_VERSION_AGE@
+LIBLO_CFLAGS = @LIBLO_CFLAGS@
+LIBLO_LIBS = @LIBLO_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBOIL_CFLAGS = @LIBOIL_CFLAGS@
+LIBOIL_LIBS = @LIBOIL_LIBS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+NMEDIT = @NMEDIT@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHONPATH = @PYTHONPATH@
+RANLIB = @RANLIB@
+RUBYPATH = @RUBYPATH@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+SUBDIRS = users_guide programmers_guide
+
+# ---------------------------------------------------------------------
+# Files going into distribution:
+man1_pages_to_install = \
+ ecasound.1 \
+ ecasound-iam.1 \
+ ecatools.1 \
+ ecaconvert.1 \
+ ecafixdc.1 \
+ ecalength.1 \
+ ecaplay.1 \
+ ecamonitor.1 \
+ ecanormalize.1 \
+ ecasignalview.1
+
+man5_pages_to_install = \
+ ecasoundrc.5
+
+html_man_pages = \
+ ecasound_manpage.html \
+ ecasoundrc_manpage.html \
+ ecatools_manpage.html \
+ ecalength_manpage.html \
+ ecasound-iam_manpage.html
+
+EXTRA_DIST = $(man1_pages_to_install) \
+ $(man5_pages_to_install) \
+ $(html_man_pages)
+
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Documentation/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --foreign Documentation/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+ list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(mkdir_p) "$(distdir)/$$subdir" \
+ || exit 1; \
+ distdir=`$(am__cd) $(distdir) && pwd`; \
+ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+ (cd $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$top_distdir" \
+ distdir="$$distdir/$$subdir" \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool \
+ distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-data-local
+
+install-exec-am:
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-info-am uninstall-local
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
+ clean clean-generic clean-libtool clean-recursive ctags \
+ ctags-recursive distclean distclean-generic distclean-libtool \
+ distclean-recursive distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-data-local install-exec \
+ install-exec-am install-info install-info-am install-man \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ maintainer-clean-recursive mostlyclean mostlyclean-generic \
+ mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \
+ tags tags-recursive uninstall uninstall-am uninstall-info-am \
+ uninstall-local
+
+ $(srcdir)/ecasound_manpage.yo \
+ $(srcdir)/ecasoundrc_manpage.yo \
+ $(srcdir)/ecasound-iam_manpage.yo \
+ $(srcdir)/ecatools_manpage.yo \
+ $(srcdir)/ecalength_manpage.yo \
+ $(srcdir)/index.html \
+ $(srcdir)/examples.html \
+ $(srcdir)/manpages.html \
+ $(srcdir)/tutorials.html \
+ $(srcdir)/style_ecasound.css \
+ $(srcdir)/ecasound_osc_interface.txt
+
+# ---------------------------------------------------------------------
+# local targets for generating docs from latex and yodl sources
+
+all:
+
+docs: docs-guides docs-manpages
+
+docs-guides:
+ cd programmers_guide; $(MAKE) $(AM_MAKEFLAGS) docs
+ cd users_guide; $(MAKE) $(AM_MAKEFLAGS) docs
+
+docs-manpages: $(man1_pages_to_install) \
+ $(man5_pages_to_install) \
+ $(html_man_pages)
+
+# ---------------------------------------------------------------------
+# Man pages
+
+# following are copies of ecatools.1
+ecaconvert.1: ecatools.1
+ cp ecatools.1 ecaconvert.1
+ecafixdc.1: ecatools.1
+ cp ecatools.1 ecafixdc.1
+ecamonitor.1: ecatools.1
+ cp -v ecatools.1 ecamonitor.1
+ecanormalize.1: ecatools.1
+ cp -v ecatools.1 ecanormalize.1
+ecaplay.1: ecatools.1
+ cp -v ecatools.1 ecaplay.1
+ecasignalview.1: ecatools.1
+ cp -v ecatools.1 ecasignalview.1
+
+%.1: $(srcdir)/%_manpage.yo
+ yodl2man -o $@ $<
+
+%.5: $(srcdir)/%_manpage.yo
+ yodl2man -o $@ $<
+
+%.html: $(srcdir)/%.yo
+ yodl2html -o $@ $<
+
+# ---------------------------------------------------------------------
+# doxygen (target removed 2009/Feb)
+#doxygen:
+# doxygen doxygen_libkvutils_config
+# doxygen doxygen_libecasound_config
+
+# ---------------------------------------------------------------------
+# Clean targets
+
+clean:
+
+clean-docs: clean-manpages clean-guides
+
+clean-guides:
+ cd programmers_guide; $(MAKE) $(AM_MAKEFLAGS) clean-docs
+ cd users_guide; $(MAKE) $(AM_MAKEFLAGS) clean-docs
+
+clean-manpages:
+ rm -f $(man1_pages_to_install) \
+ $(man5_pages_to_install) \
+ $(html_man_pages)
+
+# ---------------------------------------------------------------------
+# Install targets
+install-data-local:
+ mkdir -p $(DESTDIR)$(mandir)/man1
+ mkdir -p $(DESTDIR)$(mandir)/man5
+ for f in $(man1_pages_to_install) ; do if test -f $$f ; then cp -v $$f $(DESTDIR)$(mandir)/man1/; fi ; done
+ for f in $(man5_pages_to_install) ; do if test -f $$f ; then cp -v $$f $(DESTDIR)$(mandir)/man5/; fi ; done
+
+# ---------------------------------------------------------------------
+# Uninstall targets
+uninstall-local:
+ for f in $(man1_pages_to_install) ; do if test -f $$f ; then rm -vf $(DESTDIR)$(mandir)/man1/$$f ; fi ; done
+ for f in $(man5_pages_to_install) ; do if test -f $$f ; then rm -vf $(DESTDIR)$(mandir)/man5/$$f ; fi ; done
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/ecasound-2.7.2/Documentation/ecaconvert.1 b/ecasound-2.7.2/Documentation/ecaconvert.1
new file mode 100644
index 000000000..824dc5713
--- /dev/null
+++ b/ecasound-2.7.2/Documentation/ecaconvert.1
@@ -0,0 +1,220 @@
+.TH "ecatools" "1" "12\&.11\&.2005" "" "Multimedia software"
+
+.PP
+.SH "NAME"
+ecatools \- audio processing utils based on ecasound
+.PP
+.SH "SYNOPSIS"
+\fBecaconvert\fP \&.extension file1 [ file2 \&.\&.\&. fileN ]
+.PP
+\fBecafixdc\fP file1 [ file2 \&.\&.\&. fileN ]
+.PP
+\fBecalength\fP file1 [ file2 \&.\&.\&. fileN ]
+.PP
+\fBecamonitor\fP [host][:port]
+.PP
+\fBecanormalize\fP file1 [ file2 \&.\&.\&. fileN ]
+.PP
+\fBecaplay\fP [-dfhklopq] [ file1 file2 \&.\&.\&. fileN ]
+.PP
+\fBecasignalview\fP [ options ] [ input ] [ output ]
+.PP
+.SH "DESCRIPTION"
+
+.PP
+Ecatools are simple command line utils for audio file processing\&.
+Each tool is designed to perform one specific operation\&. Most of
+the tools also support batch processing\&.
+.PP
+\fBECACONVERT\fP
+.PP
+A tool for converting a set of files to a common target format\&.
+This target format is given as the first command line
+argument, and its syntax is \fI\&.ext\fP\&.
+.PP
+\fBECAFIXDC\fP
+.PP
+A simple command-line tool for fixing DC-offset\&.
+.PP
+\fBECALENGTH\fP
+.PP
+See the separate ecalength(1) man page\&.
+.PP
+\fBECAMONITOR\fP
+.PP
+Ecamonitor is a util program that can be used
+to monitor an active ecasound session\&. Ecamonitor
+is able to show information about the current
+chainsetup such as list of inputs, outputs,
+current position, effects, the engine status
+and numerous other things\&.
+.PP
+By default ecamonitor will try to connect
+to IP4 address "localhost", to port "2868"\&.
+A different address can be specified when
+starting ecamonitor, for example
+"ecamonitor foo\&.mynetwork\&.com" or
+"ecamonitor foo\&.mynetwork\&.com:4500"\&.
+.PP
+To enable inbound connections, ecasound has to be
+started with the \fI--daemon\fP option\&. Ecamonitor is
+implemented in Python using the NetECI API\&.
+.PP
+\fBECANORMALIZE\fP
+.PP
+Ecanormalize is a command-line tool for normalizing audio
+files to utilize the full available sample resolution\&. Ecanormalize
+first finds out how much the input file can be amplified without
+clipping and if there is room for increase, a static gain will
+be applied to the file\&.
+.PP
+\fBECAPLAY\fP
+.PP
+Ecaplay is a command-line tool for playing audio files\&. Ecaplay
+uses the libecasound engine and is thus able to handle all audio formats
+supported by the library\&.
+.PP
+Files can be selected for playback either by specifying the
+filenames on the command-line, or by using the playlist
+mechanism\&. In playlist mode, files can be added to the playlist
+using the \fI-q\fP option\&. The \fI-p\fP option can then be used
+to play all tracks on the playlist\&. Ecaplay will repeat the
+playlist tracks until explicitly stopped (with double Ctrl-C)\&.
+Playlist can be flushed with \fI-f\fP and its contents listed
+with \fI-l\fP option\&.
+.PP
+If not otherwise specified, ecaplay will use the audio output device
+specified in \fI~/\&.ecasound/ecasoundrc\fP for playback\&. A different
+output device can be selected with \fIECAPLAY_OUTPUT_DEVICE\fP shell
+environment variable or with the \fI-o:output_device\fP command-line
+option\&.
+.PP
+Playback can be stopped at any time with Ctrl-C\&. If multiple
+files are played, first Ctrl-C will stop the current file and move
+on to play the next one\&. Issuing Ctrl-C twice (within one second),
+will cause ecaplay to exit\&.
+.PP
+.IP "-d:debuglevel"
+Set libecasound debug level\&. See ecasound(1)\&.
+.IP
+.IP "-f"
+Flush the playlist contents\&. See also
+options \fI-l, -p and -q\fP\&.
+.IP
+.IP "-h"
+Print usage information and exit\&.
+.IP
+.IP "-k:number"
+Skip \&'number\&' of files\&.
+.IP
+.IP "-l"
+List the current playlist contents to stdout\&. See also
+options \fI-f, -p and -q\fP\&.
+.IP
+.IP "-o:output_device"
+Use \&'output_device\&' instead of the default output device
+(as specified in \fI~/\&.ecasound/ecasoundrc\fP)\&. Syntax is same
+as used by "-o" ecasound option (see ecasound(1) man page)\&.
+This option overrides the \fIECAPLAY_OUTPUT_DEVICE\fP environment
+variable (more info below)\&.
+.IP
+.IP "-p"
+Play tracks in the playlist (in looped mode)\&. See also
+options \fI-f, -l and -q\fP\&.
+.IP
+.IP "-q"
+Queue new tracks to the playlist\&. All filenames given on
+the command-line will be added to the the playlist\&. It is
+possible to queue new tracks while another instance of
+ecaplay is using the playlist\&. See also options \fI-f, -l
+and -p\fP\&.
+.IP
+\fBECASIGNALVIEW\fP
+.PP
+Ecasignalview is meant for monitoring signal amplitude and peak
+statistics\&. It accepts the following options:
+.PP
+.IP "input"
+The first option not starting with a \&'-\&' is interpreted
+as an input string\&. This can be a device or a filename\&. All formats
+supported by libecasound are accepted\&. Defaults to \&'/dev/dsp\&'\&.
+.IP
+.IP "output"
+Similarly to input, second option not starting with a \&'-\&'
+is interpreted as output\&. Defaults to \&'null\&'\&.
+.IP
+.IP "-b:buffersize"
+Buffersize in sample frames\&. Defaults to 128\&.
+.IP
+.IP "-c"
+Enable cumulative mode\&. Counters are not reseted after refresh\&.
+\fI*deprecated*\fP
+.IP
+.IP "-d"
+Enable debug mode\&.
+.IP
+.IP "-f:format_string"
+Specify default audio format\&. See ecasound(1) for details\&.
+.IP
+.IP "-r:rate_msec"
+Specify screen refresh rate in milliseconds\&.
+.IP
+.IP "-I"
+Use linear scale for showing audio sample amplitude\&.
+.IP
+.IP "-L"
+Use logarithmic scale for showing audio sample amplitude\&.
+.IP
+.IP "-G, -B, -M*, -r, -z"
+Ecasound options use to modify the engine behaviour, see
+ecasound(1) manpage for details\&.
+.IP
+When ecasignalview is running, the following keyboard
+commands can be used to control the operation (requires
+system support for UNIX terminal interface control):
+.PP
+.IP "spacebar"
+Reset statistics (max-peak, avg-amplitude and clipped
+samples count)\&.
+.IP
+.IP "q or Q or Esc"
+Quit ecasignalview\&.
+.IP
+It is also possible to reset the max-peak and clipped-samples
+counters by sending a SIGHUP signal to the process (i\&.e\&.
+from another console: "killall -v -HUP ecasignalview")\&.
+.PP
+More complete documentation for ecasignalview can be found
+from "Ecasound User\&'s Guide" (see \&'\&'http://www\&.eca\&.cx/ecasound
+-> Documentation\&'\&')\&.
+.PP
+.SH "ENVIRONMENT"
+
+.PP
+\fIECASOUND\fP
+Path to the ecasound executable\&. Used by many ecatools\&.
+.PP
+\fIECAPLAY_OUTPUT_DEVICE\fP
+Device ecaplay should use for audio output\&. Same syntax
+as for ecaplay/ecasound "-o" option\&.
+.PP
+.SH "FILES"
+
+.PP
+\fI~/\&.ecasound/ecasoundrc\fP
+The default ecasound resource file\&. See ecasoundrc(5)
+for details\&.
+.PP
+\fI~/\&.ecasound/ecaplay_queue\fP
+File used to store the ecaplay playlist (one track per
+line with full path)\&.
+.PP
+.SH "SEE ALSO"
+
+.PP
+ecasound (1), ecalength(1), "HTML docs in the Documentation subdirectory"
+.PP
+.SH "AUTHOR"
+
+.PP
+Kai Vehmanen, >
diff --git a/ecasound-2.7.2/Documentation/ecafixdc.1 b/ecasound-2.7.2/Documentation/ecafixdc.1
new file mode 100644
index 000000000..824dc5713
--- /dev/null
+++ b/ecasound-2.7.2/Documentation/ecafixdc.1
@@ -0,0 +1,220 @@
+.TH "ecatools" "1" "12\&.11\&.2005" "" "Multimedia software"
+
+.PP
+.SH "NAME"
+ecatools \- audio processing utils based on ecasound
+.PP
+.SH "SYNOPSIS"
+\fBecaconvert\fP \&.extension file1 [ file2 \&.\&.\&. fileN ]
+.PP
+\fBecafixdc\fP file1 [ file2 \&.\&.\&. fileN ]
+.PP
+\fBecalength\fP file1 [ file2 \&.\&.\&. fileN ]
+.PP
+\fBecamonitor\fP [host][:port]
+.PP
+\fBecanormalize\fP file1 [ file2 \&.\&.\&. fileN ]
+.PP
+\fBecaplay\fP [-dfhklopq] [ file1 file2 \&.\&.\&. fileN ]
+.PP
+\fBecasignalview\fP [ options ] [ input ] [ output ]
+.PP
+.SH "DESCRIPTION"
+
+.PP
+Ecatools are simple command line utils for audio file processing\&.
+Each tool is designed to perform one specific operation\&. Most of
+the tools also support batch processing\&.
+.PP
+\fBECACONVERT\fP
+.PP
+A tool for converting a set of files to a common target format\&.
+This target format is given as the first command line
+argument, and its syntax is \fI\&.ext\fP\&.
+.PP
+\fBECAFIXDC\fP
+.PP
+A simple command-line tool for fixing DC-offset\&.
+.PP
+\fBECALENGTH\fP
+.PP
+See the separate ecalength(1) man page\&.
+.PP
+\fBECAMONITOR\fP
+.PP
+Ecamonitor is a util program that can be used
+to monitor an active ecasound session\&. Ecamonitor
+is able to show information about the current
+chainsetup such as list of inputs, outputs,
+current position, effects, the engine status
+and numerous other things\&.
+.PP
+By default ecamonitor will try to connect
+to IP4 address "localhost", to port "2868"\&.
+A different address can be specified when
+starting ecamonitor, for example
+"ecamonitor foo\&.mynetwork\&.com" or
+"ecamonitor foo\&.mynetwork\&.com:4500"\&.
+.PP
+To enable inbound connections, ecasound has to be
+started with the \fI--daemon\fP option\&. Ecamonitor is
+implemented in Python using the NetECI API\&.
+.PP
+\fBECANORMALIZE\fP
+.PP
+Ecanormalize is a command-line tool for normalizing audio
+files to utilize the full available sample resolution\&. Ecanormalize
+first finds out how much the input file can be amplified without
+clipping and if there is room for increase, a static gain will
+be applied to the file\&.
+.PP
+\fBECAPLAY\fP
+.PP
+Ecaplay is a command-line tool for playing audio files\&. Ecaplay
+uses the libecasound engine and is thus able to handle all audio formats
+supported by the library\&.
+.PP
+Files can be selected for playback either by specifying the
+filenames on the command-line, or by using the playlist
+mechanism\&. In playlist mode, files can be added to the playlist
+using the \fI-q\fP option\&. The \fI-p\fP option can then be used
+to play all tracks on the playlist\&. Ecaplay will repeat the
+playlist tracks until explicitly stopped (with double Ctrl-C)\&.
+Playlist can be flushed with \fI-f\fP and its contents listed
+with \fI-l\fP option\&.
+.PP
+If not otherwise specified, ecaplay will use the audio output device
+specified in \fI~/\&.ecasound/ecasoundrc\fP for playback\&. A different
+output device can be selected with \fIECAPLAY_OUTPUT_DEVICE\fP shell
+environment variable or with the \fI-o:output_device\fP command-line
+option\&.
+.PP
+Playback can be stopped at any time with Ctrl-C\&. If multiple
+files are played, first Ctrl-C will stop the current file and move
+on to play the next one\&. Issuing Ctrl-C twice (within one second),
+will cause ecaplay to exit\&.
+.PP
+.IP "-d:debuglevel"
+Set libecasound debug level\&. See ecasound(1)\&.
+.IP
+.IP "-f"
+Flush the playlist contents\&. See also
+options \fI-l, -p and -q\fP\&.
+.IP
+.IP "-h"
+Print usage information and exit\&.
+.IP
+.IP "-k:number"
+Skip \&'number\&' of files\&.
+.IP
+.IP "-l"
+List the current playlist contents to stdout\&. See also
+options \fI-f, -p and -q\fP\&.
+.IP
+.IP "-o:output_device"
+Use \&'output_device\&' instead of the default output device
+(as specified in \fI~/\&.ecasound/ecasoundrc\fP)\&. Syntax is same
+as used by "-o" ecasound option (see ecasound(1) man page)\&.
+This option overrides the \fIECAPLAY_OUTPUT_DEVICE\fP environment
+variable (more info below)\&.
+.IP
+.IP "-p"
+Play tracks in the playlist (in looped mode)\&. See also
+options \fI-f, -l and -q\fP\&.
+.IP
+.IP "-q"
+Queue new tracks to the playlist\&. All filenames given on
+the command-line will be added to the the playlist\&. It is
+possible to queue new tracks while another instance of
+ecaplay is using the playlist\&. See also options \fI-f, -l
+and -p\fP\&.
+.IP
+\fBECASIGNALVIEW\fP
+.PP
+Ecasignalview is meant for monitoring signal amplitude and peak
+statistics\&. It accepts the following options:
+.PP
+.IP "input"
+The first option not starting with a \&'-\&' is interpreted
+as an input string\&. This can be a device or a filename\&. All formats
+supported by libecasound are accepted\&. Defaults to \&'/dev/dsp\&'\&.
+.IP
+.IP "output"
+Similarly to input, second option not starting with a \&'-\&'
+is interpreted as output\&. Defaults to \&'null\&'\&.
+.IP
+.IP "-b:buffersize"
+Buffersize in sample frames\&. Defaults to 128\&.
+.IP
+.IP "-c"
+Enable cumulative mode\&. Counters are not reseted after refresh\&.
+\fI*deprecated*\fP
+.IP
+.IP "-d"
+Enable debug mode\&.
+.IP
+.IP "-f:format_string"
+Specify default audio format\&. See ecasound(1) for details\&.
+.IP
+.IP "-r:rate_msec"
+Specify screen refresh rate in milliseconds\&.
+.IP
+.IP "-I"
+Use linear scale for showing audio sample amplitude\&.
+.IP
+.IP "-L"
+Use logarithmic scale for showing audio sample amplitude\&.
+.IP
+.IP "-G, -B, -M*, -r, -z"
+Ecasound options use to modify the engine behaviour, see
+ecasound(1) manpage for details\&.
+.IP
+When ecasignalview is running, the following keyboard
+commands can be used to control the operation (requires
+system support for UNIX terminal interface control):
+.PP
+.IP "spacebar"
+Reset statistics (max-peak, avg-amplitude and clipped
+samples count)\&.
+.IP
+.IP "q or Q or Esc"
+Quit ecasignalview\&.
+.IP
+It is also possible to reset the max-peak and clipped-samples
+counters by sending a SIGHUP signal to the process (i\&.e\&.
+from another console: "killall -v -HUP ecasignalview")\&.
+.PP
+More complete documentation for ecasignalview can be found
+from "Ecasound User\&'s Guide" (see \&'\&'http://www\&.eca\&.cx/ecasound
+-> Documentation\&'\&')\&.
+.PP
+.SH "ENVIRONMENT"
+
+.PP
+\fIECASOUND\fP
+Path to the ecasound executable\&. Used by many ecatools\&.
+.PP
+\fIECAPLAY_OUTPUT_DEVICE\fP
+Device ecaplay should use for audio output\&. Same syntax
+as for ecaplay/ecasound "-o" option\&.
+.PP
+.SH "FILES"
+
+.PP
+\fI~/\&.ecasound/ecasoundrc\fP
+The default ecasound resource file\&. See ecasoundrc(5)
+for details\&.
+.PP
+\fI~/\&.ecasound/ecaplay_queue\fP
+File used to store the ecaplay playlist (one track per
+line with full path)\&.
+.PP
+.SH "SEE ALSO"
+
+.PP
+ecasound (1), ecalength(1), "HTML docs in the Documentation subdirectory"
+.PP
+.SH "AUTHOR"
+
+.PP
+Kai Vehmanen, >
diff --git a/ecasound-2.7.2/Documentation/ecalength.1 b/ecasound-2.7.2/Documentation/ecalength.1
new file mode 100644
index 000000000..8e018031e
--- /dev/null
+++ b/ecasound-2.7.2/Documentation/ecalength.1
@@ -0,0 +1,76 @@
+.TH "ecalength" "1" "18\&.04\&.2004" "" "Multimedia software"
+
+.PP
+.SH "NAME"
+ecalength \- prints audio file lenght and other information
+.PP
+.SH "SYNOPSIS"
+\fBecalength\fP [-ahtsfmbcr] FILE1 [FILE2] [FILEn]
+.PP
+.SH "DESCRIPTION"
+
+.PP
+This is ecalength, a few lines of code pompously named so because they
+let one retrieve the length of an audio file from the command line
+using ecasound\&'s engine\&.
+.PP
+Limitations:
+.IP ""
+- With files without header information (raw files), ecalength will only work
+correctly if the audio file is at a sampling rate of 44100 hz\&.
+(Addressed with the -a switch\&.)
+.IP ""
+- It is not foolproof, feeding it with something other than an audio
+file WILL result in ugly things being spewed back\&.
+(A bit better)
+.IP ""
+- A thousand more that I haven\&'t thought of\&.
+
+.PP
+.SH "OPTIONS"
+
+.PP
+.IP "-h"
+Prints this usage message\&. (help)
+.IP
+.IP "-a[:]bits,channels,rate"
+Changes the format assumed by default for headerless data\&. (adjust)
+.IP
+.IP "-t"
+Prints the summed length of all the files processed\&. (total)
+(Ignored if with -s)
+.IP
+.IP "-s"
+Enables script mode: One info type per file per line\&. (script)
+(Defaults to length in secs\&.)
+.IP
+.IP "-f"
+With -s will return the format string as info, alone it will
+add it to the main display\&. (format)
+.IP
+.IP "-b"
+If -s and -f are enabled with this the info printed will be
+the sample\&'s bitwidth\&. (bits)
+.IP
+.IP "-c"
+If -s and -f are enabled with this the info printed will be
+the channel count\&. (channel count)
+.IP
+.IP "-r"
+If -s and -f are enabled with this the info printed will be
+the sampling rate\&. (rate)
+.IP
+.IP "-m"
+Will print human computable time as in main display but in
+batch fashion\&. (minutes) (Only with -s)
+
+.PP
+.SH "SEE ALSO"
+
+.PP
+ecasound(1), ecatools(1)
+.PP
+.SH "AUTHOR"
+
+.PP
+S\&.Massy, >
diff --git a/ecasound-2.7.2/Documentation/ecalength_manpage.html b/ecasound-2.7.2/Documentation/ecalength_manpage.html
new file mode 100644
index 000000000..d765a3534
--- /dev/null
+++ b/ecasound-2.7.2/Documentation/ecalength_manpage.html
@@ -0,0 +1,95 @@
+
+ecalength
+
+
+
+
+
ecalength
+
18.04.2004
+
+
+
+
+
+
+
+
+
+ecalength(1)
+
+
+
+
+
ecalength(1)
+
Multimedia software
+
18.04.2004
+
+
+
+
NAME
ecalength - prints audio file lenght and other information
+
+
SYNOPSIS
+ ecalength [-ahtsfmbcr] FILE1 [FILE2] [FILEn]
+
+
DESCRIPTION
+
+This is ecalength, a few lines of code pompously named so because they
+let one retrieve the length of an audio file from the command line
+using ecasound's engine.
+
+Limitations:
+
+
- With files without header information (raw files), ecalength will only work
+ correctly if the audio file is at a sampling rate of 44100 hz.
+ (Addressed with the -a switch.)
+
- It is not foolproof, feeding it with something other than an audio
+ file WILL result in ugly things being spewed back.
+ (A bit better)
+
- A thousand more that I haven't thought of.
+
+
+
OPTIONS
+
+
+
-h
+Prints this usage message. (help)
+
+
-a[:]bits,channels,rate
+Changes the format assumed by default for headerless data. (adjust)
+
+
-t
+Prints the summed length of all the files processed. (total)
+(Ignored if with -s)
+
+
-s
+Enables script mode: One info type per file per line. (script)
+(Defaults to length in secs.)
+
+
-f
+With -s will return the format string as info, alone it will
+add it to the main display. (format)
+
+
-b
+If -s and -f are enabled with this the info printed will be
+the sample's bitwidth. (bits)
+
+
-c
+If -s and -f are enabled with this the info printed will be
+the channel count. (channel count)
+
+
-r
+If -s and -f are enabled with this the info printed will be
+the sampling rate. (rate)
+
+
-m
+Will print human computable time as in main display but in
+batch fashion. (minutes) (Only with -s)
+
+
+
SEE ALSO
+
+ecasound(1), ecatools(1)
+
+
AUTHOR
+
+S.Massy, <observer |at| colba.net>
diff --git a/ecasound-2.7.2/Documentation/ecamonitor.1 b/ecasound-2.7.2/Documentation/ecamonitor.1
new file mode 100644
index 000000000..824dc5713
--- /dev/null
+++ b/ecasound-2.7.2/Documentation/ecamonitor.1
@@ -0,0 +1,220 @@
+.TH "ecatools" "1" "12\&.11\&.2005" "" "Multimedia software"
+
+.PP
+.SH "NAME"
+ecatools \- audio processing utils based on ecasound
+.PP
+.SH "SYNOPSIS"
+\fBecaconvert\fP \&.extension file1 [ file2 \&.\&.\&. fileN ]
+.PP
+\fBecafixdc\fP file1 [ file2 \&.\&.\&. fileN ]
+.PP
+\fBecalength\fP file1 [ file2 \&.\&.\&. fileN ]
+.PP
+\fBecamonitor\fP [host][:port]
+.PP
+\fBecanormalize\fP file1 [ file2 \&.\&.\&. fileN ]
+.PP
+\fBecaplay\fP [-dfhklopq] [ file1 file2 \&.\&.\&. fileN ]
+.PP
+\fBecasignalview\fP [ options ] [ input ] [ output ]
+.PP
+.SH "DESCRIPTION"
+
+.PP
+Ecatools are simple command line utils for audio file processing\&.
+Each tool is designed to perform one specific operation\&. Most of
+the tools also support batch processing\&.
+.PP
+\fBECACONVERT\fP
+.PP
+A tool for converting a set of files to a common target format\&.
+This target format is given as the first command line
+argument, and its syntax is \fI\&.ext\fP\&.
+.PP
+\fBECAFIXDC\fP
+.PP
+A simple command-line tool for fixing DC-offset\&.
+.PP
+\fBECALENGTH\fP
+.PP
+See the separate ecalength(1) man page\&.
+.PP
+\fBECAMONITOR\fP
+.PP
+Ecamonitor is a util program that can be used
+to monitor an active ecasound session\&. Ecamonitor
+is able to show information about the current
+chainsetup such as list of inputs, outputs,
+current position, effects, the engine status
+and numerous other things\&.
+.PP
+By default ecamonitor will try to connect
+to IP4 address "localhost", to port "2868"\&.
+A different address can be specified when
+starting ecamonitor, for example
+"ecamonitor foo\&.mynetwork\&.com" or
+"ecamonitor foo\&.mynetwork\&.com:4500"\&.
+.PP
+To enable inbound connections, ecasound has to be
+started with the \fI--daemon\fP option\&. Ecamonitor is
+implemented in Python using the NetECI API\&.
+.PP
+\fBECANORMALIZE\fP
+.PP
+Ecanormalize is a command-line tool for normalizing audio
+files to utilize the full available sample resolution\&. Ecanormalize
+first finds out how much the input file can be amplified without
+clipping and if there is room for increase, a static gain will
+be applied to the file\&.
+.PP
+\fBECAPLAY\fP
+.PP
+Ecaplay is a command-line tool for playing audio files\&. Ecaplay
+uses the libecasound engine and is thus able to handle all audio formats
+supported by the library\&.
+.PP
+Files can be selected for playback either by specifying the
+filenames on the command-line, or by using the playlist
+mechanism\&. In playlist mode, files can be added to the playlist
+using the \fI-q\fP option\&. The \fI-p\fP option can then be used
+to play all tracks on the playlist\&. Ecaplay will repeat the
+playlist tracks until explicitly stopped (with double Ctrl-C)\&.
+Playlist can be flushed with \fI-f\fP and its contents listed
+with \fI-l\fP option\&.
+.PP
+If not otherwise specified, ecaplay will use the audio output device
+specified in \fI~/\&.ecasound/ecasoundrc\fP for playback\&. A different
+output device can be selected with \fIECAPLAY_OUTPUT_DEVICE\fP shell
+environment variable or with the \fI-o:output_device\fP command-line
+option\&.
+.PP
+Playback can be stopped at any time with Ctrl-C\&. If multiple
+files are played, first Ctrl-C will stop the current file and move
+on to play the next one\&. Issuing Ctrl-C twice (within one second),
+will cause ecaplay to exit\&.
+.PP
+.IP "-d:debuglevel"
+Set libecasound debug level\&. See ecasound(1)\&.
+.IP
+.IP "-f"
+Flush the playlist contents\&. See also
+options \fI-l, -p and -q\fP\&.
+.IP
+.IP "-h"
+Print usage information and exit\&.
+.IP
+.IP "-k:number"
+Skip \&'number\&' of files\&.
+.IP
+.IP "-l"
+List the current playlist contents to stdout\&. See also
+options \fI-f, -p and -q\fP\&.
+.IP
+.IP "-o:output_device"
+Use \&'output_device\&' instead of the default output device
+(as specified in \fI~/\&.ecasound/ecasoundrc\fP)\&. Syntax is same
+as used by "-o" ecasound option (see ecasound(1) man page)\&.
+This option overrides the \fIECAPLAY_OUTPUT_DEVICE\fP environment
+variable (more info below)\&.
+.IP
+.IP "-p"
+Play tracks in the playlist (in looped mode)\&. See also
+options \fI-f, -l and -q\fP\&.
+.IP
+.IP "-q"
+Queue new tracks to the playlist\&. All filenames given on
+the command-line will be added to the the playlist\&. It is
+possible to queue new tracks while another instance of
+ecaplay is using the playlist\&. See also options \fI-f, -l
+and -p\fP\&.
+.IP
+\fBECASIGNALVIEW\fP
+.PP
+Ecasignalview is meant for monitoring signal amplitude and peak
+statistics\&. It accepts the following options:
+.PP
+.IP "input"
+The first option not starting with a \&'-\&' is interpreted
+as an input string\&. This can be a device or a filename\&. All formats
+supported by libecasound are accepted\&. Defaults to \&'/dev/dsp\&'\&.
+.IP
+.IP "output"
+Similarly to input, second option not starting with a \&'-\&'
+is interpreted as output\&. Defaults to \&'null\&'\&.
+.IP
+.IP "-b:buffersize"
+Buffersize in sample frames\&. Defaults to 128\&.
+.IP
+.IP "-c"
+Enable cumulative mode\&. Counters are not reseted after refresh\&.
+\fI*deprecated*\fP
+.IP
+.IP "-d"
+Enable debug mode\&.
+.IP
+.IP "-f:format_string"
+Specify default audio format\&. See ecasound(1) for details\&.
+.IP
+.IP "-r:rate_msec"
+Specify screen refresh rate in milliseconds\&.
+.IP
+.IP "-I"
+Use linear scale for showing audio sample amplitude\&.
+.IP
+.IP "-L"
+Use logarithmic scale for showing audio sample amplitude\&.
+.IP
+.IP "-G, -B, -M*, -r, -z"
+Ecasound options use to modify the engine behaviour, see
+ecasound(1) manpage for details\&.
+.IP
+When ecasignalview is running, the following keyboard
+commands can be used to control the operation (requires
+system support for UNIX terminal interface control):
+.PP
+.IP "spacebar"
+Reset statistics (max-peak, avg-amplitude and clipped
+samples count)\&.
+.IP
+.IP "q or Q or Esc"
+Quit ecasignalview\&.
+.IP
+It is also possible to reset the max-peak and clipped-samples
+counters by sending a SIGHUP signal to the process (i\&.e\&.
+from another console: "killall -v -HUP ecasignalview")\&.
+.PP
+More complete documentation for ecasignalview can be found
+from "Ecasound User\&'s Guide" (see \&'\&'http://www\&.eca\&.cx/ecasound
+-> Documentation\&'\&')\&.
+.PP
+.SH "ENVIRONMENT"
+
+.PP
+\fIECASOUND\fP
+Path to the ecasound executable\&. Used by many ecatools\&.
+.PP
+\fIECAPLAY_OUTPUT_DEVICE\fP
+Device ecaplay should use for audio output\&. Same syntax
+as for ecaplay/ecasound "-o" option\&.
+.PP
+.SH "FILES"
+
+.PP
+\fI~/\&.ecasound/ecasoundrc\fP
+The default ecasound resource file\&. See ecasoundrc(5)
+for details\&.
+.PP
+\fI~/\&.ecasound/ecaplay_queue\fP
+File used to store the ecaplay playlist (one track per
+line with full path)\&.
+.PP
+.SH "SEE ALSO"
+
+.PP
+ecasound (1), ecalength(1), "HTML docs in the Documentation subdirectory"
+.PP
+.SH "AUTHOR"
+
+.PP
+Kai Vehmanen, >
diff --git a/ecasound-2.7.2/Documentation/ecanormalize.1 b/ecasound-2.7.2/Documentation/ecanormalize.1
new file mode 100644
index 000000000..824dc5713
--- /dev/null
+++ b/ecasound-2.7.2/Documentation/ecanormalize.1
@@ -0,0 +1,220 @@
+.TH "ecatools" "1" "12\&.11\&.2005" "" "Multimedia software"
+
+.PP
+.SH "NAME"
+ecatools \- audio processing utils based on ecasound
+.PP
+.SH "SYNOPSIS"
+\fBecaconvert\fP \&.extension file1 [ file2 \&.\&.\&. fileN ]
+.PP
+\fBecafixdc\fP file1 [ file2 \&.\&.\&. fileN ]
+.PP
+\fBecalength\fP file1 [ file2 \&.\&.\&. fileN ]
+.PP
+\fBecamonitor\fP [host][:port]
+.PP
+\fBecanormalize\fP file1 [ file2 \&.\&.\&. fileN ]
+.PP
+\fBecaplay\fP [-dfhklopq] [ file1 file2 \&.\&.\&. fileN ]
+.PP
+\fBecasignalview\fP [ options ] [ input ] [ output ]
+.PP
+.SH "DESCRIPTION"
+
+.PP
+Ecatools are simple command line utils for audio file processing\&.
+Each tool is designed to perform one specific operation\&. Most of
+the tools also support batch processing\&.
+.PP
+\fBECACONVERT\fP
+.PP
+A tool for converting a set of files to a common target format\&.
+This target format is given as the first command line
+argument, and its syntax is \fI\&.ext\fP\&.
+.PP
+\fBECAFIXDC\fP
+.PP
+A simple command-line tool for fixing DC-offset\&.
+.PP
+\fBECALENGTH\fP
+.PP
+See the separate ecalength(1) man page\&.
+.PP
+\fBECAMONITOR\fP
+.PP
+Ecamonitor is a util program that can be used
+to monitor an active ecasound session\&. Ecamonitor
+is able to show information about the current
+chainsetup such as list of inputs, outputs,
+current position, effects, the engine status
+and numerous other things\&.
+.PP
+By default ecamonitor will try to connect
+to IP4 address "localhost", to port "2868"\&.
+A different address can be specified when
+starting ecamonitor, for example
+"ecamonitor foo\&.mynetwork\&.com" or
+"ecamonitor foo\&.mynetwork\&.com:4500"\&.
+.PP
+To enable inbound connections, ecasound has to be
+started with the \fI--daemon\fP option\&. Ecamonitor is
+implemented in Python using the NetECI API\&.
+.PP
+\fBECANORMALIZE\fP
+.PP
+Ecanormalize is a command-line tool for normalizing audio
+files to utilize the full available sample resolution\&. Ecanormalize
+first finds out how much the input file can be amplified without
+clipping and if there is room for increase, a static gain will
+be applied to the file\&.
+.PP
+\fBECAPLAY\fP
+.PP
+Ecaplay is a command-line tool for playing audio files\&. Ecaplay
+uses the libecasound engine and is thus able to handle all audio formats
+supported by the library\&.
+.PP
+Files can be selected for playback either by specifying the
+filenames on the command-line, or by using the playlist
+mechanism\&. In playlist mode, files can be added to the playlist
+using the \fI-q\fP option\&. The \fI-p\fP option can then be used
+to play all tracks on the playlist\&. Ecaplay will repeat the
+playlist tracks until explicitly stopped (with double Ctrl-C)\&.
+Playlist can be flushed with \fI-f\fP and its contents listed
+with \fI-l\fP option\&.
+.PP
+If not otherwise specified, ecaplay will use the audio output device
+specified in \fI~/\&.ecasound/ecasoundrc\fP for playback\&. A different
+output device can be selected with \fIECAPLAY_OUTPUT_DEVICE\fP shell
+environment variable or with the \fI-o:output_device\fP command-line
+option\&.
+.PP
+Playback can be stopped at any time with Ctrl-C\&. If multiple
+files are played, first Ctrl-C will stop the current file and move
+on to play the next one\&. Issuing Ctrl-C twice (within one second),
+will cause ecaplay to exit\&.
+.PP
+.IP "-d:debuglevel"
+Set libecasound debug level\&. See ecasound(1)\&.
+.IP
+.IP "-f"
+Flush the playlist contents\&. See also
+options \fI-l, -p and -q\fP\&.
+.IP
+.IP "-h"
+Print usage information and exit\&.
+.IP
+.IP "-k:number"
+Skip \&'number\&' of files\&.
+.IP
+.IP "-l"
+List the current playlist contents to stdout\&. See also
+options \fI-f, -p and -q\fP\&.
+.IP
+.IP "-o:output_device"
+Use \&'output_device\&' instead of the default output device
+(as specified in \fI~/\&.ecasound/ecasoundrc\fP)\&. Syntax is same
+as used by "-o" ecasound option (see ecasound(1) man page)\&.
+This option overrides the \fIECAPLAY_OUTPUT_DEVICE\fP environment
+variable (more info below)\&.
+.IP
+.IP "-p"
+Play tracks in the playlist (in looped mode)\&. See also
+options \fI-f, -l and -q\fP\&.
+.IP
+.IP "-q"
+Queue new tracks to the playlist\&. All filenames given on
+the command-line will be added to the the playlist\&. It is
+possible to queue new tracks while another instance of
+ecaplay is using the playlist\&. See also options \fI-f, -l
+and -p\fP\&.
+.IP
+\fBECASIGNALVIEW\fP
+.PP
+Ecasignalview is meant for monitoring signal amplitude and peak
+statistics\&. It accepts the following options:
+.PP
+.IP "input"
+The first option not starting with a \&'-\&' is interpreted
+as an input string\&. This can be a device or a filename\&. All formats
+supported by libecasound are accepted\&. Defaults to \&'/dev/dsp\&'\&.
+.IP
+.IP "output"
+Similarly to input, second option not starting with a \&'-\&'
+is interpreted as output\&. Defaults to \&'null\&'\&.
+.IP
+.IP "-b:buffersize"
+Buffersize in sample frames\&. Defaults to 128\&.
+.IP
+.IP "-c"
+Enable cumulative mode\&. Counters are not reseted after refresh\&.
+\fI*deprecated*\fP
+.IP
+.IP "-d"
+Enable debug mode\&.
+.IP
+.IP "-f:format_string"
+Specify default audio format\&. See ecasound(1) for details\&.
+.IP
+.IP "-r:rate_msec"
+Specify screen refresh rate in milliseconds\&.
+.IP
+.IP "-I"
+Use linear scale for showing audio sample amplitude\&.
+.IP
+.IP "-L"
+Use logarithmic scale for showing audio sample amplitude\&.
+.IP
+.IP "-G, -B, -M*, -r, -z"
+Ecasound options use to modify the engine behaviour, see
+ecasound(1) manpage for details\&.
+.IP
+When ecasignalview is running, the following keyboard
+commands can be used to control the operation (requires
+system support for UNIX terminal interface control):
+.PP
+.IP "spacebar"
+Reset statistics (max-peak, avg-amplitude and clipped
+samples count)\&.
+.IP
+.IP "q or Q or Esc"
+Quit ecasignalview\&.
+.IP
+It is also possible to reset the max-peak and clipped-samples
+counters by sending a SIGHUP signal to the process (i\&.e\&.
+from another console: "killall -v -HUP ecasignalview")\&.
+.PP
+More complete documentation for ecasignalview can be found
+from "Ecasound User\&'s Guide" (see \&'\&'http://www\&.eca\&.cx/ecasound
+-> Documentation\&'\&')\&.
+.PP
+.SH "ENVIRONMENT"
+
+.PP
+\fIECASOUND\fP
+Path to the ecasound executable\&. Used by many ecatools\&.
+.PP
+\fIECAPLAY_OUTPUT_DEVICE\fP
+Device ecaplay should use for audio output\&. Same syntax
+as for ecaplay/ecasound "-o" option\&.
+.PP
+.SH "FILES"
+
+.PP
+\fI~/\&.ecasound/ecasoundrc\fP
+The default ecasound resource file\&. See ecasoundrc(5)
+for details\&.
+.PP
+\fI~/\&.ecasound/ecaplay_queue\fP
+File used to store the ecaplay playlist (one track per
+line with full path)\&.
+.PP
+.SH "SEE ALSO"
+
+.PP
+ecasound (1), ecalength(1), "HTML docs in the Documentation subdirectory"
+.PP
+.SH "AUTHOR"
+
+.PP
+Kai Vehmanen, >
diff --git a/ecasound-2.7.2/Documentation/ecaplay.1 b/ecasound-2.7.2/Documentation/ecaplay.1
new file mode 100644
index 000000000..824dc5713
--- /dev/null
+++ b/ecasound-2.7.2/Documentation/ecaplay.1
@@ -0,0 +1,220 @@
+.TH "ecatools" "1" "12\&.11\&.2005" "" "Multimedia software"
+
+.PP
+.SH "NAME"
+ecatools \- audio processing utils based on ecasound
+.PP
+.SH "SYNOPSIS"
+\fBecaconvert\fP \&.extension file1 [ file2 \&.\&.\&. fileN ]
+.PP
+\fBecafixdc\fP file1 [ file2 \&.\&.\&. fileN ]
+.PP
+\fBecalength\fP file1 [ file2 \&.\&.\&. fileN ]
+.PP
+\fBecamonitor\fP [host][:port]
+.PP
+\fBecanormalize\fP file1 [ file2 \&.\&.\&. fileN ]
+.PP
+\fBecaplay\fP [-dfhklopq] [ file1 file2 \&.\&.\&. fileN ]
+.PP
+\fBecasignalview\fP [ options ] [ input ] [ output ]
+.PP
+.SH "DESCRIPTION"
+
+.PP
+Ecatools are simple command line utils for audio file processing\&.
+Each tool is designed to perform one specific operation\&. Most of
+the tools also support batch processing\&.
+.PP
+\fBECACONVERT\fP
+.PP
+A tool for converting a set of files to a common target format\&.
+This target format is given as the first command line
+argument, and its syntax is \fI\&.ext\fP\&.
+.PP
+\fBECAFIXDC\fP
+.PP
+A simple command-line tool for fixing DC-offset\&.
+.PP
+\fBECALENGTH\fP
+.PP
+See the separate ecalength(1) man page\&.
+.PP
+\fBECAMONITOR\fP
+.PP
+Ecamonitor is a util program that can be used
+to monitor an active ecasound session\&. Ecamonitor
+is able to show information about the current
+chainsetup such as list of inputs, outputs,
+current position, effects, the engine status
+and numerous other things\&.
+.PP
+By default ecamonitor will try to connect
+to IP4 address "localhost", to port "2868"\&.
+A different address can be specified when
+starting ecamonitor, for example
+"ecamonitor foo\&.mynetwork\&.com" or
+"ecamonitor foo\&.mynetwork\&.com:4500"\&.
+.PP
+To enable inbound connections, ecasound has to be
+started with the \fI--daemon\fP option\&. Ecamonitor is
+implemented in Python using the NetECI API\&.
+.PP
+\fBECANORMALIZE\fP
+.PP
+Ecanormalize is a command-line tool for normalizing audio
+files to utilize the full available sample resolution\&. Ecanormalize
+first finds out how much the input file can be amplified without
+clipping and if there is room for increase, a static gain will
+be applied to the file\&.
+.PP
+\fBECAPLAY\fP
+.PP
+Ecaplay is a command-line tool for playing audio files\&. Ecaplay
+uses the libecasound engine and is thus able to handle all audio formats
+supported by the library\&.
+.PP
+Files can be selected for playback either by specifying the
+filenames on the command-line, or by using the playlist
+mechanism\&. In playlist mode, files can be added to the playlist
+using the \fI-q\fP option\&. The \fI-p\fP option can then be used
+to play all tracks on the playlist\&. Ecaplay will repeat the
+playlist tracks until explicitly stopped (with double Ctrl-C)\&.
+Playlist can be flushed with \fI-f\fP and its contents listed
+with \fI-l\fP option\&.
+.PP
+If not otherwise specified, ecaplay will use the audio output device
+specified in \fI~/\&.ecasound/ecasoundrc\fP for playback\&. A different
+output device can be selected with \fIECAPLAY_OUTPUT_DEVICE\fP shell
+environment variable or with the \fI-o:output_device\fP command-line
+option\&.
+.PP
+Playback can be stopped at any time with Ctrl-C\&. If multiple
+files are played, first Ctrl-C will stop the current file and move
+on to play the next one\&. Issuing Ctrl-C twice (within one second),
+will cause ecaplay to exit\&.
+.PP
+.IP "-d:debuglevel"
+Set libecasound debug level\&. See ecasound(1)\&.
+.IP
+.IP "-f"
+Flush the playlist contents\&. See also
+options \fI-l, -p and -q\fP\&.
+.IP
+.IP "-h"
+Print usage information and exit\&.
+.IP
+.IP "-k:number"
+Skip \&'number\&' of files\&.
+.IP
+.IP "-l"
+List the current playlist contents to stdout\&. See also
+options \fI-f, -p and -q\fP\&.
+.IP
+.IP "-o:output_device"
+Use \&'output_device\&' instead of the default output device
+(as specified in \fI~/\&.ecasound/ecasoundrc\fP)\&. Syntax is same
+as used by "-o" ecasound option (see ecasound(1) man page)\&.
+This option overrides the \fIECAPLAY_OUTPUT_DEVICE\fP environment
+variable (more info below)\&.
+.IP
+.IP "-p"
+Play tracks in the playlist (in looped mode)\&. See also
+options \fI-f, -l and -q\fP\&.
+.IP
+.IP "-q"
+Queue new tracks to the playlist\&. All filenames given on
+the command-line will be added to the the playlist\&. It is
+possible to queue new tracks while another instance of
+ecaplay is using the playlist\&. See also options \fI-f, -l
+and -p\fP\&.
+.IP
+\fBECASIGNALVIEW\fP
+.PP
+Ecasignalview is meant for monitoring signal amplitude and peak
+statistics\&. It accepts the following options:
+.PP
+.IP "input"
+The first option not starting with a \&'-\&' is interpreted
+as an input string\&. This can be a device or a filename\&. All formats
+supported by libecasound are accepted\&. Defaults to \&'/dev/dsp\&'\&.
+.IP
+.IP "output"
+Similarly to input, second option not starting with a \&'-\&'
+is interpreted as output\&. Defaults to \&'null\&'\&.
+.IP
+.IP "-b:buffersize"
+Buffersize in sample frames\&. Defaults to 128\&.
+.IP
+.IP "-c"
+Enable cumulative mode\&. Counters are not reseted after refresh\&.
+\fI*deprecated*\fP
+.IP
+.IP "-d"
+Enable debug mode\&.
+.IP
+.IP "-f:format_string"
+Specify default audio format\&. See ecasound(1) for details\&.
+.IP
+.IP "-r:rate_msec"
+Specify screen refresh rate in milliseconds\&.
+.IP
+.IP "-I"
+Use linear scale for showing audio sample amplitude\&.
+.IP
+.IP "-L"
+Use logarithmic scale for showing audio sample amplitude\&.
+.IP
+.IP "-G, -B, -M*, -r, -z"
+Ecasound options use to modify the engine behaviour, see
+ecasound(1) manpage for details\&.
+.IP
+When ecasignalview is running, the following keyboard
+commands can be used to control the operation (requires
+system support for UNIX terminal interface control):
+.PP
+.IP "spacebar"
+Reset statistics (max-peak, avg-amplitude and clipped
+samples count)\&.
+.IP
+.IP "q or Q or Esc"
+Quit ecasignalview\&.
+.IP
+It is also possible to reset the max-peak and clipped-samples
+counters by sending a SIGHUP signal to the process (i\&.e\&.
+from another console: "killall -v -HUP ecasignalview")\&.
+.PP
+More complete documentation for ecasignalview can be found
+from "Ecasound User\&'s Guide" (see \&'\&'http://www\&.eca\&.cx/ecasound
+-> Documentation\&'\&')\&.
+.PP
+.SH "ENVIRONMENT"
+
+.PP
+\fIECASOUND\fP
+Path to the ecasound executable\&. Used by many ecatools\&.
+.PP
+\fIECAPLAY_OUTPUT_DEVICE\fP
+Device ecaplay should use for audio output\&. Same syntax
+as for ecaplay/ecasound "-o" option\&.
+.PP
+.SH "FILES"
+
+.PP
+\fI~/\&.ecasound/ecasoundrc\fP
+The default ecasound resource file\&. See ecasoundrc(5)
+for details\&.
+.PP
+\fI~/\&.ecasound/ecaplay_queue\fP
+File used to store the ecaplay playlist (one track per
+line with full path)\&.
+.PP
+.SH "SEE ALSO"
+
+.PP
+ecasound (1), ecalength(1), "HTML docs in the Documentation subdirectory"
+.PP
+.SH "AUTHOR"
+
+.PP
+Kai Vehmanen, >
diff --git a/ecasound-2.7.2/Documentation/ecasignalview.1 b/ecasound-2.7.2/Documentation/ecasignalview.1
new file mode 100644
index 000000000..824dc5713
--- /dev/null
+++ b/ecasound-2.7.2/Documentation/ecasignalview.1
@@ -0,0 +1,220 @@
+.TH "ecatools" "1" "12\&.11\&.2005" "" "Multimedia software"
+
+.PP
+.SH "NAME"
+ecatools \- audio processing utils based on ecasound
+.PP
+.SH "SYNOPSIS"
+\fBecaconvert\fP \&.extension file1 [ file2 \&.\&.\&. fileN ]
+.PP
+\fBecafixdc\fP file1 [ file2 \&.\&.\&. fileN ]
+.PP
+\fBecalength\fP file1 [ file2 \&.\&.\&. fileN ]
+.PP
+\fBecamonitor\fP [host][:port]
+.PP
+\fBecanormalize\fP file1 [ file2 \&.\&.\&. fileN ]
+.PP
+\fBecaplay\fP [-dfhklopq] [ file1 file2 \&.\&.\&. fileN ]
+.PP
+\fBecasignalview\fP [ options ] [ input ] [ output ]
+.PP
+.SH "DESCRIPTION"
+
+.PP
+Ecatools are simple command line utils for audio file processing\&.
+Each tool is designed to perform one specific operation\&. Most of
+the tools also support batch processing\&.
+.PP
+\fBECACONVERT\fP
+.PP
+A tool for converting a set of files to a common target format\&.
+This target format is given as the first command line
+argument, and its syntax is \fI\&.ext\fP\&.
+.PP
+\fBECAFIXDC\fP
+.PP
+A simple command-line tool for fixing DC-offset\&.
+.PP
+\fBECALENGTH\fP
+.PP
+See the separate ecalength(1) man page\&.
+.PP
+\fBECAMONITOR\fP
+.PP
+Ecamonitor is a util program that can be used
+to monitor an active ecasound session\&. Ecamonitor
+is able to show information about the current
+chainsetup such as list of inputs, outputs,
+current position, effects, the engine status
+and numerous other things\&.
+.PP
+By default ecamonitor will try to connect
+to IP4 address "localhost", to port "2868"\&.
+A different address can be specified when
+starting ecamonitor, for example
+"ecamonitor foo\&.mynetwork\&.com" or
+"ecamonitor foo\&.mynetwork\&.com:4500"\&.
+.PP
+To enable inbound connections, ecasound has to be
+started with the \fI--daemon\fP option\&. Ecamonitor is
+implemented in Python using the NetECI API\&.
+.PP
+\fBECANORMALIZE\fP
+.PP
+Ecanormalize is a command-line tool for normalizing audio
+files to utilize the full available sample resolution\&. Ecanormalize
+first finds out how much the input file can be amplified without
+clipping and if there is room for increase, a static gain will
+be applied to the file\&.
+.PP
+\fBECAPLAY\fP
+.PP
+Ecaplay is a command-line tool for playing audio files\&. Ecaplay
+uses the libecasound engine and is thus able to handle all audio formats
+supported by the library\&.
+.PP
+Files can be selected for playback either by specifying the
+filenames on the command-line, or by using the playlist
+mechanism\&. In playlist mode, files can be added to the playlist
+using the \fI-q\fP option\&. The \fI-p\fP option can then be used
+to play all tracks on the playlist\&. Ecaplay will repeat the
+playlist tracks until explicitly stopped (with double Ctrl-C)\&.
+Playlist can be flushed with \fI-f\fP and its contents listed
+with \fI-l\fP option\&.
+.PP
+If not otherwise specified, ecaplay will use the audio output device
+specified in \fI~/\&.ecasound/ecasoundrc\fP for playback\&. A different
+output device can be selected with \fIECAPLAY_OUTPUT_DEVICE\fP shell
+environment variable or with the \fI-o:output_device\fP command-line
+option\&.
+.PP
+Playback can be stopped at any time with Ctrl-C\&. If multiple
+files are played, first Ctrl-C will stop the current file and move
+on to play the next one\&. Issuing Ctrl-C twice (within one second),
+will cause ecaplay to exit\&.
+.PP
+.IP "-d:debuglevel"
+Set libecasound debug level\&. See ecasound(1)\&.
+.IP
+.IP "-f"
+Flush the playlist contents\&. See also
+options \fI-l, -p and -q\fP\&.
+.IP
+.IP "-h"
+Print usage information and exit\&.
+.IP
+.IP "-k:number"
+Skip \&'number\&' of files\&.
+.IP
+.IP "-l"
+List the current playlist contents to stdout\&. See also
+options \fI-f, -p and -q\fP\&.
+.IP
+.IP "-o:output_device"
+Use \&'output_device\&' instead of the default output device
+(as specified in \fI~/\&.ecasound/ecasoundrc\fP)\&. Syntax is same
+as used by "-o" ecasound option (see ecasound(1) man page)\&.
+This option overrides the \fIECAPLAY_OUTPUT_DEVICE\fP environment
+variable (more info below)\&.
+.IP
+.IP "-p"
+Play tracks in the playlist (in looped mode)\&. See also
+options \fI-f, -l and -q\fP\&.
+.IP
+.IP "-q"
+Queue new tracks to the playlist\&. All filenames given on
+the command-line will be added to the the playlist\&. It is
+possible to queue new tracks while another instance of
+ecaplay is using the playlist\&. See also options \fI-f, -l
+and -p\fP\&.
+.IP
+\fBECASIGNALVIEW\fP
+.PP
+Ecasignalview is meant for monitoring signal amplitude and peak
+statistics\&. It accepts the following options:
+.PP
+.IP "input"
+The first option not starting with a \&'-\&' is interpreted
+as an input string\&. This can be a device or a filename\&. All formats
+supported by libecasound are accepted\&. Defaults to \&'/dev/dsp\&'\&.
+.IP
+.IP "output"
+Similarly to input, second option not starting with a \&'-\&'
+is interpreted as output\&. Defaults to \&'null\&'\&.
+.IP
+.IP "-b:buffersize"
+Buffersize in sample frames\&. Defaults to 128\&.
+.IP
+.IP "-c"
+Enable cumulative mode\&. Counters are not reseted after refresh\&.
+\fI*deprecated*\fP
+.IP
+.IP "-d"
+Enable debug mode\&.
+.IP
+.IP "-f:format_string"
+Specify default audio format\&. See ecasound(1) for details\&.
+.IP
+.IP "-r:rate_msec"
+Specify screen refresh rate in milliseconds\&.
+.IP
+.IP "-I"
+Use linear scale for showing audio sample amplitude\&.
+.IP
+.IP "-L"
+Use logarithmic scale for showing audio sample amplitude\&.
+.IP
+.IP "-G, -B, -M*, -r, -z"
+Ecasound options use to modify the engine behaviour, see
+ecasound(1) manpage for details\&.
+.IP
+When ecasignalview is running, the following keyboard
+commands can be used to control the operation (requires
+system support for UNIX terminal interface control):
+.PP
+.IP "spacebar"
+Reset statistics (max-peak, avg-amplitude and clipped
+samples count)\&.
+.IP
+.IP "q or Q or Esc"
+Quit ecasignalview\&.
+.IP
+It is also possible to reset the max-peak and clipped-samples
+counters by sending a SIGHUP signal to the process (i\&.e\&.
+from another console: "killall -v -HUP ecasignalview")\&.
+.PP
+More complete documentation for ecasignalview can be found
+from "Ecasound User\&'s Guide" (see \&'\&'http://www\&.eca\&.cx/ecasound
+-> Documentation\&'\&')\&.
+.PP
+.SH "ENVIRONMENT"
+
+.PP
+\fIECASOUND\fP
+Path to the ecasound executable\&. Used by many ecatools\&.
+.PP
+\fIECAPLAY_OUTPUT_DEVICE\fP
+Device ecaplay should use for audio output\&. Same syntax
+as for ecaplay/ecasound "-o" option\&.
+.PP
+.SH "FILES"
+
+.PP
+\fI~/\&.ecasound/ecasoundrc\fP
+The default ecasound resource file\&. See ecasoundrc(5)
+for details\&.
+.PP
+\fI~/\&.ecasound/ecaplay_queue\fP
+File used to store the ecaplay playlist (one track per
+line with full path)\&.
+.PP
+.SH "SEE ALSO"
+
+.PP
+ecasound (1), ecalength(1), "HTML docs in the Documentation subdirectory"
+.PP
+.SH "AUTHOR"
+
+.PP
+Kai Vehmanen, >
diff --git a/ecasound-2.7.2/Documentation/ecasound-iam.1 b/ecasound-2.7.2/Documentation/ecasound-iam.1
new file mode 100644
index 000000000..badac29ac
--- /dev/null
+++ b/ecasound-2.7.2/Documentation/ecasound-iam.1
@@ -0,0 +1,722 @@
+.TH "ecasound-iam" "1" "11\&.10\&.2009" "" "Multimedia software"
+
+.PP
+.SH "NAME"
+ecasound-iam \- ecasound interactive mode
+.SH "SYNOPSIS"
+
+.PP
+.SH "DESCRIPTION"
+
+.PP
+Ecasound library contains an interpreter module that understands
+a set of commands aimed at controlling various library services\&.
+This is called the ecasound interactive mode (EIAM)\&. All programs
+linked to ecasound library can use this facility\&.
+.PP
+.SH "ECI API and return types"
+A special case of interactive mode use is ecasound\&'s control interface (ECI),
+which is a small library providing easy access to the interactive
+mode commands from outside of libecasound\&. When issuing inter commands using
+the control interface, it\&'s possible that commands also return information\&.
+Currently supported return value types are: string [s], list of strings [S]
+(elements separated by commas; escaped if necessary), integer [i],
+long integer [li] and floating-point number [f]\&. These definitions are
+used throughout this document\&. Commands that return nothing (void) are
+marked with [-]\&. Additionally, return type [e] marks an error condition\&.
+When an interactive mode command results in an error, an error string
+explaining the condition is returned\&.
+.PP
+.SH "Real-time commands"
+It\&'s not possible to use all interactive mode commands to modify and
+control objects that belong to a connected chainsetup\&. Commands that
+do NOT support this are:
+.PP
+.RS
+cs-remove, cs-set-length, cs-set-length-samples, cs-toggle-loop,
+cs-set-param, cs-option,
+c-add, c-remove, c-rename, c-clear,
+ai-add, ai-remove, ai-attach, ai-forward, ai-rewind, ai-set-position,
+ai-set-position-samples,
+ao-add, ao-add-default, ao-remove, ao-attach, ao-forward, ao-rewind,
+ao-set-position, ao-set-position-samples\&.
+.RE
+
+.PP
+If one of these commands is issued when a chainsetup is connected,
+ecasound will first stop and disconnect the chainsetup, process
+the command, and the reconnect\&.
+.PP
+In addition, most non-modifying (const) commands work with
+connected setups\&.
+.PP
+.SH "GENERAL"
+.IP "quit, q"
+Quit ecasound session\&. What this means in practice depends on the
+client implementation\&. In ecasound interactive mode, \&'quit\&' terminates
+the ecasound process\&. When sent over ecasound server connection (aka
+NetECI), \&'quit\&' terminates the active network connection, but does not
+terminate the ecasound server process\&. \fI[-]\fP
+.IP
+.IP "start, t"
+Processing is started (play)\&. Error string is return if any errors upon
+startup are encountered\&. \fI[e]\fP
+.IP
+.IP "stop, s"
+Stop processing\&. \fI[-]\fP
+.IP
+.IP "run"
+Like \&'start\&' but blocks until processing is finished\&. Error string
+is return if any errors upon startup, or during process, are
+encountered\&. \fI[e]\fP
+.IP
+.IP "debug \&'debug-level\&'"
+Set debug level to \&'debug-level\&'\&. Notice that client programs can
+reimplement the debug routines\&. \fI[-]\fP
+
+.PP
+.IP "resource-file \&'path-to-file\&'"
+Overrides the global and user resource files\&. Does not affect
+already created objects\&. This command is equivalent to \&'-R\&' ecasound
+option (see ecasound (1) man page)\&.
+.PP
+.IP "-prefix:arg1,\&.\&.\&.,argN"
+Equivalent to issuing \&'cs-option -prefix:arg1,\&.\&.\&.,argN)\&. See documentation
+for \&'cs-option\&'\&.
+.PP
+.IP "help\&', \&'h\&'"
+Help! \fI[-]\fP
+.PP
+.SH "GLOBAL"
+
+.IP
+.IP "engine-status"
+Returns a string describing the engine status (running, stopped,
+finished, error, not ready)\&. See also \fIcs-status\fP\&. \fI[s]\fP
+.PP
+.IP "engine-launch"
+Starts the real-time engine\&. Engine will execute the currently
+connected chainsetup (see \&'cs-connect)\&. This action does not yet
+start actual processing (see \fIstart\fP and \fIstop\fP)\&. When
+ecasound is used as a JACK client, issuing \fIengine-launch\fP
+makes ecasound an active JACK client (i\&.e\&. ecasound\&'s ports
+can be connected to other JACK clients)\&. \fI[-]\fP
+.PP
+.IP "engine-halt"
+Stops the engine\&. Does not disconnect the chainsetup that
+was running\&. See also \fIcs-disconnet\fP and \fIstop\fP\&. When
+ecasound is used as a JACK client, \fIengine-halt\fP will
+cause ecasound to become a deactivated client (all JACK
+connections are torn down)\&. \fI[-]\fP
+.PP
+.SH "CHAINSETUPS"
+Chainsetup is the central data object\&. All other objects (inputs,
+outputs, chains, etc) are connected to some chainsetup\&. There can be
+many chainsetups but only one can be connected\&. Similarly only
+one chainsetup can be selected\&. If not otherwise specified operations
+are done on the selected chainsetup\&. Some operations also require
+that selected chainsetup is not connected\&.
+.IP
+.IP "cs-add \&'name\&'"
+Adds a new chainsetup with name \&'name\&'\&. \&'name\&' is now
+the selected chainsetup\&. \fI[-]\fP
+.PP
+.IP "cs-remove"
+Removes currently selected chainsetup\&. \fI[-]\fP
+.PP
+.IP "cs-list"
+Returns a list of all chainsetups\&. \fI[S]\fP
+.PP
+.IP "cs-select \&'name\&'"
+Selects chainsetup \&'name\&'\&. \fI[-]\fP
+.PP
+.IP "cs-selected"
+Returns the name of currently selected chainsetup\&. \fI[s]\fP
+.PP
+.IP "cs-index-select \&'cs_index\&', cs-iselect \&'cs_index\&'"
+Selects a chainsetup based on a short index string\&. Chainsetup names
+can be rather long\&. This command can be used to avoid typing
+these long names\&. \&'cs_index\&' is an integer value, where \&'1\&' refers to
+the first audio input/output\&. You can use \&'cs-list\&' and \&'cs-status\&'
+to get a full list of currently available chainsetups\&. \fI[-]\fP
+.PP
+.IP "cs-load \&'filename\&'"
+Adds a new chainsetup by loading it from file \&'filename\&'\&.
+\&'filename\&' is now the selected chainsetup\&. \fI[-]\fP
+.PP
+.IP "cs-save"
+Saves the currently selected chainsetup to file\&. If chainsetup was loaded
+from a file, the saved version will replace the original\&. If it doesn\&'t
+have a default filename, it\&'s saved to "chainsetup_name\&.ecs"\&. \fI[-]\fP
+.PP
+.IP "cs-save-as \&'filename\&'"
+Saves currently selected chainsetup to file \&'filename\&'\&. \fI[-]\fP
+.PP
+.IP "cs-edit"
+Currently selected chainsetup is saved to a temporary file\&. This
+file is loaded to an external editor (see ecasoundrc (5))\&. After
+editing, the chainsetup is loaded back to ecasound\&. \fI[-]\fP
+.PP
+.IP "cs-is-valid"
+Whether currently selected chainsetup is valid (=can be connected)? \fI[i]\fP
+.PP
+.IP "cs-connect"
+Connect currently selected chainsetup to engine\&. When connecting,
+all resources (e\&.g\&. files, soundcard devices, external programs) needed
+to execute the chainsetup are reserved\&. Only one chainsetup can be connected
+at a time\&. Error string is returned if connection fails (for instance
+due to error in allocating the resources)\&. \fI[e]\fP
+.PP
+.IP "cs-disconnect"
+Disconnect currently connected chainsetup\&. This action will free
+all external resources needed by the chainsetup\&. \fI[-]\fP
+.PP
+.IP "cs-connected"
+Returns the name of currently connected chainsetup\&. \fI[s]\fP
+.PP
+.IP "cs-rewind \&'time-in-seconds\&', rewind \&'time-in-seconds\&', rw \&'time-in-seconds\&'"
+Rewinds the current chainsetup position by \&'time-in-seconds\&' seconds\&.
+Position of all inputs and outputs attached to the selected chainsetup
+is also affected\&. \fI[-]\fP
+.PP
+.IP "cs-forward \&'time-in-seconds\&', forward \&'time-in-seconds\&', fw \&'ttime-in-seconds\&'"
+The current chainsetup position is forwarded by \&'time-in-seconds\&'
+seconds\&. Position of all inputs and outputs attached to the selected chainsetup
+is also affected\&. \fI[-]\fP
+.PP
+.IP "cs-set-position \&'time-in-seconds\&', cs-setpos \&'time-in-seconds\&', setpos \&'time-in-seconds\&', set-position \&'time-in-seconds\&'"
+Sets the chainsetup position to \&'time-in-seconds\&' seconds from the
+beginning\&. Position of all inputs and outputs attached to the selected
+chainsetup is also affected\&. \fI[-]\fP
+.PP
+.IP "cs-set-position-samples \&'time-in-samples\&'"
+Sets the chainsetup position to \&'time-in-samples\&' samples from the
+beginning\&. Position of all inputs and outputs attached to the selected
+chainsetup is also affected\&. \fI[-]\fP
+.PP
+.IP "cs-get-position, cs-getpos, getpos, get-position"
+Returns the current chainsetup position in seconds\&. \fI[f]\fP
+.PP
+.IP "cs-get-position-samples"
+Returns the current chainsetup position in samples\&. \fI[li]\fP
+.PP
+.IP "cs-get-length, get-length"
+Returns the chainsetup length in seconds (if known)\&. \fI[f]\fP
+.PP
+.IP "cs-get-length-samples, get-length-samples"
+Returns the chainsetup length in samples (if known)\&. \fI[li]\fP
+.PP
+.IP "cs-set-length \&'seconds\&'"
+Sets processing time in seconds (doesn\&'t have to be an integer value)\&.
+A special-case value of \&'-1\&' will set the chainsetup length
+according to the longest input object\&. \fI[-]\fP
+.PP
+.IP "cs-set-length-samples \&'samples\&'"
+Sets processing time in samples\&. \fI[-]\fP
+.PP
+.IP "cs-toggle-loop"
+Toggle looping\&. When processing is finished, engine will start
+again from the initial position\&. It\&'s not always possible to enable looping
+(for instance all inputs and outputs have infinite length and
+chainsetup length is not explicitly set with \&'cs-set-length\&')\&. \fI[-]\fP
+.PP
+.IP "cs-set-param"
+Interpret general chainsetup parameters like for example
+"-b" (buffersize), "-n" (name), etc\&. See ecasound (1) for
+more info\&. \fI[-]\fP
+.PP
+.IP "cs-set-audio-format \&'bits,channels,sample_rate\&'"
+Set the default sample parameters for currently selected chainsetup\&.
+For example cd-quality audio would be "16,2,44100"\&. This does the
+same as command-line argument "-f" (see ecasound (1))\&. \fI[-]\fP
+.PP
+.IP "cs-status, status, st"
+Prints out status information about available chainsetup\&.
+Detailed information is printed out for connected (=available
+for running) nd selected (=available for editing) chainsetups\&.
+Other chainsetups are listed, but further details are
+suppressed\&. To get full details of a specific chainsetup,
+select it with \&'cs-select\&' or \&'cs-iselect\&', and then
+issue \&'cs-select\&'\&. \fI[s]\fP
+.PP
+.IP "cs-option \&'-prefix:arg1,\&.\&.\&.,argN\&'"
+One powerful feature of the interactive-mode is that it
+provides full access to ecasound\&'s command-line syntax\&.
+For instance, command "cs-option -efb:400,200" means that
+a bandpass filter is added to the currently selected
+chain, with initial parameters 400 (center frequency)
+and 200 (width in Hz)\&.
+.PP
+Note that session level options (such as setting debug level)
+can not be used with \&'cs-option\&' (i\&.e\&. only options that modify
+chainsetups)\&.
+.PP
+Note! Ecasound interactive mode implicitly interprets all strings
+beginning with a \&'-\&' as "cs-option string"\&.
+
+.IP
+.SH "CHAINS"
+Chain is a simple signal flow abstraction\&. Every chain has one input
+and one output\&. All chain operators and their controllers are attached
+to chains\&. Chains can be muted, unmuted and be bypassed\&. If not
+otherwise stated, all operations are done to currently selected
+chainsetup\&.
+.IP
+.IP "c-add \&'cname1,\&.\&.\&.,cnameN\&'"
+Adds a set of chains\&. Added chains are automatically selected\&. Note
+that commas in chain names are not allowed\&. \fI[-]\fP
+.PP
+.IP "c-remove"
+Removes selected chains\&. \fI[-]\fP
+.PP
+.IP "c-list"
+Returns a list of all chains\&. \fI[S]\fP
+.PP
+.IP "c-select \&'cname1,\&.\&.\&.,cnameN\&'"
+Selects chains\&. Other chains are automatically deselected\&. \fI[-]\fP
+.PP
+.IP "c-index-select \&'index1,\&.\&.\&.,indexN\&', c-iselect \&'index1,\&.\&.\&.,indexN\&'"
+Selects a set of chains based on the list of indixes\&. Each index is
+an integer value, where \&'1\&' refers to the first chain\&. You can use
+\&'c-list\&' and \&'c-status\&' to get a full list of currently available
+chains\&. \fI[-]\fP
+.PP
+.IP "c-select-all"
+Selects all chains\&. \fI[-]\fP
+.PP
+.IP "c-select-add \&'cname1,\&.\&.\&.,cnameN\&'"
+Selects more chains\&. \fI[-]\fP
+.PP
+.IP "c-deselect \&'cname1,\&.\&.\&.,cnameN\&'"
+Deselects chains\&. \fI[-]\fP
+.PP
+.IP "c-selected"
+Returns a list of selected chains\&. \fI[S]\fP
+.PP
+.IP "c-clear"
+Clear selected chains by removing all chain operators and controllers\&.
+Doesn\&'t change how chains are connected to inputs and outputs\&. \fI[-]\fP
+.PP
+.IP "c-rename \&'new_name\&'"
+Renames the selected chain\&. When using this command, exactly one chain must
+be selected\&. \fI[-]\fP
+.PP
+.IP "c-muting, c-mute"
+Toggle chain muting\&. When chain is muted, all data that goes through
+is muted\&. \fI[-]\fP
+.PP
+.IP "c-bypass"
+Toggle chain bypassing\&. When chain is bypassed, sample data is passed
+through unprocessed (all chain operators are disabled for the given
+chain)\&. \fI[-]\fP
+.PP
+.IP "c-status, cs"
+Print status info about all chains\&. \fI[s]\fP
+.PP
+.SH "AUDIO INPUT/OUTPUT OBJECTS"
+If not otherwise stated, all operations are done to currently selected
+object\&. All commands with \fIai-\fP prefix operate on audio inputs,
+while commands with \fIao-\fP operate on outputs\&.
+.IP
+.IP "ai-add \&'input_format_string\&'"
+Adds a new input object\&. See ecasound (1) man page for more info about
+the argument format (\&'-i\&' option)\&. Note on syntax: if any of
+the parameters (such as a filename) contains commas, the parameter
+should be enclosed in double-quotes\&. \fI[-]\fP
+.PP
+.IP "ao-add \&'output_format_string\&'"
+Adds a new output object\&. See ecasound (1) man page for more info about
+the argument format (\&'-o\&' option)\&. If argument is omitted,
+a default output device is added (see ecasoundrc (5))\&. Note on syntax: if any
+of the parameters (such as a filename) contains commas, the parameter
+should be enclosed in double-quotes\&. \fI[-]\fP
+.PP
+.IP "ao-add-default"
+Adds the default output device (see ecasoundrc (5))\&. \fI[-]\fP
+.PP
+.IP "ai-describe, ao-describe"
+Returns a Ecasound Option Syntax (EOS) compliant string
+describing the input/output\&. See the Ecasound User\&'s Guide
+for more information about EOS\&. This command was introduced in
+ecasound 2\&.4\&.4\&. \fI[s]\fP
+.PP
+.IP "ai-select \&'aobject_name\&', ao-select \&'aobject_name\&'"
+Selects an audio object\&. \&'aobject_name\&' refers to the string
+used when creating the object (the first argument given to ai-add/ao-add)\&.
+Note that as a important difference to ai-add/ao-add, one should not
+enclose the object name in double quotes for ai-select/ao-select\&. In the
+case a chainsetup contains multiple inputs, or outputs, with
+identical name, \&'ai-select\&' and \&'ao-select\&' will select
+the first matching instance\&. In order to select a specific
+instance, the \&'ai-iselect\&' and \&'ao-iselect\&' commands need to
+be used\&. \fI[-]\fP
+.PP
+.IP "ai-index-select \&'aobject_index\&', ai-iselect \&'aobject_index\&', ao-index-select \&'aobject_index\&', ao-iselect \&'aobject_index\&'"
+Select some audio object based on a short index string\&. Especially file
+names can be rather long\&. This command can be used to avoid typing
+these long names when selecting audio objects\&. \&'aobject_index\&' is
+an integer value, where \&'1\&' refers to the first audio input/output\&.
+You can use \&'ai-list\&' and \&'ao-list\&' to get a full list of currently
+available inputs/outputs\&. \fI[-]\fP
+.PP
+.IP "ai-selected, ao-selected"
+Returns the name of the currently selected audio object\&. \fI[s]\fP
+.PP
+.IP "ai-attach, ao-attach"
+Attaches the currently selected audio object to all selected chains\&. \fI[-]\fP
+.PP
+.IP "ai-remove, ao-remove"
+Removes the currently selected audio object from the chainsetup\&. \fI[-]\fP
+.PP
+.IP "ai-forward \&'time_in_seconds\&', ai-fw \&'time_in_seconds\&', ao-forward \&'time_in_seconds\&', ao-fw \&'time_in_seconds\&'"
+Selected audio object is forwarded by \&'time-in-seconds\&' seconds\&.
+Time should be given as a floating point value (eg\&. 0\&.001 is the
+same as 1ms)\&. \fI[-]\fP
+.PP
+.IP "ai-rewind \&'time_in_seconds\&', ai-rw \&'time_in_seconds\&', ao-rewind \&'time_in_seconds\&', ao-rw \&'time_in_seconds\&'"
+Selected audio object is rewinded by \&'time-in-seconds\&' seconds\&.
+Time should be given as a floating point value (eg\&. 0\&.001 is the
+same as 1ms)\&. \fI[-]\fP
+.PP
+.IP "ai-setpos \&'time_in_seconds\&', ai-set-position \&'time_in_seconds\&', ao-setpos \&'time_in_seconds\&', ao-set-position \&'time_in_seconds\&'"
+Set audio object position to \&'time_in_seconds\&'\&. \fI[-]\fP
+.PP
+.IP "ai-set-position-samples \&'time_in_samples\&', ao-set-position-samples \&'time_in_samples\&'"
+Set audio object position to \&'time_in_samples\&'\&. \fI[-]\fP
+.PP
+.IP "ai-getpos, ai-get-position, ao-getpos, ao-get-position"
+Returns the audio object position in seconds\&. \fI[f]\fP
+.PP
+.IP "ai-get-position-samples, ao-get-position-samples"
+Returns the audio object position in samples\&. \fI[li]\fP
+.PP
+.IP "ai-get-length, ao-get-length"
+Returns the audio object length in seconds\&. \fI[f]\fP
+.PP
+.IP "ai-get-length-samples, ao-get-length-samples"
+Returns the audio object length in samples\&. \fI[li]\fP
+.PP
+.IP "ai-get-format, ao-get-format"
+Returns the audio format of the selected audio input/output as a
+formatted string\&. See documentation for \&'-f\&' command-line option\&. \fI[s]\fP
+.PP
+.IP "ai-list, ao-list"
+Returns a list of all input/output objects\&. \fI[S]\fP
+.PP
+.IP "aio-register"
+Prints a list of registered audio object types\&. \fI[s]\fP
+.PP
+.IP "aio-status"
+Audio object status (index strings, position, length, etc)\&. \fI[s]\fP
+.PP
+.SH "CHAIN OPERATORS"
+Chain operators are used to process and analyze sample data\&.
+They are attached to chains\&. If not otherwise stated,
+currently selected chainsetup and chain are used\&. Also,
+\&'chainop_id\&' and \&'param_id\&' are used to select chain operators
+and their parameters\&. First valid value for these parameters
+is 1\&.
+.IP
+.IP "cop-add \&'cop_format_string\&'"
+Adds a new chain operator\&. In addition to normal chain operators,
+this commmand can also be used to add effect presets and various
+plugins\&. Note; it is not possible to add operators to multiple
+chains at once\&. In other words only one chain should be selected
+when issuing \&'cop-add\&'\&. See ecasound (1) man page for more info\&. \fI[-]\fP
+.PP
+.IP "cop-describe"
+Returns a Ecasound Option Syntax (EOS) compliant string
+describing the chain operator\&. See the Ecasound User\&'s Guide
+for more information about EOS\&. This command was introduced in
+ecasound 2\&.4\&.4\&. \fI[s]\fP
+.PP
+.IP "cop-remove"
+Removes the selected chain operator\&. \fI[-]\fP
+.PP
+.IP "cop-list"
+Returns a list of all chain operators attached to the currently
+selected chain\&. \fI[S]\fP
+.PP
+.IP "cop-select \&'param_id\&', cop-index-select \&'param_id\&', cop-iselect \&'param_id\&'"
+Selects a chain operator\&. \fI[-]\fP
+.PP
+.IP "cop-selected"
+Returns the index number of currently selected chain operator\&. \fI[i]\fP
+.PP
+.IP "cop-set \&'chainop_id,param_id,value\&'"
+Changes the value of a single chain operator parameter\&. Unlike other
+chain operator commands, this can also be used during processing\&.
+See also \&'cop-get\&'\&. \fI[-]\fP
+.PP
+.IP "cop-get \&'chainop_id,param_id\&'"
+Returns the current value of chain operator parameter identified by
+\&'chainop_id\&' and \&'param_id\&'\&. This command is a shorthand for
+\&'cop-select chainop_id ; copp-iselect param_id ; copp-get\&'\&. \fI[f]\fP
+.PP
+.IP "cop-status"
+Returns info about chain operator status\&. \fI[s]\fP
+.PP
+.IP "copp-list"
+Returns a list of selected chain operator\&'s parameters\&. \fI[S]\fP
+.PP
+.IP "copp-select \&'param_id\&', copp-index-select \&'param_id\&', copp-iselect \&'param_id\&'"
+Selects a chain operator parameter\&. \fI[-]\fP
+.PP
+.IP "copp-selected"
+Returns the index number of currently selected chain operator parameter\&. \fI[i]\fP
+.PP
+.IP "copp-set \&'value\&'"
+Sets the selected parameter value to \&'value\&'\&. \fI[-]\fP
+.PP
+.IP "copp-get"
+Returns the selected parameter value\&. See also \&'cop-get\&'\&. \fI[f]\fP
+.PP
+.IP "cop-register"
+Prints a list of registered chain operators\&. \fI[s]\fP
+.PP
+.IP "preset-register"
+Prints a list of registered effect presets\&. \fI[s]\fP
+.PP
+.IP "ladspa-register"
+Prints a list of registered LADSPA plugins\&. \fI[s]\fP
+.PP
+.SH "CONTROLLERS"
+Controllers are used to control individual chain operator parameters\&.
+They are attached to chains\&. If not otherwise stated, currently
+selected chainsetup and chains are used\&.
+.IP
+.IP "ctrl-add \&'copc_format_string\&'"
+Adds a new controller and attach it to currently selected chain
+operator\&. The argument syntax is either "-:par1,\&.\&.\&.,parN"
+or just ":par1,\&.\&.\&.,parN"\&. If parameter itself contains
+commas, the parameter should be enclosed in double-quotes\&.
+See ecasound (1) man page for more info\&. \fI[-]\fP
+.IP
+.IP "ctrl-describe"
+Returns a Ecasound Option Syntax (EOS) compliant string
+describing the controller\&. See the Ecasound User\&'s Guide
+for more information about EOS\&. This command was introduced in
+ecasound 2\&.4\&.4\&. \fI[s]\fP
+.IP
+.IP "ctrl-remove"
+Removes the selected controller\&. \fI[-]\fP
+.IP
+.IP "ctrl-list"
+Returns a list of all controllers attached to the currently
+selected chain\&. \fI[S]\fP
+.IP
+.IP "ctrl-select \&'param_id\&', ctrl-index-select \&'param_id\&', ctrl-iselect \&'param_id\&'"
+Selects a controller\&. \fI[-]\fP
+.IP
+.IP "ctrl-selected"
+Returns the index number of currently selected controller\&. \fI[i]\fP
+.IP
+.IP "ctrl-status"
+Returns info about controller status\&. \fI[s]\fP
+.IP
+.IP "ctrl-register"
+Prints a list of registered controllers\&. \fI[s]\fP
+.IP
+.IP "ctrl-get-target"
+Returns the index number of the chain operator that is
+connected to the selected controller\&. The returned index
+refers to the currently selected chain (see \&'cop-list\&')\&. \fI[i]\fP
+.IP
+.IP "ctrlp-list"
+Returns a list of all controller parameters\&. This command was introduced in
+ecasound 2\&.4\&.2\&. \fI[S]\fP
+.IP
+.IP "ctrlp-select"
+Selects a controller parameter\&. This command was introduced in
+ecasound 2\&.4\&.2\&. \fI[-]\fP
+.IP
+.IP "ctrlp-selected"
+Returns the index number of currently selected controller parameter\&. This command
+was introduced in ecasound 2\&.4\&.2\&. \fI[i]\fP
+.IP
+.IP "ctrlp-get"
+Returns the selected controller parameter value\&. This command was introduced in
+ecasound 2\&.4\&.2\&. \fI[f]\fP
+.IP
+.IP "ctrlp-set"
+Sets the selected controller parameter value to \&'value\&'\&. This command was introduced in
+ecasound 2\&.4\&.2\&. \fI[-]\fP
+.IP
+.SH "JACK CONNECTION MANAGEMENT"
+If Ecasound is compiled with support for JACK audio server,
+the following set of commands is provided for controlling connections
+between JACK ports\&.
+.IP
+.IP "jack-connect \&'src-port\&' \&'dest-port\&'"
+Make a connection between the two ports given as parameters\&. This command
+is similar to the \&'jack_connect\&' command line tool that is distributed
+with JACK package\&. \fI[-]\fP
+.IP
+.IP "jack-disconnect \&'src-port\&' \&'dest-port\&'"
+Disconnect the two ports given as parameters\&. This command is similar
+to the \&'jack_disconnect\&' command line tool that is distributed
+with JACK package\&. \fI[-]\fP
+.IP
+.IP "jack-list-connections"
+Returns a list of all JACK ports and a list of connections
+for each port\&. This command is similar to the \&'jack_lsp\&' command
+line tool (e\&.g\&. \&'jack_lsp -c\&') that is distributed with JACK package\&. \fI[s]\fP
+.IP
+.SH "INTERNAL COMMANDS"
+Internal commands are not directly aimed at normal use\&. They
+are primarily meant for use in scripting and frontends\&.
+.IP
+.IP "int-cmd-list"
+Returns a list of all registered interactive mode commands\&. \fI[S]\fP
+.IP
+.IP "int-log-history"
+Returns recent log messages sent by libecasound modules\&. This
+is a good tool for debugging ECI/EIAM scripts and applications\&. This
+command was introduced in ecasound 2\&.4\&.0\&. \fI[s]\fP
+.IP
+.IP "int-output-mode-wellformed"
+Select the well-format output format for log messages\&. \fI[-]\fP
+.IP
+.IP "int-set-float-to-string-precision"
+Sets precision used in float to text conversions\&. Note that
+this can be used to control the precision of float return values
+for ECI commands\&. \fI[-]\fP
+.IP
+.IP "int-set-log-history-length"
+Sets the log history length\&. Defaults to 0 items\&.
+This command was introduced in ecasound 2\&.4\&.0\&. \fI[-]\fP
+.IP
+.IP "int-cmd-version-string"
+Returns ecasound interactive mode parser version string\&. \fI[s]\fP
+.IP
+.IP "int-cmd-version-lib-current"
+Returns ecasound interactive mode library interface version (libtool)\&. \fI[i]\fP
+.IP
+.IP "int-cmd-version-lib-revision"
+Returns ecasound interactive mode library interface revision (libtool)\&. \fI[i]\fP
+.IP
+.IP "int-cmd-version-lib-age"
+Returns ecasound interactive mode library interface age (libtool)\&. \fI[i]\fP
+.IP
+.SH "OBJECT MAPS"
+Object maps are central repositories for commonly used object types\&.
+By querying the maps, applications can get a list of all registered
+object types and their properties\&.
+.IP
+.IP "map-cop-list"
+Prints a list of registered chain operators using
+the format specified in section \fIOPERATOR DESCRIPTIONS\fP\&. \fI[s]\fP
+.IP
+.IP "map-preset-list"
+Prints a list of registered effect presets using
+the format specified in section \fIOPERATOR DESCRIPTIONS\fP\&. \fI[s]\fP
+.IP
+.IP "map-ladspa-list"
+Prints a list of registered LADSPA plugins using
+the format specified in section \fIOPERATOR DESCRIPTIONS\fP\&. \fI[s]\fP
+.IP
+.IP "map-ladspa-id-list"
+Prints a list of registered LADSPA plugins using
+the format specified in section \fIOPERATOR DESCRIPTIONS\fP\&.
+Numerical LADPSA plugin identifiers are used\&. \fI[s]\fP
+.IP
+.IP "map-ctrl-list"
+Prints a list of registered controllers using
+the format specified in section \fIOPERATOR DESCRIPTIONS\fP\&. \fI[s]\fP
+.IP
+.SH "DUMP COMMANDS"
+The following dump commands are not meant for normal use\&.
+Their primary purpose is to provide an easy way to get
+internal state information from libecasound\&. All dump
+commands output a single line with syntax "key value"
+to the selected output stream (defaults to stdout)\&.
+.IP
+.IP "dump-target \&'filename\&'"
+Set target stream for dumping\&. \fI[-]\fP
+.IP
+.IP "dump-status"
+Dumps engine status - \&'running\&', \&'stopped\&', \&'finished\&' or \&'notready\&'\&. \fI[-]\fP
+.IP
+.IP "dump-position"
+Dumps the global position\&. Printed in seconds using a floating-point
+representation\&. \fI[-]\fP
+.IP
+.IP "dump-length"
+Dumps the overall processing length\&. Printed in seconds using a floating-point
+representation\&. \fI[-]\fP
+.IP
+.IP "dump-cs-status"
+Dumps status string for the currently selected chainsetup - \&'connected\&',
+\&'selected\&' or an empty string\&. \fI[-]\fP
+.IP
+.IP "dump-c-selected"
+Dumps the name of currently selected chain\&. \fI[-]\fP
+.IP
+.IP "dump-ai-selected"
+Dumps label of currently selected audio input\&. If no input is
+selected, dumps an empty string\&. \fI[-]\fP
+.IP
+.IP "dump-ai-position"
+Dumps position of currently selected audio inputs\&. Printed in
+seconds, using a floating-point representation\&. \fI[-]\fP
+.IP
+.IP "dump-ai-length"
+Dumps length of currently selected audio input\&. Printed in seconds,
+using a floating-point representation\&. \fI[-]\fP
+.IP
+.IP "dump-ai-open-state"
+Dumps audio input state info\&. Either \&'open\&' or \&'closed\&'\&. \fI[-]\fP
+.IP
+.IP "dump-ao-selected"
+Dumps label of currently selected audio output\&. If no output is
+selected, dumps an empty string\&. \fI[-]\fP
+.IP
+.IP "dump-ao-position"
+Dumps position of currently selected audio outputs\&. Printed in
+seconds, using a floating-point representation\&. \fI[-]\fP
+.IP
+.IP "dump-ao-length"
+Dumps length of currently selected audio output\&. Printed in seconds,
+using a floating-point representation\&. \fI[-]\fP
+.IP
+.IP "dump-ao-open-state"
+Dumps audio output state info\&. Either \&'open\&' or \&'closed\&'\&. \fI[-]\fP
+.IP
+.IP "dump-cop-value \&'chainop,param\&'"
+Dumps chain operator parameter value\&. \&'chainop\&' and \&'param\&' are
+operator and parameter index values (1\&.\&.\&.n)\&. \fI[-]\fP
+.IP
+.SH "OPERATOR DESCRIPTIONS"
+The \fImap-xxx-list\fP commands return a string containing all registered
+objects of the given type \fIxxx\fP\&. Each line of the output describes
+one registered type\&. The used syntax is:
+.IP
+\&'keyword,name,description,num_of_params,par1_def,par2_def,\&.\&.\&.\&'
+.IP
+\fIparX_def\fP describes one object parameter\&. This definition
+is present for all parameters of the described object type\&.
+The used syntax is:
+.IP
+\&'name,description,defaultvalue,upper_bound_flag,upper_bound,
+lower_bound_flag,lower_bound,toggled_flag,integer_flag,
+logarithmic_flag,output_flag\&'
+.IP
+For exact descriptions of these fields, please see
+the header file \fIecasound/libecasound/eca-operator\&.h\fP\&.
+.IP
+.SH "DEPRECATED COMMANDS"
+Use of following commands is deprecated\&. They still work in
+current version of Ecasound, but will be dropped in
+the future:
+.IP
+.RS
+ai-wave-edit, ao-wave-edit
+.RE
+
+.IP
+.SH "SEE ALSO"
+ecasound (1), ecatools (1), ecasoundrc (5)
+.IP
+.SH "AUTHOR"
+
+ Kai Vehmanen, >
diff --git a/ecasound-2.7.2/Documentation/ecasound-iam_manpage.html b/ecasound-2.7.2/Documentation/ecasound-iam_manpage.html
new file mode 100644
index 000000000..c6b93aa08
--- /dev/null
+++ b/ecasound-2.7.2/Documentation/ecasound-iam_manpage.html
@@ -0,0 +1,775 @@
+
+ecasound-iam
+
+
+
+
+
ecasound-iam
+
11.10.2009
+
+
+
+
+
+
+
+
+
+ecasound-iam(1)
+
+
+
+
+
ecasound-iam(1)
+
Multimedia software
+
11.10.2009
+
+
+
+
NAME
ecasound-iam - ecasound interactive mode
+
SYNOPSIS
+
+
DESCRIPTION
+
+Ecasound library contains an interpreter module that understands
+a set of commands aimed at controlling various library services.
+This is called the ecasound interactive mode (EIAM). All programs
+linked to ecasound library can use this facility.
+
+
ECI API and return types
+A special case of interactive mode use is ecasound's control interface (ECI),
+which is a small library providing easy access to the interactive
+mode commands from outside of libecasound. When issuing inter commands using
+the control interface, it's possible that commands also return information.
+Currently supported return value types are: string [s], list of strings [S]
+(elements separated by commas; escaped if necessary), integer [i],
+long integer [li] and floating-point number [f]. These definitions are
+used throughout this document. Commands that return nothing (void) are
+marked with [-]. Additionally, return type [e] marks an error condition.
+When an interactive mode command results in an error, an error string
+explaining the condition is returned.
+
+
Real-time commands
+It's not possible to use all interactive mode commands to modify and
+control objects that belong to a connected chainsetup. Commands that
+do NOT support this are:
+
+If one of these commands is issued when a chainsetup is connected,
+ecasound will first stop and disconnect the chainsetup, process
+the command, and the reconnect.
+
+In addition, most non-modifying (const) commands work with
+connected setups.
+
+
GENERAL
+
+
quit, q
+Quit ecasound session. What this means in practice depends on the
+client implementation. In ecasound interactive mode, 'quit' terminates
+the ecasound process. When sent over ecasound server connection (aka
+NetECI), 'quit' terminates the active network connection, but does not
+terminate the ecasound server process. [-]
+
+
start, t
+Processing is started (play). Error string is return if any errors upon
+startup are encountered. [e]
+
+
stop, s
+Stop processing. [-]
+
+
run
+Like 'start' but blocks until processing is finished. Error string
+is return if any errors upon startup, or during process, are
+encountered. [e]
+
+
debug 'debug-level'
+Set debug level to 'debug-level'. Notice that client programs can
+reimplement the debug routines. [-]
+
+
+
resource-file 'path-to-file'
+Overrides the global and user resource files. Does not affect
+already created objects. This command is equivalent to '-R' ecasound
+option (see ecasound (1) man page).
+
+
-prefix:arg1,...,argN
+Equivalent to issuing 'cs-option -prefix:arg1,...,argN). See documentation
+for 'cs-option'.
+
+
help', 'h'
+Help! [-]
+
+
+
+
GLOBAL
+
+
+
+
engine-status
+Returns a string describing the engine status (running, stopped,
+finished, error, not ready). See also cs-status. [s]
+
+
engine-launch
+Starts the real-time engine. Engine will execute the currently
+connected chainsetup (see 'cs-connect). This action does not yet
+start actual processing (see start and stop). When
+ecasound is used as a JACK client, issuing engine-launch
+makes ecasound an active JACK client (i.e. ecasound's ports
+can be connected to other JACK clients). [-]
+
+
engine-halt
+Stops the engine. Does not disconnect the chainsetup that
+was running. See also cs-disconnet and stop. When
+ecasound is used as a JACK client, engine-halt will
+cause ecasound to become a deactivated client (all JACK
+connections are torn down). [-]
+
+
+
+
CHAINSETUPS
+Chainsetup is the central data object. All other objects (inputs,
+outputs, chains, etc) are connected to some chainsetup. There can be
+many chainsetups but only one can be connected. Similarly only
+one chainsetup can be selected. If not otherwise specified operations
+are done on the selected chainsetup. Some operations also require
+that selected chainsetup is not connected.
+
+
+
cs-add 'name'
+Adds a new chainsetup with name 'name'. 'name' is now
+the selected chainsetup. [-]
+
+
cs-remove
+Removes currently selected chainsetup. [-]
+
+
cs-list
+Returns a list of all chainsetups. [S]
+
+
cs-select 'name'
+Selects chainsetup 'name'. [-]
+
+
cs-selected
+Returns the name of currently selected chainsetup. [s]
+
+
cs-index-select 'cs_index', cs-iselect 'cs_index'
+Selects a chainsetup based on a short index string. Chainsetup names
+can be rather long. This command can be used to avoid typing
+these long names. 'cs_index' is an integer value, where '1' refers to
+the first audio input/output. You can use 'cs-list' and 'cs-status'
+to get a full list of currently available chainsetups. [-]
+
+
cs-load 'filename'
+Adds a new chainsetup by loading it from file 'filename'.
+'filename' is now the selected chainsetup. [-]
+
+
cs-save
+Saves the currently selected chainsetup to file. If chainsetup was loaded
+from a file, the saved version will replace the original. If it doesn't
+have a default filename, it's saved to "chainsetup_name.ecs". [-]
+
+
cs-save-as 'filename'
+Saves currently selected chainsetup to file 'filename'. [-]
+
+
cs-edit
+Currently selected chainsetup is saved to a temporary file. This
+file is loaded to an external editor (see ecasoundrc (5)). After
+editing, the chainsetup is loaded back to ecasound. [-]
+
+
cs-is-valid
+Whether currently selected chainsetup is valid (=can be connected)? [i]
+
+
cs-connect
+Connect currently selected chainsetup to engine. When connecting,
+all resources (e.g. files, soundcard devices, external programs) needed
+to execute the chainsetup are reserved. Only one chainsetup can be connected
+at a time. Error string is returned if connection fails (for instance
+due to error in allocating the resources). [e]
+
+
cs-disconnect
+Disconnect currently connected chainsetup. This action will free
+all external resources needed by the chainsetup. [-]
+
+
cs-connected
+Returns the name of currently connected chainsetup. [s]
+
+Rewinds the current chainsetup position by 'time-in-seconds' seconds.
+Position of all inputs and outputs attached to the selected chainsetup
+is also affected. [-]
+
+The current chainsetup position is forwarded by 'time-in-seconds'
+seconds. Position of all inputs and outputs attached to the selected chainsetup
+is also affected. [-]
+
+Sets the chainsetup position to 'time-in-seconds' seconds from the
+beginning. Position of all inputs and outputs attached to the selected
+chainsetup is also affected. [-]
+
+
cs-set-position-samples 'time-in-samples'
+Sets the chainsetup position to 'time-in-samples' samples from the
+beginning. Position of all inputs and outputs attached to the selected
+chainsetup is also affected. [-]
+
+
cs-get-position, cs-getpos, getpos, get-position
+Returns the current chainsetup position in seconds. [f]
+
+
cs-get-position-samples
+Returns the current chainsetup position in samples. [li]
+
+
cs-get-length, get-length
+Returns the chainsetup length in seconds (if known). [f]
+
+
cs-get-length-samples, get-length-samples
+Returns the chainsetup length in samples (if known). [li]
+
+
cs-set-length 'seconds'
+Sets processing time in seconds (doesn't have to be an integer value).
+A special-case value of '-1' will set the chainsetup length
+according to the longest input object. [-]
+
+
cs-set-length-samples 'samples'
+Sets processing time in samples. [-]
+
+
cs-toggle-loop
+Toggle looping. When processing is finished, engine will start
+again from the initial position. It's not always possible to enable looping
+(for instance all inputs and outputs have infinite length and
+chainsetup length is not explicitly set with 'cs-set-length'). [-]
+
+
cs-set-param
+Interpret general chainsetup parameters like for example
+"-b" (buffersize), "-n" (name), etc. See ecasound (1) for
+more info. [-]
+
+
cs-set-audio-format 'bits,channels,sample_rate'
+Set the default sample parameters for currently selected chainsetup.
+For example cd-quality audio would be "16,2,44100". This does the
+same as command-line argument "-f" (see ecasound (1)). [-]
+
+
cs-status, status, st
+Prints out status information about available chainsetup.
+Detailed information is printed out for connected (=available
+for running) nd selected (=available for editing) chainsetups.
+Other chainsetups are listed, but further details are
+suppressed. To get full details of a specific chainsetup,
+select it with 'cs-select' or 'cs-iselect', and then
+issue 'cs-select'. [s]
+
+
cs-option '-prefix:arg1,...,argN'
+One powerful feature of the interactive-mode is that it
+provides full access to ecasound's command-line syntax.
+For instance, command "cs-option -efb:400,200" means that
+a bandpass filter is added to the currently selected
+chain, with initial parameters 400 (center frequency)
+and 200 (width in Hz).
+
+Note that session level options (such as setting debug level)
+can not be used with 'cs-option' (i.e. only options that modify
+chainsetups).
+
+Note! Ecasound interactive mode implicitly interprets all strings
+beginning with a '-' as "cs-option string".
+
+
+
CHAINS
+Chain is a simple signal flow abstraction. Every chain has one input
+and one output. All chain operators and their controllers are attached
+to chains. Chains can be muted, unmuted and be bypassed. If not
+otherwise stated, all operations are done to currently selected
+chainsetup.
+
+
+
c-add 'cname1,...,cnameN'
+Adds a set of chains. Added chains are automatically selected. Note
+that commas in chain names are not allowed. [-]
+
+
c-remove
+Removes selected chains. [-]
+
+
c-list
+Returns a list of all chains. [S]
+
+
c-select 'cname1,...,cnameN'
+Selects chains. Other chains are automatically deselected. [-]
+
+Selects a set of chains based on the list of indixes. Each index is
+an integer value, where '1' refers to the first chain. You can use
+'c-list' and 'c-status' to get a full list of currently available
+chains. [-]
+
+
c-select-all
+Selects all chains. [-]
+
+
c-select-add 'cname1,...,cnameN'
+Selects more chains. [-]
+
+
c-deselect 'cname1,...,cnameN'
+Deselects chains. [-]
+
+
c-selected
+Returns a list of selected chains. [S]
+
+
c-clear
+Clear selected chains by removing all chain operators and controllers.
+Doesn't change how chains are connected to inputs and outputs. [-]
+
+
c-rename 'new_name'
+Renames the selected chain. When using this command, exactly one chain must
+be selected. [-]
+
+
c-muting, c-mute
+Toggle chain muting. When chain is muted, all data that goes through
+is muted. [-]
+
+
c-bypass
+Toggle chain bypassing. When chain is bypassed, sample data is passed
+through unprocessed (all chain operators are disabled for the given
+chain). [-]
+
+
c-status, cs
+Print status info about all chains. [s]
+
+
+
+
AUDIO INPUT/OUTPUT OBJECTS
+If not otherwise stated, all operations are done to currently selected
+object. All commands with ai- prefix operate on audio inputs,
+while commands with ao- operate on outputs.
+
+
+
+
ai-add 'input_format_string'
+Adds a new input object. See ecasound (1) man page for more info about
+the argument format ('-i' option). Note on syntax: if any of
+the parameters (such as a filename) contains commas, the parameter
+should be enclosed in double-quotes. [-]
+
+
ao-add 'output_format_string'
+Adds a new output object. See ecasound (1) man page for more info about
+the argument format ('-o' option). If argument is omitted,
+a default output device is added (see ecasoundrc (5)). Note on syntax: if any
+of the parameters (such as a filename) contains commas, the parameter
+should be enclosed in double-quotes. [-]
+
+
ao-add-default
+Adds the default output device (see ecasoundrc (5)). [-]
+
+
ai-describe, ao-describe
+Returns a Ecasound Option Syntax (EOS) compliant string
+describing the input/output. See the Ecasound User's Guide
+for more information about EOS. This command was introduced in
+ecasound 2.4.4. [s]
+
+Selects an audio object. 'aobject_name' refers to the string
+used when creating the object (the first argument given to ai-add/ao-add).
+Note that as a important difference to ai-add/ao-add, one should not
+enclose the object name in double quotes for ai-select/ao-select. In the
+case a chainsetup contains multiple inputs, or outputs, with
+identical name, 'ai-select' and 'ao-select' will select
+the first matching instance. In order to select a specific
+instance, the 'ai-iselect' and 'ao-iselect' commands need to
+be used. [-]
+
+Select some audio object based on a short index string. Especially file
+names can be rather long. This command can be used to avoid typing
+these long names when selecting audio objects. 'aobject_index' is
+an integer value, where '1' refers to the first audio input/output.
+You can use 'ai-list' and 'ao-list' to get a full list of currently
+available inputs/outputs. [-]
+
+
ai-selected, ao-selected
+Returns the name of the currently selected audio object. [s]
+
+
ai-attach, ao-attach
+Attaches the currently selected audio object to all selected chains. [-]
+
+
ai-remove, ao-remove
+Removes the currently selected audio object from the chainsetup. [-]
+
+Selected audio object is forwarded by 'time-in-seconds' seconds.
+Time should be given as a floating point value (eg. 0.001 is the
+same as 1ms). [-]
+
+Selected audio object is rewinded by 'time-in-seconds' seconds.
+Time should be given as a floating point value (eg. 0.001 is the
+same as 1ms). [-]
+
+Returns the audio object position in seconds. [f]
+
+
ai-get-position-samples, ao-get-position-samples
+Returns the audio object position in samples. [li]
+
+
ai-get-length, ao-get-length
+Returns the audio object length in seconds. [f]
+
+
ai-get-length-samples, ao-get-length-samples
+Returns the audio object length in samples. [li]
+
+
ai-get-format, ao-get-format
+Returns the audio format of the selected audio input/output as a
+formatted string. See documentation for '-f' command-line option. [s]
+
+
ai-list, ao-list
+Returns a list of all input/output objects. [S]
+
+
aio-register
+Prints a list of registered audio object types. [s]
+
+
aio-status
+Audio object status (index strings, position, length, etc). [s]
+
+
+
+
CHAIN OPERATORS
+Chain operators are used to process and analyze sample data.
+They are attached to chains. If not otherwise stated,
+currently selected chainsetup and chain are used. Also,
+'chainop_id' and 'param_id' are used to select chain operators
+and their parameters. First valid value for these parameters
+is 1.
+
+
+
cop-add 'cop_format_string'
+Adds a new chain operator. In addition to normal chain operators,
+this commmand can also be used to add effect presets and various
+plugins. Note; it is not possible to add operators to multiple
+chains at once. In other words only one chain should be selected
+when issuing 'cop-add'. See ecasound (1) man page for more info. [-]
+
+
cop-describe
+Returns a Ecasound Option Syntax (EOS) compliant string
+describing the chain operator. See the Ecasound User's Guide
+for more information about EOS. This command was introduced in
+ecasound 2.4.4. [s]
+
+
cop-remove
+Removes the selected chain operator. [-]
+
+
cop-list
+Returns a list of all chain operators attached to the currently
+selected chain. [S]
+
+Returns the index number of currently selected chain operator. [i]
+
+
cop-set 'chainop_id,param_id,value'
+Changes the value of a single chain operator parameter. Unlike other
+chain operator commands, this can also be used during processing.
+See also 'cop-get'. [-]
+
+
cop-get 'chainop_id,param_id'
+Returns the current value of chain operator parameter identified by
+'chainop_id' and 'param_id'. This command is a shorthand for
+'cop-select chainop_id ; copp-iselect param_id ; copp-get'. [f]
+
+
cop-status
+Returns info about chain operator status. [s]
+
+
copp-list
+Returns a list of selected chain operator's parameters. [S]
+
+Returns the index number of currently selected chain operator parameter. [i]
+
+
copp-set 'value'
+Sets the selected parameter value to 'value'. [-]
+
+
copp-get
+Returns the selected parameter value. See also 'cop-get'. [f]
+
+
cop-register
+Prints a list of registered chain operators. [s]
+
+
preset-register
+Prints a list of registered effect presets. [s]
+
+
ladspa-register
+Prints a list of registered LADSPA plugins. [s]
+
+
+
+
CONTROLLERS
+Controllers are used to control individual chain operator parameters.
+They are attached to chains. If not otherwise stated, currently
+selected chainsetup and chains are used.
+
+
ctrl-add 'copc_format_string'
+Adds a new controller and attach it to currently selected chain
+operator. The argument syntax is either "-<id_string>:par1,...,parN"
+or just "<id_string>:par1,...,parN". If parameter itself contains
+commas, the parameter should be enclosed in double-quotes.
+See ecasound (1) man page for more info. [-]
+
+
ctrl-describe
+Returns a Ecasound Option Syntax (EOS) compliant string
+describing the controller. See the Ecasound User's Guide
+for more information about EOS. This command was introduced in
+ecasound 2.4.4. [s]
+
+
ctrl-remove
+Removes the selected controller. [-]
+
+
ctrl-list
+Returns a list of all controllers attached to the currently
+selected chain. [S]
+
+Returns the index number of currently selected controller. [i]
+
+
ctrl-status
+Returns info about controller status. [s]
+
+
ctrl-register
+Prints a list of registered controllers. [s]
+
+
ctrl-get-target
+Returns the index number of the chain operator that is
+connected to the selected controller. The returned index
+refers to the currently selected chain (see 'cop-list'). [i]
+
+
ctrlp-list
+Returns a list of all controller parameters. This command was introduced in
+ecasound 2.4.2. [S]
+
+
ctrlp-select
+Selects a controller parameter. This command was introduced in
+ecasound 2.4.2. [-]
+
+
ctrlp-selected
+Returns the index number of currently selected controller parameter. This command
+was introduced in ecasound 2.4.2. [i]
+
+
ctrlp-get
+Returns the selected controller parameter value. This command was introduced in
+ecasound 2.4.2. [f]
+
+
ctrlp-set
+Sets the selected controller parameter value to 'value'. This command was introduced in
+ecasound 2.4.2. [-]
+
+
+
+
JACK CONNECTION MANAGEMENT
+If Ecasound is compiled with support for JACK audio server,
+the following set of commands is provided for controlling connections
+between JACK ports.
+
+
+
+
jack-connect 'src-port' 'dest-port'
+Make a connection between the two ports given as parameters. This command
+is similar to the 'jack_connect' command line tool that is distributed
+with JACK package. [-]
+
+
jack-disconnect 'src-port' 'dest-port'
+Disconnect the two ports given as parameters. This command is similar
+to the 'jack_disconnect' command line tool that is distributed
+with JACK package. [-]
+
+
jack-list-connections
+Returns a list of all JACK ports and a list of connections
+for each port. This command is similar to the 'jack_lsp' command
+line tool (e.g. 'jack_lsp -c') that is distributed with JACK package. [s]
+
+
+
+
INTERNAL COMMANDS
+Internal commands are not directly aimed at normal use. They
+are primarily meant for use in scripting and frontends.
+
+
+
int-cmd-list
+Returns a list of all registered interactive mode commands. [S]
+
+
int-log-history
+Returns recent log messages sent by libecasound modules. This
+is a good tool for debugging ECI/EIAM scripts and applications. This
+command was introduced in ecasound 2.4.0. [s]
+
+
int-output-mode-wellformed
+Select the well-format output format for log messages. [-]
+
+
int-set-float-to-string-precision
+Sets precision used in float to text conversions. Note that
+this can be used to control the precision of float return values
+for ECI commands. [-]
+
+
int-set-log-history-length
+Sets the log history length. Defaults to 0 items.
+This command was introduced in ecasound 2.4.0. [-]
+
+
int-cmd-version-string
+Returns ecasound interactive mode parser version string. [s]
+
+
int-cmd-version-lib-current
+Returns ecasound interactive mode library interface version (libtool). [i]
+
+Returns ecasound interactive mode library interface age (libtool). [i]
+
+
+
+
OBJECT MAPS
+Object maps are central repositories for commonly used object types.
+By querying the maps, applications can get a list of all registered
+object types and their properties.
+
+
+
+
map-cop-list
+Prints a list of registered chain operators using
+the format specified in section OPERATOR DESCRIPTIONS. [s]
+
+
map-preset-list
+Prints a list of registered effect presets using
+the format specified in section OPERATOR DESCRIPTIONS. [s]
+
+
map-ladspa-list
+Prints a list of registered LADSPA plugins using
+the format specified in section OPERATOR DESCRIPTIONS. [s]
+
+
map-ladspa-id-list
+Prints a list of registered LADSPA plugins using
+the format specified in section OPERATOR DESCRIPTIONS.
+Numerical LADPSA plugin identifiers are used. [s]
+
+
map-ctrl-list
+Prints a list of registered controllers using
+the format specified in section OPERATOR DESCRIPTIONS. [s]
+
+
+
+
DUMP COMMANDS
+The following dump commands are not meant for normal use.
+Their primary purpose is to provide an easy way to get
+internal state information from libecasound. All dump
+commands output a single line with syntax "key value"
+to the selected output stream (defaults to stdout).
+
+
+
+
dump-target 'filename'
+Set target stream for dumping. [-]
+
+
dump-status
+Dumps engine status - 'running', 'stopped', 'finished' or 'notready'. [-]
+
+
dump-position
+Dumps the global position. Printed in seconds using a floating-point
+representation. [-]
+
+
dump-length
+Dumps the overall processing length. Printed in seconds using a floating-point
+representation. [-]
+
+
dump-cs-status
+Dumps status string for the currently selected chainsetup - 'connected',
+'selected' or an empty string. [-]
+
+
dump-c-selected
+Dumps the name of currently selected chain. [-]
+
+
dump-ai-selected
+Dumps label of currently selected audio input. If no input is
+selected, dumps an empty string. [-]
+
+
dump-ai-position
+Dumps position of currently selected audio inputs. Printed in
+seconds, using a floating-point representation. [-]
+
+
dump-ai-length
+Dumps length of currently selected audio input. Printed in seconds,
+using a floating-point representation. [-]
+
+
dump-ai-open-state
+Dumps audio input state info. Either 'open' or 'closed'. [-]
+
+
dump-ao-selected
+Dumps label of currently selected audio output. If no output is
+selected, dumps an empty string. [-]
+
+
dump-ao-position
+Dumps position of currently selected audio outputs. Printed in
+seconds, using a floating-point representation. [-]
+
+
dump-ao-length
+Dumps length of currently selected audio output. Printed in seconds,
+using a floating-point representation. [-]
+
+
dump-ao-open-state
+Dumps audio output state info. Either 'open' or 'closed'. [-]
+
+
dump-cop-value 'chainop,param'
+Dumps chain operator parameter value. 'chainop' and 'param' are
+operator and parameter index values (1...n). [-]
+
+
+
+
OPERATOR DESCRIPTIONS
+The map-xxx-list commands return a string containing all registered
+objects of the given type xxx. Each line of the output describes
+one registered type. The used syntax is:
+
+For exact descriptions of these fields, please see
+the header file ecasound/libecasound/eca-operator.h.
+
+
DEPRECATED COMMANDS
+Use of following commands is deprecated. They still work in
+current version of Ecasound, but will be dropped in
+the future:
+
+
+ ai-wave-edit, ao-wave-edit
+
+
+
SEE ALSO
+ ecasound (1), ecatools (1), ecasoundrc (5)
+
+
AUTHOR
+ Kai Vehmanen, <kvehmanen -at- eca -dot- cx>
diff --git a/ecasound-2.7.2/Documentation/ecasound.1 b/ecasound-2.7.2/Documentation/ecasound.1
new file mode 100644
index 000000000..1dfd0ff2c
--- /dev/null
+++ b/ecasound-2.7.2/Documentation/ecasound.1
@@ -0,0 +1,1110 @@
+.TH "ecasound" "1" "18\&.08\&.2010" "" "Multimedia software"
+
+.PP
+.SH "NAME"
+ecasound \- sample editor, multitrack recorder, fx-processor, etc\&.
+.PP
+.SH "SYNOPSIS"
+\fBecasound\fP [ general_options ] { [ chain_setup ] [ effect_setup ] [ input_setup ] [ output_setup ] }
+.PP
+.SH "DESCRIPTION"
+
+.PP
+Ecasound is a software package designed for multitrack audio
+processing\&. It can be used for simple tasks like audio playback,
+recording and format conversions, as well as for multitrack effect
+processing, mixing, recording and signal recycling\&. Ecasound supports
+a wide range of audio inputs, outputs and effect algorithms\&.
+Effects and audio objects can be combined in various ways, and their
+parameters can be controlled by operator objects like oscillators
+and MIDI-CCs\&. A versatile console mode user-interface is included
+in the package\&.
+.PP
+.SH "OPTIONS"
+
+.PP
+Note! All options except those mentioned in \fIecasound options\fP and
+\fIGlobal options\fP, can be used in ecasound chainsetup files (\&.ecs)\&.
+.PP
+\fBECASOUND OPTIONS\fP
+.IP
+These options are parsed and handled by the ecasound frontend binary and
+are not passed to backend library\&. This means that these options may
+not work in other applications that use ecasound libraries for their
+functionality\&.
+.IP
+.IP "-c"
+Starts ecasound in interactive mode\&. In interactive mode you can
+control ecasound with simple commands ("start", "stop", "pause",
+etc\&.)\&. See ecasound-iam \&.
+.IP
+.IP "-C"
+Disables ecasound\&'s interactive mode (see \&'-c\&' and \&'-K\&')\&.
+
+.IP
+.IP "-D"
+Print all debug information to stderr (unbuffered, plain output
+without ncurses)\&.
+.IP
+.IP "-s[:]chainsetup-file"
+Create a new chainsetup from file \&'chainsetup-file\&' and add
+it to the current session\&. Chainsetup files commonly have
+a filename ending to the \&'\&.ecs\&' extension\&. A chainsetup can
+contain inputs, outputs, chains, effects, controllers -- i\&.e\&.
+objects one one specific configuration of audio processing
+elements\&. A session, on the other hand, is a collection of
+one or more chainsetups\&. Only one of the chainsetups may be
+connected (i\&.e\&. it can be run/processed)\&. But it is possible
+to have another chainsetup select (i\&.e\&. can be configured)
+while other one is current connteced (i\&.e\&. running)\&.
+.IP
+.IP "-E "cmd1 [[args] ; cmd2 args ; \&.\&.\&. ; cmdN]""
+Execute a set of Ecasound Interactive mode (EIAM) commands
+at launch\&. These commands are executed immediately after
+ecasound is started\&. If the command line contains sufficient
+options to create a valid chainsetup that will be executed,
+the launch commands are executed after the other command
+line options are parsed, but before the processing engine
+is started\&. Note that this command is a feature of
+the ecasound frontend binary and not supported by
+the library backend\&. This means that other clients may
+not support the \&'-E\&' option, and also that the launch
+commands are not saved as part of chainsetup or session
+state\&.
+.IP
+.IP "--server"
+Enables the so called NetECI mode, in which ecasound can
+be controlled remotely over a socket connection\&. When
+activated, clients can connect to the running ecasound
+session, and use interactive mode commands to control and
+observe ecasound processing\&.
+.IP
+The NetECI protocol is defined in
+Ecasound\&'s Programmer Guide
+.IP
+One example client using this feature is ecamonitor(1)\&. This
+utility is included in the Ecasound distribution package (requires
+a working Python environment)\&.
+.IP
+\fIWarning!\fP If the machine running ecasound, is connected to
+a public network, be sure to block ecasound\&'s port in your
+firewall! As there is no access control implemented for incoming
+connections, anyone can otherwise connect, control and observe your
+ecasound sessions\&.
+This option replaces \&'--daemon\&' (deprecated in 2\&.6\&.0)\&.
+.IP
+.IP "--server-tcp-port=NNN"
+Set the TCP port used by the daemon mode\&. By default
+ecasound will use port number \fI2868\fP\&.
+This option replaces \&'--daemon-port\&' (deprecated in 2\&.6\&.0)\&.
+.IP
+.IP "--no-server"
+Disable ecasound\&'s daemon mode\&. This is the default\&.
+This option replaces \&'--nodaemon\&' (deprecated in 2\&.6\&.0)\&.
+.IP
+.IP "--osc-udp-port=NNN"
+Enables support for Open Source Control (OSC)\&. Ecasound will listen
+for incoming OSC messages on UDP port NNN\&. Ecasound\&'s OSC interface
+is documented at:
+
+.IP
+Note that OSC support is still experimental and the interface
+might change in later versions of Ecasound\&.
+.IP
+This option was added to ecasound 2\&.7\&.0\&.
+.IP
+.IP "--keep-running,-K"
+Do not exit when processing is finished/stopped\&. Only affects
+non-interactive operating mode (see -c/-C)\&.
+Option added to ecasound 2\&.4\&.2\&.
+.IP
+.IP "--help,-h"
+Show this help\&.
+.IP
+.IP "--version"
+Print version info\&.
+.IP
+\fBGLOBAL OPTIONS\fP
+.PP
+.IP "-d, -dd, -ddd"
+Increase the amount of printed debug messages\&. \fI-d\fP adds
+some verbosity, while \fI-ddd\fP results in very detailed
+output\&.
+.IP
+.IP "-d:debug_level"
+Set the debug level mask to \&'debug_level\&'\&. This a bitmasked value with
+the following classes: errors (1), info (2), subsystems (4), module_names (8),
+user_objects (16), system_objects 32, functions (64), continuous (128) and
+eiam_return_values (256)\&. Default is 271 (1+2+4+8+256)\&. See sourcode
+documentation for the ECA_LOGGER class for more detailed information\&.
+.IP
+.IP "-R[:]path-to-file"
+Use ecasound resource file (see ecasoundrc man page) \&'path-to-file\&' as
+the only source of setting resource value\&. Specifying this option
+will disable the normal policy of querying both global and user (if exists)
+resource files\&.
+.IP
+.IP "-q"
+Quiet mode, no output\&. Same as \fI-d:0\fP\&.
+.IP
+\fBGENERAL CHAINSETUP OPTIONS\fP
+
+.IP
+.IP "-a:chainname1, chainname2, \&.\&.\&."
+Selects active signal chains\&. All inputs and outputs following
+this \&'-a\&' option are assigned to selected chains (until a new -a
+option is specified)\&. When adding effects, controllers and other
+chain operators, only one chain can be selected at a time\&. If no -a option
+has been given, chain \&'default\&' is used instead when adding objects\&.
+Chain name \&'all\&' is also reserved\&. It will cause all existing chains
+to be selected\&. By giving multiple -a options, you can control to which
+chains effects, inputs and outputs are assigned to\&. Look at the \fBEXAMPLES\fP
+section for more detailed info about the usage of this option\&.
+.IP
+.IP "-n:name"
+Sets the name of chainsetup to \&'name\&'\&. If not specified, defaults
+either to "command-line-setup" or to the file name from which
+chainsetup was loaded\&. Whitespaces are not allowed\&.
+.IP
+.IP "-x"
+Truncate outputs\&. All output object are opened in overwrite mode\&.
+Any existing files will be truncated\&.
+.IP
+.IP "-X"
+Open outputs for updating\&. Ecasound opens all outputs - if target
+format allows it - in readwrite mode\&.
+.IP
+.IP "-z:feature"
+Enables \&'feature\&'\&. Most features can be disabled using notation
+\fI-z:nofeature\fP\&. \&'-z:db,dbsize\&' enables double-buffering for audio
+objects that support it (dbsize=0 for default, otherwise buffer
+size in sample frames)\&. \&'-z:nodb\&' disables double-buffering\&.
+\&'-z:intbuf\&' and \&'-z:nointbuf\&' control whether extra internal buffering
+is allowed for realtime devices\&. Disabling this can reduce
+latency times in some situations\&. With \&'-z:xruns\&', processing will be
+halted if an under/overrun occurs\&. \&'-z:multitrack\&' and
+\&'z:nomultitrack\&' can be used to force ecasound to enable or disable
+multitrack-mode\&. In rare cases you may want to explicitly specify
+the recording offset with \&'-z:multitrack,offset-in-samples\&'\&. The
+offset is the amount of samples skipped when recording from
+real-time inputs\&. \&'-z:psr\&' enables the \fIprecise-sample-rates\fP mode
+for OSS-devices\&. \&'-z:mixmode,sum\&' enables mixing mode where channels
+are mixed by summing all channels\&. The default is \&'-z:mixmode,avg\&',
+in which channels are mixed by averaging\&. Mixmode selection was first
+added to ecasound 2\&.4\&.0\&.
+See ecasoundrc man page\&.
+.IP
+\fBCHAINSETUP BUFFERING AND PERFORMANCE OPTIONS\fP
+
+.IP
+.IP "-B:buffering_mode"
+Selects the default buffering mode\&. Mode is one of: \&'auto\&' (default),
+\&'nonrt\&', \&'rt\&', \&'rtlowlatency\&'\&.
+.IP
+.IP "-b:buffer size"
+Sets the size of buffer in samples (must be an exponent of 2)\&. This
+is quite an important option\&. For real-time processing, you should
+set this as low as possible to reduce the processing delay\&. Some
+machines can handle buffer values as low as 64 and 128\&. In some
+circumstances (for instance when using oscillator envelopes) small
+buffer sizes will make envelopes act more smoothly\&. When not processing
+in real-time (all inputs and outputs are normal files), values between
+512 - 4096 often give better results\&. Default is 1024\&.
+.IP
+.IP "-r:sched_priority"
+Use realtime scheduling policy (SCHED_FIFO)\&. This is impossible if
+ecasound doesn\&'t have root priviledges\&. Beware! This gives better
+performance, but can cause total lock-ups if something goes wrong\&.
+The \&'sched_priority\&' can be omitted (0=omitted)\&. If given,
+this is the static priority to the highest priority ecasound thread\&.
+Other ecasound threads run with priority \&'sched_priority-1\&.\&.\&.n\&'\&.
+Value \&'-1\&' can be used to disable raised-priority mode\&.
+.IP
+.IP "-z:feature"
+Relevant features are -z:db,xxx (-z:nodb) and -z:intbuf (-z:nointbuf)\&.
+See section \fIGeneral chainsetup options\fP for details\&.
+.IP
+\fBPROCESSING CONTROL\fP
+.IP "-t:seconds"
+Sets processing time in seconds (doesn\&'t have to be an integer value)\&.
+If processing time isn\&'t set, engine stops when all inputs are
+finished\&. This option is equivalent to the \&'cs-set-length\&' EIAM
+command\&. A special-case value of \&'-1\&' will set the chainsetup length
+according to the longest input object\&.
+.IP
+.IP "-tl"
+Enables looping\&. When processing is finished, engine will start
+again from beginning\&. This option is equivalent to the \&'cs-loop\&'
+EIAM command\&.
+.IP
+\fBINPUT/OUTPUT SETUP\fP
+.PP
+See ecasound user\&'s guide for
+more detailed documentation\&.
+.PP
+.IP "-G:mgrtype,optstring"
+Sets options for audio object manager type \&'mgrtype\&'\&.
+For available options, see "OBJECT TYPE SPECIFIC NOTES" below\&.
+.IP
+.IP "-f:sample_format,channel,sample-rate,interleaving"
+Sets the audio stream parameters for subsequent audio objects\&.
+To set different parameters for different audio objects, multiple
+\&'-f\&' options have to be specified (note the ordering, the \&'-f\&'
+options should precede the audio objects for them to have any
+effect)\&. See documentation for \&'-i\&' and \&'-o\&' options\&.
+.IP
+When an audio object is opened (e\&.g\&. a file or sound device
+is opened, or connection is made to a sound server), the audio
+stream parameters are passed to the object\&. It should be noted that
+not all audio objects allow to set any or all of the parameters\&.
+For instance when opening existing audio files, many file formats
+have a header describing the file audio parameters\&. In
+these cases the audio file header overrides the parameters
+passed with \&'-f\&' option\&. Similarly when creating JACK inputs and
+outputs, the JACK server mandates the sampling rate and sample
+format\&.
+.IP
+If no \&'-f\&' option is specified, or some of the argument fields
+are left empty (e\&.g\&. \&'-f:,2,44100\&'), ecasound will use default values\&. These
+default values are defined in ecasoundrc configuration file\&. See
+ecasoundrc(5) manual page\&.
+.IP
+Note that ecasound opens out files by default in update mode\&.
+Unless option \&'-x\&' (overwrite outputs) option is given,
+audio parameters of an existing audio file take preference over
+the params set with \&'-f\&'\&.
+.IP
+Sample format is given as a formatted string\&. The first letter is
+either "u", "s" and "f" (unsigned, signed, floating point)\&. The
+following number specifies sample size in bits\&. If sample is
+little endian, "_le" is added to the end\&. Similarly if big endian,
+"_be" is added\&. If endianess is not specified, host byte-order is used\&.
+Currently supported formats are "u8" (same as "8"), "s16_le" (same
+as "16"), "s16_be", "s24_le", "s24_be", "s32_le", "s32_be", "f32_le"
+and "f32_be"\&. An empty string "" picks the system default sample
+format\&.
+.IP
+The 4th parameter defines the channel layout\&. The available
+options are \&'i\&' (interleaved\&' and \&'n\&' (noninterleaved)\&. With
+the noninterleaved setting, ecasound will process samples
+one channel at a time, and the blocksize is set with \&'-b\&'\&.
+The default setting is \&'i\&'\&.
+.IP
+.IP "-y:seconds"
+Sets starting position for last specified input/output\&. If
+you need more flexible control over audio objects, you should
+use the \fI\&.ewf\fP format\&.
+.IP
+.IP "-i[:]input-file-or-device[,params]"
+Specifies a new input source that is connected to all selected chains (chains
+are selected with \&'-a:\&.\&.\&.\&')\&. Connecting multiple inputs to the same chain is
+not possible, but one input can be connected to multiple chains\&. Input can be
+a a file, device or some other audio object (see below)\&. If the input is
+a file, its type is determined using the file name extension\&. If the object
+name contains any commas, the name must be enclosed in backquotes to avoid
+confusing the parser\&. Currently supported formats are RIFF WAVE files (\&.wav),
+audio-cd tracks (\&.cdr), ecasound EWF files (\&.ewf), RAW audio data (\&.raw) and
+MPEG audio files (\&.mp2,\&.mp3)\&. More audio formats are supported via libaudiofile
+and libsndfile libraries (see documentation below)\&. MikMod is also supported (\&.xm,
+\&.mod, \&.s3m, \&.it, etc)\&. MIDI files (\&.mid) are supported using Timidity++\&.
+Similarly Ogg Vorbis (\&.ogg) can be read, and written if ogg123 and vorbize tools
+are installed; FLAC files (\&.flac) with flac command-line tools or using
+libsndfile; and AAC files (\&.aac/\&.m4a/\&.mp4) with faad2/faac tools\&. Supported
+realtime devices are OSS audio devices (/dev/dsp*), ALSA audio and loopback
+devices and JACK audio subsystem\&. If no inputs are specified, the first
+non-option (doesn\&'t start with \&'-\&') command line argument is considered
+to be an input\&.
+.IP
+.IP "-o[:]output-file-or-device[,params]"
+Works in the same way as the -i option\&. If no outputs are specified,
+the default output device is used (see ~/\&.ecasoundrc)\&. If the object
+name contains any commas, the name must be enclosed in backquotes to
+avoid confusing the parser\&. Note, many object types do not support
+output (e\&.g\&. MikMod, MIDI and many others)\&.
+.IP
+\fIOBJECT TYPE SPECIFIC NOTES\fP
+.IP "ALSA devices - \&'alsa\&'"
+When using ALSA drivers, instead of a device filename, you need to
+use the following option syntax: \fB-i[:]alsa,pcm_device_name\fP\&.
+.IP
+.IP "ALSA direct-hw and plugin access - \&'alsahw\&', \&'alsaplugin\&'"
+It\&'s also possible to use a specific card and device combination
+using the following notation: \fB-i[:]alsahw,card_number,device_number,subdevice_number\fP\&.
+Another option is the ALSA PCM plugin layer\&. It works just like
+the normal ALSA pcm-devices, but with automatic channel count and
+sample format conversions\&. Option syntax is
+\fB-i[:]alsaplugin,card_number,device_number,subdevice_number\fP\&.
+.IP
+.IP "aRts input/output - \&'arts\&'"
+If enabled at compile-time, ecasound supports audio input and
+output using aRts audio server\&. Option syntax is \fB-i:arts\fP,
+\fB-o:arts\fP\&.
+.IP
+.IP "Audio file sequencing - \&'audioloop\&', \&'select\&', \&'playat\&'"
+Ecasound provides a set of special audio object types that
+can be used for temporal sequencing of audio files - i\&.e\&. looping,
+playing only a select portion of a file, playing file at a spefific
+time, and other such operation\&.
+.IP
+Looping is possible with \fB-i:audioloop,file\&.ext,params\fP\&. The
+file name (or any object type understood by Ecasound) given
+as the second parameter is played back continuously looping
+back to the beginning when the end of file is reached\&. Any additional
+parameters given are passed unaltered to the file object\&.
+Parameters 3\&.\&.\&.N are passed as is to the child object (i\&.e\&.
+"-i audioloop,foo\&.wav,bar1,bar2" will pass parameters
+"bar1,bar2" to the "foo\&.wav" object\&.
+.IP
+To select and use only a specific segment of an audio object,
+the \fB-i:select,start-time,duration,file\&.ext,params\fP can
+be used\&. This will play "duration" of "file\&.ext", starting at
+"start-time"\&. The time values should be given as seconds (e\&.g\&.
+"2\&.25", or as samples (e\&.g\&. "25000sa")\&. Parameters 4\&.\&.\&.N are
+passed as is to the child object\&.
+.IP
+To play an audio object at a given moment in time,
+the \fB-i:playat,play-at-time,file\&.ext,params\fP can be
+used\&. This will play "file\&.ext" after position reaches
+"play-at-time"\&. The time values should be given as seconds (e\&.g\&.
+"2\&.25", or as samples (e\&.g\&. "25000sa")\&. Parameters 2\&.\&.\&.N are
+passed as is to the child object\&.
+.IP
+.IP "Ecasound Wave Files (EWF) - \&'*\&.ewf\&'"
+A special file format that allows to slice and loop full (or segments)
+of audio files\&. This format is specific to Ecasound\&.
+See ecasound user\&'s guide for more
+detailed information\&.
+.IP
+See also audio object types \&'audioloop\&', \&'select\&' and \&'playat\&'\&.
+.IP
+.IP "JACK input/outputs - Overview"
+JACK is a low-latency audio server that can be used to connect
+multiple independent audio application to each other\&.
+It is different from other audio server efforts in that
+it has been designed from the ground up to be suitable for low-latency
+professional audio work\&.
+.IP
+.IP "JACK input/outputs - \&'jack\&'"
+Ecasound provides multiple ways to communicate with JACK
+servers\&. To create a JACK input or output object, one should use \fB-i jack\fP and
+\fB-o jack\fP\&. These create JACK client ports "ecasound:in_N" and
+"ecasound:out_n" respectively (\&'N\&' is replaced by the channel number)\&.
+Ecasound automatically creates one JACK port for each channel (number
+of channels is set with \fB-f:bits,channels,rate\fP option)\&.
+.IP
+It is important to note that by default JACK ports are not connected
+anywhere (e\&.g\&. to soundcard input/outputs, or to other apps)\&. One thus
+has to connect the ports with an external program (e\&.g\&. "QJackCtl"
+or "jack_connect")\&.
+.IP
+.IP "JACK input/outputs - \&'jack,clientname,portprefix\&'"
+\fB"jack,clientname"\fP For simple use scanerios, ecasound provides a way to autoconnect
+the ecasound ports\&. This can be done with by giving the peer client
+name as the second parameter to the "jack" object, e\&.g\&. \fB-o jack,clientname\fP\&.
+As an example, \fB-o jack,system\fP will create an output that is
+automatically connected to outputs of the default system soundcard\&.
+The client parameter can be omitted, in which case no automatic
+connections are made\&.
+.IP
+If one needs to change the port prefix (e\&.g\&. "in" in client name
+"ecasound:in_N"), the prefix can be specified as the third parameter to
+"jack" object, e\&.g\&. \fB-o jack,,fxout\fP\&. Also the third parameter can be
+omitted, in which case the default prefixes "in" and "out" are used\&.
+.IP
+.IP "JACK input/outputs - \&'jack_multi\&'"
+A variant of \&'jack\&' object type is \&'jack_multi\&'\&. The full object syntax
+is \fBjack_multi,destport1,\&.\&.\&.,destportN\fP\&. When a \&'jack_multi\&' object
+is connected to a JACK server, first channel of the object is connected
+to JACK port \&'destport1\&', second to \&'destport2\&' and so forth\&. For
+instance "-f:32,2,44100 -o jack_multi,foo:in,bar:in"
+creates a stereo ecasound output object, with its left and right
+channels routed to two difference JACK clients\&. The destination ports
+must be active when the ecasound engine is launched, or otherwise
+the connections cannot be established\&. If destination ports are not
+specified for all channels, or zero length strings are given, those
+ports are not connected at launch by ecasound\&.
+.IP
+.IP "JACK input/outputs - \&'jack_alsa\&', \&'jack_auto\&', \&'jack_generic\&' (**deprecated since 2\&.6\&.0**)"
+Ecasound 2\&.5 and older supported "jack_alsa", "jack_auto" and "jack_generic" object
+types, but these are now replaced by a more generic "jack" interface, and thus are
+now deprecated (they work but are no longer documented)\&.
+.IP
+.IP "JACK input/outputs - client options"
+Additionally global JACK options can be set using
+\fB-G:jack,client_name,operation_mode\fP option\&. \&'client_name\&'
+is the name used when registering ecasound to the JACK system\&.
+If \&'operation_mode\&' is "notransport", ecasound will ignore
+any transport state changes in the JACK-system; in mode
+"send" it will send all start, stop and position-change events to
+other JACK clients; in mode "recv" ecasound will follow JACK start,
+stop and position-change events; and mode "sendrecv" (the default)
+which is a combination of the two previous modes\&.
+.IP
+More details about ecasound\&'s JACK support can be found
+from Ecasound User\&'s Guide\&.
+.IP
+.IP "Libaudiofile - \&'audiofile\&'"
+If libaudiofile support was enabled at compile-time, this
+option allows you to force Ecasound to use libaudiofile
+for reading/writing a certain audio file\&. Option syntax
+is \fB-i:audiofile,foobar\&.ext\fP (same for \fB-o\fP)\&.
+.IP
+.IP "Libsndfile - \&'sndfile\&'"
+If libsndfile support was enabled at compile-time, this
+option allows you to force Ecasound to use libsndfile
+for reading/writing a certain audio file\&. Option syntax
+is \fB-i:sndfile,foobar\&.ext[,\&.format-ext]\fP (same for \fB-o\fP)\&.
+The optional third parameter "format" can be used to
+override the audio format (for example you can create an
+AIFF file with filename "foo\&.wav")\&.
+.IP
+.IP "Loop device - \&'loop\&'"
+Loop devices make it possible to route (loop back) data between
+chains\&. Option syntax is \fB-[io][:]loop,tag\fP\&. If you add
+a loop output with tag \&'1\&', all data written to this output is routed
+to any loop input with tag \&'1\&'\&. The tag can be either numerical
+(e\&.g\&. \&'-i:loop,1\&') or a string (e\&.g\&. "-i:loop,vocals")\&. Like
+with other input/output objects, you can attach the same loop
+device to multiple chains and this way split/mix the signal\&.
+.IP
+Note: this \&'loop\&' device is different from \&'audioloop\&' (latter
+added to ecasound v2\&.5\&.0)\&.
+.IP
+.IP "Mikmod - \&'mikmod\&'"
+If mikmod support was enabled at compile-time, this
+option allows you to force Ecasound to use Mikmod
+for reading/writing a certain module file\&. Option syntax
+is \fB-i:mikmod,foobar\&.ext\fP\&.
+.IP
+.IP "Null inputs/outputs - \&'null\&'"
+If you specify "null" or "/dev/null" as the input or output,
+a null audio device is created\&. This is useful if you just want
+to analyze sample data without writing it to a file\&. There\&'s
+also a realtime variant, "rtnull", which behaves just like "null"
+objects, except all i/o is done at realtime speed\&.
+.IP
+.IP "Resample - \&'resample\&'"
+Object type \&'resample\&' can be used to resample audio
+object\&'s audio data to match the sampling rate used
+in the active chainsetup\&. For example,
+\fBecasound -f:16,2,44100 -i resample,22050,foo\&.wav -o /dev/dsp\fP,
+will resample file from 22\&.05kHz to 44\&.1kHz and write the
+result to the soundcard device\&. Child sampling rate can be
+replaced with keyword \&'auto\&'\&. In this case ecasound will try
+to query the child object for its sampling rate\&. This works with
+files formats such as \&.wav which store meta information about
+the audio file format\&. To use \&'auto\&' in the previous example,
+\fBecasound -f:16,2,44100 -i resample,auto,foo\&.wav -o /dev/dsp\fP\&.
+.IP
+Parameters 4\&.\&.\&.N are passed as is to the child object (i\&.e\&.
+"-i resample,22050,foo\&.wav,bar1,bar2" will pass parameters
+"bar1,bar2" to the "foo\&.wav" object\&.
+.IP
+If ecasound was compiled with support for libsamplerate, you can
+use \&'resample-hq\&' to use the highest quality resampling algorithm
+available\&. To force ecasound to use the internal resampler,
+\&'resampler-lq\&' (low-quality) can be used\&.
+.IP
+.IP "Reverse - \&'reverse\&'"
+Object type \&'reverse\&' can be used to reverse audio
+data coming from an audio object\&. As an example,
+\fBecasound -i reverse,foo\&.wav -o /dev/dsp\fP will play
+\&'foo\&.wav\&' backwards\&. Reversing output objects is not
+supported\&. Note! Trying to reverse audio object types with really
+slow seek operation (like mp3), works extremely badly\&.
+Try converting to an uncompressed format (wav or raw)
+first, and then do reversation\&.
+.IP
+Parameters 3\&.\&.\&.N are passed as is to the child object (i\&.e\&.
+"-i reverse,foo\&.wav,bar1,bar2" will pass parameters
+"bar1,bar2" to the "foo\&.wav" object\&.
+.IP
+.IP "System standard streams and named pipes - \&'stdin\&', \&'stdout\&'"
+You can use standard streams (stdin and stdout) by giving \fBstdin\fP
+or \fBstdout\fP as the file name\&. Audio data is assumed to be in
+raw/headerless (\&.raw) format\&. If you want to use named pipes,
+create them with the proper file name extension before use\&.
+.IP
+.IP "Tone generator - \&'tone\&'"
+To generate a test tone, input \fB-i:tone,type,freq,duration-secs\fP
+can be used\&. Parameter \&'type\&' specifies the tone type: currently
+only \&'sine\&' is supported\&. The \&'freq\&' parameter sets the frequency
+of the generated tone and \&'duration-secs\&' the length of the generated
+stream\&. Specifying zero, or a negative value, as the duration will
+produce an infinite stream\&. This feature was first added to Ecasound
+2\&.4\&.7\&.
+.IP
+.IP "Typeselect - \&'typeselect\&'"
+The special \&'typeselect\&' object type can be used to override
+how ecasound maps filename extensions and object types\&. For
+instance \fBecasound -i typeselect,\&.mp3,an_mp3_file\&.wav -o /dev/dsp\fP\&.
+would play the file \&'an_mp3_file\&.wav\&' as an mp3-file and not
+as an wav-file as would happen without typeselect\&.
+.IP
+Parameters 4\&.\&.\&.N are passed as is to the child object (i\&.e\&.
+"-i typeselect,\&.au,foo\&.wav,bar1,bar2" will pass parameters
+"bar1,bar2" to the "foo\&.wav" object\&.
+.IP
+\fBMIDI SETUP\fP
+.PP
+.IP "MIDI I/O devices - general"
+If no MIDI-device is specified, the default MIDI-device is
+used (see ecasoundrc(5))\&.
+.IP
+.IP "-Md:rawmidi,device_name"
+Add a rawmidi MIDI I/O device to the setup\&. \&'device_name\&' can be anything
+that can be accessed using the normal UNIX file operations and
+produces raw MIDI bytes\&. Valid devices are for example OSS rawmidi
+devices (/dev/midi00), ALSA rawmidi devices (/dev/snd/midiC2D0), named
+pipes (see mkfifo man page), and normal files\&.
+.IP
+.IP "-Md:alsaseq,sequencer-port"
+Adds a ALSA MIDI sequencer port to the setup\&. \&'sequencer-port\&' identifies
+a port to connect to\&. It can be numerical (e\&.g\&. 128:1), or a client
+name (e\&.g\&. "KMidimon")\&.
+.IP
+.IP "-Mms:device_id"
+Sends MMC start ("Deferred Play") and stop ("Stop") with
+device ID \&'device_id\&'\&.
+.IP
+While Ecasound does not directly support syncing transport state
+to incoming MMC messages, this can be achieved by connecting Ecasound
+to JACK input/outputs, and using a tool such as JackMMC and JackCtlMMC (
+see ) to convert MMC messages
+into JACK transport change events\&.
+.IP
+.IP "-Mss"
+Sends MIDI-sync (i\&.e\&. "MIDI Start" and "MIDI Stop" system realtime
+messages) \&.to the selected MIDI-device\&. Notice that as Ecasound will
+not send \fIMIDI-clock\fP, but only the \fIstart\fP and \fIstop\fP messages\&.
+.IP
+\fBEFFECT SETUP\fP
+.PP
+\fIPRESETS\fP
+.PP
+Ecasound has a powerful effect preset system that allows you create
+new effects by combining basic effects and controllers\&. See
+ecasound user\&'s guide for more
+detailed information\&.
+.PP
+.IP "-pf:preset_file\&.eep"
+Uses the first preset found from file \&'preset_file\&.eep\&' as
+a chain operator\&.
+.IP
+.IP "-pn:preset_name"
+Find preset \&'preset_name\&' from global preset database and use
+it as a chain operator\&. See ecasoundrc man page for info about the
+preset database\&.
+.IP
+\fISIGNAL ANALYSIS\fP
+.PP
+.IP "-ev"
+Analyzes sample data to find out how much the signal can
+be amplified without clipping\&. The resulting percent value
+can be used as a parameter to \&'-ea\&' (amplify)\&. A statistical
+summary, containing info about the stereo-image and
+distribution of sample values, is printed out at the end
+of processing\&.
+.IP
+.IP "-evp"
+Peak amplitude watcher\&. Maintains peak information for
+each processed channels\&. Peak information is resetted
+on every read\&.
+.IP
+.IP "-ezf"
+Finds the optimal value for DC-adjusting\&. You can use the result
+as a parameter to -ezx effect\&.
+.IP
+\fIGENERAL SIGNAL PROCESSING ALGORITHMS\fP
+.IP "-eS:stamp-id"
+Audio stamp\&. Takes a snapshot of passing audio data and stores
+it using id \&'stamp-id\&' (integer number)\&. This data can later be
+used by controllers and other operators\&.
+.IP
+.IP "-ea:amplify%"
+Adjusts the signal amplitude to \&'amplify%\&' percent (linear scale, i\&.e\&.
+individual samples are multiplied by \&'amplify%/100\&')\&. See also
+\&'-eadb\&'\&.
+.IP
+.IP "-eac:amplify%,channel"
+Amplifies signal of channel \&'channel\&' by amplify-% percent (linear
+scale, i\&.e\&. individual samples are multiplied by \&'amplify%/100\&')\&.
+\&'channel\&' ranges from 1\&.\&.\&.n where n is the total number of channels\&.
+See also \&'-eadb\&'\&.
+.IP
+.IP "-eadb:gain-dB[,channel]"
+Adjusts signal level by \&'gain-dB\&', with a gain of 0dB having no effect
+to the signal, negative gains attenuating the signal and positive
+gain values amplifying it\&. The \&'channel\&' parameter (1\&.\&.\&.n) is optional\&.
+If \&'channel\&' parameter is specified, and its value is nonzero, gain is
+only applied to the given channel (1\&.\&.\&.n)\&.
+.IP
+.IP "-eaw:amplify%,max-clipped-samples"
+Amplifies signal by amplify-% percent (linear scale, i\&.e\&. individual
+samples are multiplied by \&'amplify%/100\&')\&. If number of consecutive
+clipped samples (resulting sample value is outside the nominal
+[-1,1] range), a warning will be issued\&.
+.IP
+.IP "-eal:limit-%"
+Limiter effect\&. Limits audio level to \&'limit-%\&' (linear scale) with
+values equal or greater than 100% resulting in no change to
+the signal\&.
+.IP
+.IP "-ec:rate,threshold-%"
+Compressor (a simple one)\&. \&'rate\&' is the compression rate in
+decibels (\&'rate\&' dB change in input signal causes 1dB change
+in output)\&. \&'threshold\&' varies between 0\&.0 (silence) and
+1\&.0 (max amplitude)\&.
+.IP
+.IP "-eca:peak-level-%, release-time-sec, fast-crate, crate"
+A more advanced compressor (original algorithm by John S\&. Dyson)\&.
+If you give a value of 0 to any parameter, the default is used\&.
+\&'peak-level-%\&' essentially specifies how hard the peak limiter
+is pushed\&. The default of 69% is good\&. \&'release_time\&' is given
+in seconds\&. This compressor is very sophisticated, and actually
+the release time is complex\&. This is one of the dominant release
+time controls, but the actual release time is dependent on a lot of
+factors regarding the dynamics of the audio in\&. \&'fastrate\&' is the
+compression ratio for the fast compressor\&. This is not really
+the compression ratio\&. Value of 1\&.0 is infinity to one, while the
+default 0\&.50 is 2:1\&. Another really good value is special cased in
+the code: 0\&.25 is somewhat less than 2:1, and sounds super smooth\&.
+\&'rate\&' is the compression ratio for the entire compressor chain\&.
+The default is 1\&.0, and holds the volume very constant without many nasty
+side effects\&. However the dynamics in music are severely restricted,
+and a value of 0\&.5 might keep the music more intact\&.
+.IP
+.IP "-enm:threshold-level-%,pre-hold-time-msec,attack-time-msec,post-hold-time-msec,release-time-msec"
+Noise gate\&. Supports multichannel processing (each channel
+processed separately)\&. When signal amplitude falls below
+\&'threshold_level_%\&' percent (100% means maximum amplitude), gate
+is activated\&. If the signal stays below the threshold for
+\&'th_time\&' ms, it\&'s faded out during the attack phase of
+\&'attack\&' ms\&. If the signal raises above the \&'threshold_level\&'
+and stays there over \&'hold\&' ms the gate is released during
+\&'release\&' ms\&.
+.IP
+.IP "-ei:pitch-shift-%"
+Pitch shifter\&. Modifies audio pitch by altering its length\&.
+.IP
+.IP "-epp:right-%"
+Stereo panner\&. Changes the relative balance between the first
+two channels\&. When \&'right-%\&' is 0, only signal on the left
+(1st) channel is passed through\&. Similarly if it is \&'100\&',
+only right (2nd) channel is let through\&.
+.IP
+.IP "-ezx:channel-count,delta-ch1,\&.\&.\&.,delta-chN"
+Adjusts the signal DC by \&'delta-chX\&', where X is the
+channel number\&. Use -ezf to find the optimal delta
+values\&.
+.IP
+\fIENVELOPE MODULATION\fP
+
+.IP
+.IP "-eemb:bpm,on-time-%"
+Pulse gate (pulse frequency given as beats-per-minute)\&.
+.IP
+.IP "-eemp:freq-Hz,on-time-%"
+Pulse gate\&.
+.IP
+.IP "-eemt:bpm,depth-%"
+Tremolo effect (tremolo speed given as beats-per-minute)\&.
+.IP
+\fIFILTER EFFECTS\fP
+.IP "-ef1:center_freq, width"
+Resonant bandpass filter\&. \&'center_freq\&' is the center frequency\&. Width
+is specified in Hz\&.
+.IP
+.IP "-ef3:cutoff_freq, reso, gain"
+Resonant lowpass filter\&. \&'cutoffr_freq\&' is the filter cutoff
+frequency\&. \&'reso\&' means resonance\&. Usually the best values for
+resonance are between 1\&.0 and 2\&.0, but you can use even bigger values\&.
+\&'gain\&' is the overall gain-factor\&. It\&'s a simple multiplier (1\&.0
+is the normal level)\&. With high resonance values it often is useful
+to reduce the gain value\&.
+.IP
+.IP "-ef4:cutoff, resonance"
+Resonant lowpass filter (3rd-order, 36dB, original algorithm by Stefan
+M\&. Fendt)\&. Simulates an analog active RC-lowpass design\&. Cutoff is a
+value between [0,1], while resonance is between [0,infinity)\&.
+.IP
+.IP "-efa:delay-samples,feedback-%"
+Allpass filter\&. Passes all frequencies with no change in amplitude\&.
+However, at the same time it imposes a frequency-dependent
+phase-shift\&.
+.IP
+.IP "-efc:delay-samples,radius"
+Comb filter\&. Allows the spikes of the comb to pass through\&.
+Value of \&'radius\&' should be between [0, 1\&.0)\&.
+.IP
+.IP "-efb:center-freq,width"
+Bandpass filter\&. \&'center_freq\&' is the center frequency\&. Width
+is specified in Hz\&.
+.IP
+.IP "-efh:cutoff-freq"
+Highpass filter\&. Only frequencies above \&'cutoff_freq\&' are passed
+through\&.
+.IP
+.IP "-efi:delay-samples,radius"
+Inverse comb filter\&. Filters out the spikes of the comb\&. There
+are \&'delay_in_samples-2\&' spikes\&. Value of \&'radius\&' should be
+between [0, 1\&.0)\&. The closer it is to the maximum value,
+the deeper the dips of the comb are\&.
+.IP
+.IP "-efl:cutoff-freq"
+Lowpass filter\&. Only frequencies below \&'cutoff_freq\&' are passed
+through\&.
+.IP
+.IP "-efr:center-freq,width"
+Bandreject filter\&. \&'center_freq\&' is the center frequency\&. Width
+is specified in Hz\&.
+.IP
+.IP "-efs:center-freq,width"
+Resonator\&. \&'center_freq\&' is the center frequency\&. Width is specified
+in Hz\&. Basicly just another resonating bandpass filter\&.
+.IP
+\fICHANNEL MIXING / ROUTING\fP
+
+.IP
+.IP "-chcopy:from-channel, to-channel"
+Copy channel \&'from_channel\&' to \&'to_channel\&'\&. If \&'to_channel\&'
+doesn\&'t exist, it is created\&. Channel indexing starts from 1\&.
+Option added to ecasound 2\&.4\&.5\&.
+.IP
+.IP "-chmove:from-channel, to-channel"
+Copy channel \&'from_channel\&' to \&'to_channel\&', and mutes the source
+channel \&'from_channel\&'\&. Channel indexing starts from 1\&.
+Option added to ecasound 2\&.4\&.5\&.
+.IP
+.IP "-chorder:ch1,\&.\&.\&.,chN"
+Reorder, omit and/r duplicate chain channels\&. The resulting
+audio stream has total of \&'N\&' channels\&. Each parameter specifies
+the source channel to use for given output channel\&. As an
+example, \&'-chorder:2,1\&' would reverse the channels of
+a stereo stream (\&'out1,out2\&' = \&'in2,in1\&')\&. Specifying the same
+source channel multiple times is allowed\&. For example, \&'-chorder:2,2\&'
+would route the second channel to both two output channels
+(\&'out1,out2\&' = \&'in2,in2\&')\&. If \&'chX\&' is zero, the given channel \&'X\&'
+will be muted in the output stream\&. Option added to ecasound 2\&.7\&.0\&.
+.IP
+.IP "-chmix:to-channel"
+Mix all source channels to channel \&'to_channel\&'\&. If \&'to_channel\&'
+doesn\&'t exist, it is created\&. Channel indexing starts from 1\&.
+Option added to ecasound 2\&.4\&.5\&.
+.IP
+.IP "-chmute:channel"
+Mutes the channel \&'channel\&'\&. Channel indexing starts from 1\&.
+Option added to ecasound 2\&.4\&.5\&.
+.IP
+.IP "-erc:from-channel,to-channel"
+Deprecated, see \fI-chcopy\fP\&.
+.IP
+.IP "-erm:to-channel"
+Deprecated, see \fI-chmix\fP\&.
+.IP
+\fITIME-BASED EFFECTS\fP
+
+.IP
+.IP "-etc:delay-time-msec,variance-time-samples,feedback-%,lfo-freq"
+Chorus\&.
+.IP
+.IP "-etd:delay-time-msec,surround-mode,number-of-delays,mix-%,feedback-%"
+Delay effect\&. \&'delay time\&' is the delay time in milliseconds\&.
+\&'surround-mode\&' is a integer with following meanings: 0 = normal,
+1 = surround, 2 = stereo-spread\&. \&'number_of_delays\&' should be
+obvious\&. Beware that large number of delays and huge delay times
+need a lot of CPU power\&. \&'mix-%\&' determines how much effected (wet)
+signal is mixed to the original\&. \&'feedback-%\&' represents how much of
+the signal is recycled in each delay or, if you prefer, at what rate
+the repeated snippet of delayed audio fades\&. Note that sufficiently
+low feedback values may result in a number of audible repetitions
+lesser than what you have specified for \&'number_of_delays\&', especially
+if you have set a low value for \&'mix-%\&'\&. By default the value for this
+parameter is 100% (No signal loss\&.)\&.
+.IP
+.IP "-ete:room_size,feedback-%,wet-%"
+A more advanced reverb effect (original algorithm by Stefan M\&. Fendt)\&.
+\&'room_size\&' is given in meters, \&'feedback-%\&' is the feedback level
+given in percents and \&'wet-%\&' is the amount of reverbed signal added
+to the original signal\&.
+.IP
+.IP "-etf:delay-time-msec"
+Fake-stereo effect\&. The input signal is summed to mono\&. The
+original signal goes to the left channels while a delayed
+version (with delay of \&'delay time\&' milliseconds) is goes to
+the right\&. With a delay time of 1-40 milliseconds this
+adds a stereo-feel to mono-signals\&.
+.IP
+.IP "-etl:delay-time-msec,variance-time-samples,feedback-%,lfo-freq"
+Flanger\&.
+.IP
+.IP "-etm:delay-time-msec,number-of-delays,mix-%"
+Multitap delay\&. \&'delay time\&' is the delay time in milliseconds\&.
+\&'number_of_delays\&' should be obvious\&. \&'mix-%\&' determines how much
+effected (wet) signal is mixed to the original\&.
+.IP
+.IP "-etp:delay-time-msec,variance-time-samples,feedback-%,lfo-freq"
+Phaser\&.
+.IP
+.IP "-etr:delay-time,surround-mode,feedback-%"
+Reverb effect\&. \&'delay time\&' is the delay time in milliseconds\&.
+If \&'surround-mode\&' is \&'surround\&', reverbed signal moves around the
+stereo image\&. \&'feedback-%\&' determines how much effected (wet)
+signal is fed back to the reverb\&.
+.IP
+\fILADSPA-PLUGINS\fP
+.IP "-el:plugin_unique_name,param-1,\&.\&.\&.,param-N"
+Ecasound supports LADSPA-effect plugins (Linux Audio Developer\&'s Simple
+Plugin API)\&. Plugins are located in shared library (\&.so) files in
+/usr/local/share/ladspa (configured in ecasoundrc man page)\&. One shared
+library file can contain multiple plugin objects, but every plugin
+has a unique plugin name\&. This name is used for selecting plugins\&.
+See LAD mailing list web site for
+more info about LADSPA\&. Other useful sites are LADSPA home
+page and LADSPA
+documentation\&.
+.IP
+.IP "-eli:plugin_unique_number,param-1,\&.\&.\&.,param-N"
+Same as above expect plugin\&'s unique id-number is used\&. It
+is guaranteed that these id-numbers are unique among all
+LADSPA plugins\&.
+.IP
+\fIGATE SETUP\fP
+.PP
+.IP "-gc:start-time,len"
+Time crop gate\&. Initially gate is closed\&. After \&'start-time\&' seconds
+has elapsed, gate opens and remains open for \&'len\&' seconds\&. When
+closed, passing audio buffers are trucated to zero length\&.
+.IP
+.IP "-ge:open-threshold-%,close-thold-%,volume-mode,reopen-count"
+Threshold gate\&. Initially gate is closed\&. It is opened when volume
+goes over \&'othreshold\&' percent\&. After this, if volume drops below
+\&'cthold\&' percent, gate is closed and won\&'t be opened again, unless the
+\&'reopen-count\&' is set to anything other than zero\&.
+If \&'value_mode\&' is \&'rms\&', average RMS volume is used\&. Otherwise
+peak average is used\&. When closed, passing audio buffers are trucated
+to zero length\&.
+If the \&'reopen-count\&' is set to a positive number, then the gate will
+restart its operation that many times\&. So for example, a reopen count
+of 1 will cause up to 2 openings of the gate\&. A negative value for \&'reopen-count\&'
+will result in the gate reopening indefinitely\&. The \&'reopen-count\&' is invaluable
+in recording vinyl and tapes, where you can set things up and then recording
+starts whenever the needle is on the vinyl, and stops when it\&'s off\&. As many sides
+as you like can be recorded in one session\&. You will need to experiment with
+buffer lengths and start/stop levels to get reliable settings for your equipment\&.
+.IP
+.IP "-gm:state"
+Manual gate\&. If \&'state\&' is 1, gate is open and all samples are
+passed through\&. If \&'state\&' is zero, gate is closed an no samples are
+let through\&. This chain operator is useful when writing to an output
+needs to be stopped dynamically (without stopping the whole engine)\&.
+.IP
+\fICONTROL ENVELOPE SETUP\fP
+
+.IP
+Controllers can be used to dynamically change effect parameters
+during processing\&. All controllers are attached to the selected
+(=usually the last specified effect/controller) effect\&. The first
+three parameters are common for all controllers\&. \&'fx_param\&'
+specifies the parameter to be controlled\&. Value \&'1\&' means
+the first parameter, \&'2\&' the second and so on\&. \&'start_value\&'
+and \&'end_value\&' set the value range\&. For examples, look at the
+the \fBEXAMPLES\fP section\&.
+.IP
+.IP "-kos:fx-param,start-value,end-value,freq,i-phase"
+Sine oscillator with frequency of \&'freq\&' Hz and initial phase
+of \&'i_phase\&' times pi\&.
+.IP
+.IP "-kog:fx-param,freq,mode,point-pairs,start-value,end-value,pos1,value1,\&.\&.\&."
+Generic oscillator\&. Frequency \&'freq\&' Hz, mode either \&'0\&' for
+static values or \&'1\&' for linear interpolation\&. \&'point-pairs\&'
+specifies the number of \&'posN\&' - \&'valueN\&' pairs to include\&.
+\&'start-value\&' and \&'end-value\&' are used as border values\&.
+All \&'posN\&' and \&'valueN\&' must be between 0\&.0 and 1\&.0\&. Also,
+for all \&'posN\&' values \&'pos1 < pos2 < \&.\&.\&. < posN\&' must be true\&.
+.IP
+.IP "-kf:fx-param,start-value,end-value,freq,mode,genosc-number"
+Generic oscillator\&. \&'genosc_number\&' is the number of the
+oscillator preset to be loaded\&. Mode is either \&'0\&' for
+static values or \&'1\&' for linear interpolation\&. The location for
+the preset file is taken from \&./ecasoundrc (see \fIecasoundrc man page\fP)\&.
+.IP
+.IP "-kl:fx-param,start-value,end-value,time-seconds"
+Linear envelope that starts from \&'start_value\&' and linearly
+changes to \&'end_value\&' during \&'time_in_seconds\&'\&. Can
+be used for fadeins and fadeouts\&.
+.IP
+.IP "-kl2:fx-param,start-value,end-value,1st-stage-length-sec,2nd-stage-length-sec"
+Two-stage linear envelope, a more versatile tool for doing fade-ins
+and fade-outs\&. Stays at \&'start_value\&' for \&'1st_stage_length\&' seconds
+and then linearly changes towards \&'end_value\&' during
+\&'2nd_stage_length\&' seconds\&.
+.IP
+.IP "-klg:fx-param,low-value,high-value,point_count,pos1,value1,\&.\&.\&.,posN,valueN"
+Generic linear envelope\&. This controller source can be
+used to map custom envelopes to chain operator parameters\&. Number of
+envelope points is specified in \&'point_count\&'\&. Each envelope point
+consists of a position and a matching value\&. Number of pairs must
+match \&'point_count\&' (i\&.e\&. \&'N==point_count\&')\&. The \&'posX\&' parameters are given
+as seconds (from start of the stream)\&. The envelope points are specified as
+float values in range \&'[0,1]\&'\&. Before envelope values are mapped to operator
+parameters, they are mapped to the target range of \&'[low-value,high-value]\&'\&. E\&.g\&.
+a value of \&'0\&' will set operator parameter to \&'low-value\&' and a value of
+\&'1\&' will set it to \&'high-value\&'\&. For the initial segment \&'[0,pos1]\&', the envelope
+will output value of \&'value1\&' (e\&.g\&. \&'low-value\&')\&.
+.IP
+.IP "-km:fx-param,start-value,end-value,controller,channel"
+MIDI continuous controller (control change messages)\&.
+Messages on the MIDI-channel \&'channel\&' that are coming from
+controller number \&'controller\&' are used as the controller
+source\&. As recommended by the MIDI-specification, channel
+numbering goes from 1 to 16\&. Possible controller numbers
+are values from 0 to 127\&. The MIDI-device where bytes
+are read from can be specified using \fI-Md\fP option\&.
+Otherwise the default MIDI-device is used as specified in
+\fI~ecasound/ecasoundrc\fP (see \fIecasoundrc man page\fP)\&.
+Defaults to \fI/dev/midi\fP\&.
+.IP
+.IP "-ksv:fx-param,start-value,end-value,stamp-id,rms-toggle"
+Volume analyze controller\&. Analyzes the audio stored in
+stamp \&'stamp-id\&' (see \&'-eS:id\&' docs), and creates
+control data based on the results\&. If \&'rms-toggle\&' is non-zero,
+RMS-volume is used to calculate the control value\&. Otherwise
+average peak-amplitude is used\&.
+.IP
+.IP "-kx"
+This is a special switch that can be used when you need
+to control controller parameters with another controller\&.
+When you specify \fI-kx\fP, the last specified controller
+will be set as the control target\&. Then you just add
+another controller as usual\&.
+
+.PP
+\fBINTERACTIVE MODE\fP
+.PP
+See \fIecasound-iam(1)\fP man page\&.
+.PP
+.SH "ENVIRONMENT"
+
+.IP
+.IP "ECASOUND"
+If defined, some utility programs and scripts will use
+the \fIECASOUND\fP environment as the default path to
+ecasound executable\&.
+.PP
+.IP "ECASOUND_LOGFILE"
+Output all debugging messages to a separate log file\&. If defined,
+\fIECASOUND_LOGFILE\fP defines the logfile path\&. This is a good tool for
+debugging ECI/EIAM scripts and applications\&.
+.PP
+.IP "ECASOUND_LOGLEVEL"
+Select which messages are written to the logfile defined by
+\fIECASOUND_LOGFILE\fP\&. The syntax for \fI-d:level\fP is used\&. If not
+defined, all messages are written\&. Defaults to -d:319 (everything else
+but \&'functions (64)\&' and \&'continuous (128)\&' class messages)\&.
+.PP
+.IP "COLUMNS"
+Ecasound honors the \fICOLUMNS\fP environment variable when
+formatting printed trace messages\&. If \fICOLUMNS\fP is not set,
+a default of 74 is used\&.
+.PP
+.IP "TMPDIR"
+Some functions of Ecasound (e\&.g\&. "cs-edit" interactive command) require
+creation of temporary files\&. By default, these files are created under
+"/tmp", but this can be overridden by setting the \fITMPDIR\fP environment
+variable\&.
+
+.IP
+.SH "RETURN VALUES"
+
+.IP
+In interactive mode, ecasound always returns zero\&.
+.IP
+In non-interactive (batch) mode, a non-zero value is returned
+for the following errors:
+.IP
+.IP "1"
+Unable to create a valid chainsetup with the given parameters\&. Can be
+caused by invalid option syntax, etc\&.
+.PP
+.IP "2"
+Unable to start processing\&. This can be caused by insufficient file
+permissions, inability to access some system resources, etc\&.
+.PP
+.IP "3"
+Error during processing\&. Possible causes: output object has run
+out of free disk space, etc\&.
+.PP
+.IP "4"
+Error during process termination and/or cleanup\&. See section
+on \&'SIGNALS\&' for further details\&.
+.PP
+.SH "SIGNALS"
+
+.PP
+When ecasound receives any of the POSIX signals SIGINT (ctrl-c),
+SIGHUP, SIGTERM or SIGQUIT, normal cleanup and exit procedure is
+initiated\&. Here normal exit means that e\&.g\&. file headers are
+updated before closing, helper processes are terminated in normal
+way, and so forth\&.
+.PP
+If, while doing the cleanup described above, ecasound receives
+another signal (of the same set of POSIX signals), ecasound
+will skip the normal cleanup procedure, and terminate
+immediately\&. Any remaining cleanup tasks will be skipped\&.
+Depending on the runtime state and configuration, this brute
+force exit may have some side-effects\&. Ecasound will return
+exit code of \&'4\&' if normal cleanup was skipped\&.
+.PP
+Special case handling is applied to the SIGINT (ctrl-c) signal\&.
+If a SIGINT signal is received during the cleanup procedure,
+ecasound will ignore the signal once, and emit a notice to \&'stderr\&'
+that cleanup is already in progress\&. Any subsequent SIGINT signals
+will no longer get special handling, and instead process will
+terminate immediately (and possibly without proper cleanup)\&.
+.PP
+.SH "FILES"
+
+.PP
+\fI~/\&.ecasound\fP
+The default directory for ecasound user resource files\&.
+See the ecasoundrc (5) man page man page\&.
+.PP
+\fI*\&.ecs\fP
+Ecasound Chainsetup files\&. Syntax is more or less the
+same as with command-line arguments\&.
+.PP
+\fI*\&.ecp\fP
+Ecasound Chain Preset files\&. Used for storing effect
+and chain operator presets\&. See ecasound user\&'s guide for
+more better documentation\&.
+.PP
+\fI*\&.ews\fP
+Ecasound Wave Stats\&. These files are used to cache
+waveform data\&.
+.PP
+.SH "EXAMPLES"
+
+.PP
+Examples of how to perform common tasks with ecasound can
+be found at
+http://eca\&.cx/ecasound/Documentation/examples\&.html\&.
+.PP
+.SH "SEE ALSO"
+
+.PP
+ecatools (1) man page,
+ecasound-iam (1) man page
+ecasoundrc (5) man page,
+"HTML docs in the Documentation subdirectory"
+.PP
+.SH "BUGS"
+
+.PP
+See file BUGS\&. If ecasound behaves weirdly, try to
+increase the debug level to see what\&'s going on\&.
+.PP
+.SH "AUTHOR"
+
+.PP
+Kai Vehmanen, >
diff --git a/ecasound-2.7.2/Documentation/ecasound_manpage.html b/ecasound-2.7.2/Documentation/ecasound_manpage.html
new file mode 100644
index 000000000..e9251a0e0
--- /dev/null
+++ b/ecasound-2.7.2/Documentation/ecasound_manpage.html
@@ -0,0 +1,1187 @@
+
+ecasound
+
+
+
+
+
ecasound
+
18.08.2010
+
+
+
+
+
+
+
+
+
+ecasound(1)
+
+
+
+
+
ecasound(1)
+
Multimedia software
+
18.08.2010
+
+
+
+
NAME
ecasound - sample editor, multitrack recorder, fx-processor, etc.
+
+Ecasound is a software package designed for multitrack audio
+processing. It can be used for simple tasks like audio playback,
+recording and format conversions, as well as for multitrack effect
+processing, mixing, recording and signal recycling. Ecasound supports
+a wide range of audio inputs, outputs and effect algorithms.
+Effects and audio objects can be combined in various ways, and their
+parameters can be controlled by operator objects like oscillators
+and MIDI-CCs. A versatile console mode user-interface is included
+in the package.
+
+
OPTIONS
+
+Note! All options except those mentioned in ecasound options and
+ Global options, can be used in ecasound chainsetup files (.ecs).
+
+
+
+
+ECASOUND OPTIONS
+
+These options are parsed and handled by the ecasound frontend binary and
+are not passed to backend library. This means that these options may
+not work in other applications that use ecasound libraries for their
+functionality.
+
+
+
-c
+Starts ecasound in interactive mode. In interactive mode you can
+control ecasound with simple commands ("start", "stop", "pause",
+etc.). See ecasound-iam .
+
+
-C
+Disables ecasound's interactive mode (see '-c' and '-K').
+
+
+
-D
+Print all debug information to stderr (unbuffered, plain output
+without ncurses).
+
+
-s[:]chainsetup-file
+Create a new chainsetup from file 'chainsetup-file' and add
+it to the current session. Chainsetup files commonly have
+a filename ending to the '.ecs' extension. A chainsetup can
+contain inputs, outputs, chains, effects, controllers -- i.e.
+objects one one specific configuration of audio processing
+elements. A session, on the other hand, is a collection of
+one or more chainsetups. Only one of the chainsetups may be
+connected (i.e. it can be run/processed). But it is possible
+to have another chainsetup select (i.e. can be configured)
+while other one is current connteced (i.e. running).
+
+
-E "cmd1 [[args] ; cmd2 args ; ... ; cmdN]"
+Execute a set of Ecasound Interactive mode (EIAM) commands
+at launch. These commands are executed immediately after
+ecasound is started. If the command line contains sufficient
+options to create a valid chainsetup that will be executed,
+the launch commands are executed after the other command
+line options are parsed, but before the processing engine
+is started. Note that this command is a feature of
+the ecasound frontend binary and not supported by
+the library backend. This means that other clients may
+not support the '-E' option, and also that the launch
+commands are not saved as part of chainsetup or session
+state.
+
+
--server
+Enables the so called NetECI mode, in which ecasound can
+be controlled remotely over a socket connection. When
+activated, clients can connect to the running ecasound
+session, and use interactive mode commands to control and
+observe ecasound processing.
+
+One example client using this feature is ecamonitor(1). This
+utility is included in the Ecasound distribution package (requires
+a working Python environment).
+
+Warning! If the machine running ecasound, is connected to
+a public network, be sure to block ecasound's port in your
+firewall! As there is no access control implemented for incoming
+connections, anyone can otherwise connect, control and observe your
+ecasound sessions.
+This option replaces '--daemon' (deprecated in 2.6.0).
+
+
--server-tcp-port=NNN
+Set the TCP port used by the daemon mode. By default
+ecasound will use port number 2868.
+This option replaces '--daemon-port' (deprecated in 2.6.0).
+
+
--no-server
+Disable ecasound's daemon mode. This is the default.
+This option replaces '--nodaemon' (deprecated in 2.6.0).
+
+
--osc-udp-port=NNN
+Enables support for Open Source Control (OSC). Ecasound will listen
+for incoming OSC messages on UDP port NNN. Ecasound's OSC interface
+is documented at:
+<http://ecasound.git.sourceforge.net/git/gitweb.cgi?p=ecasound/ecasound;a=blob;f=Documentation/ecasound_osc_interface.txt;hb=HEAD>
+
+Note that OSC support is still experimental and the interface
+might change in later versions of Ecasound.
+
+This option was added to ecasound 2.7.0.
+
+
--keep-running,-K
+Do not exit when processing is finished/stopped. Only affects
+non-interactive operating mode (see -c/-C).
+Option added to ecasound 2.4.2.
+
+
--help,-h
+Show this help.
+
+
--version
+Print version info.
+
+
+
+
+GLOBAL OPTIONS
+
+
+
+
-d, -dd, -ddd
+Increase the amount of printed debug messages. -d adds
+some verbosity, while -ddd results in very detailed
+output.
+
+
-d:debug_level
+Set the debug level mask to 'debug_level'. This a bitmasked value with
+the following classes: errors (1), info (2), subsystems (4), module_names (8),
+user_objects (16), system_objects 32, functions (64), continuous (128) and
+eiam_return_values (256). Default is 271 (1+2+4+8+256). See sourcode
+documentation for the ECA_LOGGER class for more detailed information.
+
+
-R[:]path-to-file
+Use ecasound resource file (see ecasoundrc man page) 'path-to-file' as
+the only source of setting resource value. Specifying this option
+will disable the normal policy of querying both global and user (if exists)
+resource files.
+
+
-q
+Quiet mode, no output. Same as -d:0.
+
+
+
+
+GENERAL CHAINSETUP OPTIONS
+
+
+
-a:chainname1, chainname2, ...
+Selects active signal chains. All inputs and outputs following
+this '-a' option are assigned to selected chains (until a new -a
+option is specified). When adding effects, controllers and other
+chain operators, only one chain can be selected at a time. If no -a option
+has been given, chain 'default' is used instead when adding objects.
+Chain name 'all' is also reserved. It will cause all existing chains
+to be selected. By giving multiple -a options, you can control to which
+chains effects, inputs and outputs are assigned to. Look at the EXAMPLES
+section for more detailed info about the usage of this option.
+
+
-n:name
+Sets the name of chainsetup to 'name'. If not specified, defaults
+either to "command-line-setup" or to the file name from which
+chainsetup was loaded. Whitespaces are not allowed.
+
+
-x
+Truncate outputs. All output object are opened in overwrite mode.
+Any existing files will be truncated.
+
+
-X
+Open outputs for updating. Ecasound opens all outputs - if target
+format allows it - in readwrite mode.
+
+
-z:feature
+Enables 'feature'. Most features can be disabled using notation
+-z:nofeature. '-z:db,dbsize' enables double-buffering for audio
+objects that support it (dbsize=0 for default, otherwise buffer
+size in sample frames). '-z:nodb' disables double-buffering.
+'-z:intbuf' and '-z:nointbuf' control whether extra internal buffering
+is allowed for realtime devices. Disabling this can reduce
+latency times in some situations. With '-z:xruns', processing will be
+halted if an under/overrun occurs. '-z:multitrack' and
+'z:nomultitrack' can be used to force ecasound to enable or disable
+multitrack-mode. In rare cases you may want to explicitly specify
+the recording offset with '-z:multitrack,offset-in-samples'. The
+offset is the amount of samples skipped when recording from
+real-time inputs. '-z:psr' enables the precise-sample-rates mode
+for OSS-devices. '-z:mixmode,sum' enables mixing mode where channels
+are mixed by summing all channels. The default is '-z:mixmode,avg',
+in which channels are mixed by averaging. Mixmode selection was first
+added to ecasound 2.4.0.
+See ecasoundrc man page.
+
+
+
+
+CHAINSETUP BUFFERING AND PERFORMANCE OPTIONS
+
+
+
-B:buffering_mode
+Selects the default buffering mode. Mode is one of: 'auto' (default),
+'nonrt', 'rt', 'rtlowlatency'.
+
+
-b:buffer size
+Sets the size of buffer in samples (must be an exponent of 2). This
+is quite an important option. For real-time processing, you should
+set this as low as possible to reduce the processing delay. Some
+machines can handle buffer values as low as 64 and 128. In some
+circumstances (for instance when using oscillator envelopes) small
+buffer sizes will make envelopes act more smoothly. When not processing
+in real-time (all inputs and outputs are normal files), values between
+512 - 4096 often give better results. Default is 1024.
+
+
-r:sched_priority
+Use realtime scheduling policy (SCHED_FIFO). This is impossible if
+ecasound doesn't have root priviledges. Beware! This gives better
+performance, but can cause total lock-ups if something goes wrong.
+The 'sched_priority' can be omitted (0=omitted). If given,
+this is the static priority to the highest priority ecasound thread.
+Other ecasound threads run with priority 'sched_priority-1...n'.
+Value '-1' can be used to disable raised-priority mode.
+
+
-z:feature
+Relevant features are -z:db,xxx (-z:nodb) and -z:intbuf (-z:nointbuf).
+See section General chainsetup options for details.
+
+
+
+
+PROCESSING CONTROL
+
+
-t:seconds
+Sets processing time in seconds (doesn't have to be an integer value).
+If processing time isn't set, engine stops when all inputs are
+finished. This option is equivalent to the 'cs-set-length' EIAM
+command. A special-case value of '-1' will set the chainsetup length
+according to the longest input object.
+
+
-tl
+Enables looping. When processing is finished, engine will start
+again from beginning. This option is equivalent to the 'cs-loop'
+EIAM command.
+
+Sets options for audio object manager type 'mgrtype'.
+For available options, see "OBJECT TYPE SPECIFIC NOTES" below.
+
+
-f:sample_format,channel,sample-rate,interleaving
+Sets the audio stream parameters for subsequent audio objects.
+To set different parameters for different audio objects, multiple
+'-f' options have to be specified (note the ordering, the '-f'
+options should precede the audio objects for them to have any
+effect). See documentation for '-i' and '-o' options.
+
+When an audio object is opened (e.g. a file or sound device
+is opened, or connection is made to a sound server), the audio
+stream parameters are passed to the object. It should be noted that
+not all audio objects allow to set any or all of the parameters.
+For instance when opening existing audio files, many file formats
+have a header describing the file audio parameters. In
+these cases the audio file header overrides the parameters
+passed with '-f' option. Similarly when creating JACK inputs and
+outputs, the JACK server mandates the sampling rate and sample
+format.
+
+If no '-f' option is specified, or some of the argument fields
+are left empty (e.g. '-f:,2,44100'), ecasound will use default values. These
+default values are defined in ecasoundrc configuration file. See
+ecasoundrc(5) manual page.
+
+Note that ecasound opens out files by default in update mode.
+Unless option '-x' (overwrite outputs) option is given,
+audio parameters of an existing audio file take preference over
+the params set with '-f'.
+
+Sample format is given as a formatted string. The first letter is
+either "u", "s" and "f" (unsigned, signed, floating point). The
+following number specifies sample size in bits. If sample is
+little endian, "_le" is added to the end. Similarly if big endian,
+"_be" is added. If endianess is not specified, host byte-order is used.
+Currently supported formats are "u8" (same as "8"), "s16_le" (same
+as "16"), "s16_be", "s24_le", "s24_be", "s32_le", "s32_be", "f32_le"
+and "f32_be". An empty string "" picks the system default sample
+format.
+
+The 4th parameter defines the channel layout. The available
+options are 'i' (interleaved' and 'n' (noninterleaved). With
+the noninterleaved setting, ecasound will process samples
+one channel at a time, and the blocksize is set with '-b'.
+The default setting is 'i'.
+
+
-y:seconds
+Sets starting position for last specified input/output. If
+you need more flexible control over audio objects, you should
+use the .ewf format.
+
+
-i[:]input-file-or-device[,params]
+Specifies a new input source that is connected to all selected chains (chains
+are selected with '-a:...'). Connecting multiple inputs to the same chain is
+not possible, but one input can be connected to multiple chains. Input can be
+a a file, device or some other audio object (see below). If the input is
+a file, its type is determined using the file name extension. If the object
+name contains any commas, the name must be enclosed in backquotes to avoid
+confusing the parser. Currently supported formats are RIFF WAVE files (.wav),
+audio-cd tracks (.cdr), ecasound EWF files (.ewf), RAW audio data (.raw) and
+MPEG audio files (.mp2,.mp3). More audio formats are supported via libaudiofile
+and libsndfile libraries (see documentation below). MikMod is also supported (.xm,
+.mod, .s3m, .it, etc). MIDI files (.mid) are supported using Timidity++.
+Similarly Ogg Vorbis (.ogg) can be read, and written if ogg123 and vorbize tools
+are installed; FLAC files (.flac) with flac command-line tools or using
+libsndfile; and AAC files (.aac/.m4a/.mp4) with faad2/faac tools. Supported
+realtime devices are OSS audio devices (/dev/dsp*), ALSA audio and loopback
+devices and JACK audio subsystem. If no inputs are specified, the first
+non-option (doesn't start with '-') command line argument is considered
+to be an input.
+
+
-o[:]output-file-or-device[,params]
+Works in the same way as the -i option. If no outputs are specified,
+the default output device is used (see ~/.ecasoundrc). If the object
+name contains any commas, the name must be enclosed in backquotes to
+avoid confusing the parser. Note, many object types do not support
+output (e.g. MikMod, MIDI and many others).
+
+OBJECT TYPE SPECIFIC NOTES
+
ALSA devices - 'alsa'
+When using ALSA drivers, instead of a device filename, you need to
+use the following option syntax: -i[:]alsa,pcm_device_name.
+
+
ALSA direct-hw and plugin access - 'alsahw', 'alsaplugin'
+It's also possible to use a specific card and device combination
+using the following notation: -i[:]alsahw,card_number,device_number,subdevice_number.
+Another option is the ALSA PCM plugin layer. It works just like
+the normal ALSA pcm-devices, but with automatic channel count and
+sample format conversions. Option syntax is
+-i[:]alsaplugin,card_number,device_number,subdevice_number.
+
+
aRts input/output - 'arts'
+If enabled at compile-time, ecasound supports audio input and
+output using aRts audio server. Option syntax is -i:arts,
+-o:arts.
+
+Ecasound provides a set of special audio object types that
+can be used for temporal sequencing of audio files - i.e. looping,
+playing only a select portion of a file, playing file at a spefific
+time, and other such operation.
+
+Looping is possible with -i:audioloop,file.ext,params. The
+file name (or any object type understood by Ecasound) given
+as the second parameter is played back continuously looping
+back to the beginning when the end of file is reached. Any additional
+parameters given are passed unaltered to the file object.
+Parameters 3...N are passed as is to the child object (i.e.
+"-i audioloop,foo.wav,bar1,bar2" will pass parameters
+"bar1,bar2" to the "foo.wav" object.
+
+To select and use only a specific segment of an audio object,
+the -i:select,start-time,duration,file.ext,params can
+be used. This will play "duration" of "file.ext", starting at
+"start-time". The time values should be given as seconds (e.g.
+"2.25", or as samples (e.g. "25000sa"). Parameters 4...N are
+passed as is to the child object.
+
+To play an audio object at a given moment in time,
+the -i:playat,play-at-time,file.ext,params can be
+used. This will play "file.ext" after position reaches
+"play-at-time". The time values should be given as seconds (e.g.
+"2.25", or as samples (e.g. "25000sa"). Parameters 2...N are
+passed as is to the child object.
+
+
Ecasound Wave Files (EWF) - '*.ewf'
+A special file format that allows to slice and loop full (or segments)
+of audio files. This format is specific to Ecasound.
+See ecasound user's guide for more
+detailed information.
+
+See also audio object types 'audioloop', 'select' and 'playat'.
+
+
JACK input/outputs - Overview
+JACK is a low-latency audio server that can be used to connect
+multiple independent audio application to each other.
+It is different from other audio server efforts in that
+it has been designed from the ground up to be suitable for low-latency
+professional audio work.
+
+
JACK input/outputs - 'jack'
+Ecasound provides multiple ways to communicate with JACK
+servers. To create a JACK input or output object, one should use -i jack and
+-o jack. These create JACK client ports "ecasound:in_N" and
+"ecasound:out_n" respectively ('N' is replaced by the channel number).
+Ecasound automatically creates one JACK port for each channel (number
+of channels is set with -f:bits,channels,rate option).
+
+It is important to note that by default JACK ports are not connected
+anywhere (e.g. to soundcard input/outputs, or to other apps). One thus
+has to connect the ports with an external program (e.g. "QJackCtl"
+or "jack_connect").
+
+
JACK input/outputs - 'jack,clientname,portprefix'
+"jack,clientname" For simple use scanerios, ecasound provides a way to autoconnect
+the ecasound ports. This can be done with by giving the peer client
+name as the second parameter to the "jack" object, e.g. -o jack,clientname.
+As an example, -o jack,system will create an output that is
+automatically connected to outputs of the default system soundcard.
+The client parameter can be omitted, in which case no automatic
+connections are made.
+
+If one needs to change the port prefix (e.g. "in" in client name
+"ecasound:in_N"), the prefix can be specified as the third parameter to
+"jack" object, e.g. -o jack,,fxout. Also the third parameter can be
+omitted, in which case the default prefixes "in" and "out" are used.
+
+
JACK input/outputs - 'jack_multi'
+A variant of 'jack' object type is 'jack_multi'. The full object syntax
+is jack_multi,destport1,...,destportN. When a 'jack_multi' object
+is connected to a JACK server, first channel of the object is connected
+to JACK port 'destport1', second to 'destport2' and so forth. For
+instance "-f:32,2,44100 -o jack_multi,foo:in,bar:in"
+creates a stereo ecasound output object, with its left and right
+channels routed to two difference JACK clients. The destination ports
+must be active when the ecasound engine is launched, or otherwise
+the connections cannot be established. If destination ports are not
+specified for all channels, or zero length strings are given, those
+ports are not connected at launch by ecasound.
+
+
JACK input/outputs - 'jack_alsa', 'jack_auto', 'jack_generic' (**deprecated since 2.6.0**)
+Ecasound 2.5 and older supported "jack_alsa", "jack_auto" and "jack_generic" object
+types, but these are now replaced by a more generic "jack" interface, and thus are
+now deprecated (they work but are no longer documented).
+
+
JACK input/outputs - client options
+Additionally global JACK options can be set using
+-G:jack,client_name,operation_mode option. 'client_name'
+is the name used when registering ecasound to the JACK system.
+If 'operation_mode' is "notransport", ecasound will ignore
+any transport state changes in the JACK-system; in mode
+"send" it will send all start, stop and position-change events to
+other JACK clients; in mode "recv" ecasound will follow JACK start,
+stop and position-change events; and mode "sendrecv" (the default)
+which is a combination of the two previous modes.
+
+More details about ecasound's JACK support can be found
+from Ecasound User's Guide.
+
+
Libaudiofile - 'audiofile'
+If libaudiofile support was enabled at compile-time, this
+option allows you to force Ecasound to use libaudiofile
+for reading/writing a certain audio file. Option syntax
+is -i:audiofile,foobar.ext (same for -o).
+
+
Libsndfile - 'sndfile'
+If libsndfile support was enabled at compile-time, this
+option allows you to force Ecasound to use libsndfile
+for reading/writing a certain audio file. Option syntax
+is -i:sndfile,foobar.ext[,.format-ext] (same for -o).
+The optional third parameter "format" can be used to
+override the audio format (for example you can create an
+AIFF file with filename "foo.wav").
+
+
Loop device - 'loop'
+Loop devices make it possible to route (loop back) data between
+chains. Option syntax is -[io][:]loop,tag. If you add
+a loop output with tag '1', all data written to this output is routed
+to any loop input with tag '1'. The tag can be either numerical
+(e.g. '-i:loop,1') or a string (e.g. "-i:loop,vocals"). Like
+with other input/output objects, you can attach the same loop
+device to multiple chains and this way split/mix the signal.
+
+Note: this 'loop' device is different from 'audioloop' (latter
+added to ecasound v2.5.0).
+
+
Mikmod - 'mikmod'
+If mikmod support was enabled at compile-time, this
+option allows you to force Ecasound to use Mikmod
+for reading/writing a certain module file. Option syntax
+is -i:mikmod,foobar.ext.
+
+
Null inputs/outputs - 'null'
+If you specify "null" or "/dev/null" as the input or output,
+a null audio device is created. This is useful if you just want
+to analyze sample data without writing it to a file. There's
+also a realtime variant, "rtnull", which behaves just like "null"
+objects, except all i/o is done at realtime speed.
+
+
Resample - 'resample'
+Object type 'resample' can be used to resample audio
+object's audio data to match the sampling rate used
+in the active chainsetup. For example,
+ecasound -f:16,2,44100 -i resample,22050,foo.wav -o /dev/dsp,
+will resample file from 22.05kHz to 44.1kHz and write the
+result to the soundcard device. Child sampling rate can be
+replaced with keyword 'auto'. In this case ecasound will try
+to query the child object for its sampling rate. This works with
+files formats such as .wav which store meta information about
+the audio file format. To use 'auto' in the previous example,
+ecasound -f:16,2,44100 -i resample,auto,foo.wav -o /dev/dsp.
+
+Parameters 4...N are passed as is to the child object (i.e.
+"-i resample,22050,foo.wav,bar1,bar2" will pass parameters
+"bar1,bar2" to the "foo.wav" object.
+
+If ecasound was compiled with support for libsamplerate, you can
+use 'resample-hq' to use the highest quality resampling algorithm
+available. To force ecasound to use the internal resampler,
+'resampler-lq' (low-quality) can be used.
+
+
Reverse - 'reverse'
+Object type 'reverse' can be used to reverse audio
+data coming from an audio object. As an example,
+ecasound -i reverse,foo.wav -o /dev/dsp will play
+'foo.wav' backwards. Reversing output objects is not
+supported. Note! Trying to reverse audio object types with really
+slow seek operation (like mp3), works extremely badly.
+Try converting to an uncompressed format (wav or raw)
+first, and then do reversation.
+
+Parameters 3...N are passed as is to the child object (i.e.
+"-i reverse,foo.wav,bar1,bar2" will pass parameters
+"bar1,bar2" to the "foo.wav" object.
+
+
System standard streams and named pipes - 'stdin', 'stdout'
+You can use standard streams (stdin and stdout) by giving stdin
+or stdout as the file name. Audio data is assumed to be in
+raw/headerless (.raw) format. If you want to use named pipes,
+create them with the proper file name extension before use.
+
+
Tone generator - 'tone'
+To generate a test tone, input -i:tone,type,freq,duration-secs
+can be used. Parameter 'type' specifies the tone type: currently
+only 'sine' is supported. The 'freq' parameter sets the frequency
+of the generated tone and 'duration-secs' the length of the generated
+stream. Specifying zero, or a negative value, as the duration will
+produce an infinite stream. This feature was first added to Ecasound
+2.4.7.
+
+
Typeselect - 'typeselect'
+The special 'typeselect' object type can be used to override
+how ecasound maps filename extensions and object types. For
+instance ecasound -i typeselect,.mp3,an_mp3_file.wav -o /dev/dsp.
+would play the file 'an_mp3_file.wav' as an mp3-file and not
+as an wav-file as would happen without typeselect.
+
+Parameters 4...N are passed as is to the child object (i.e.
+"-i typeselect,.au,foo.wav,bar1,bar2" will pass parameters
+"bar1,bar2" to the "foo.wav" object.
+
+
+
+
+MIDI SETUP
+
+
+
MIDI I/O devices - general
+If no MIDI-device is specified, the default MIDI-device is
+used (see ecasoundrc(5)).
+
+
-Md:rawmidi,device_name
+Add a rawmidi MIDI I/O device to the setup. 'device_name' can be anything
+that can be accessed using the normal UNIX file operations and
+produces raw MIDI bytes. Valid devices are for example OSS rawmidi
+devices (/dev/midi00), ALSA rawmidi devices (/dev/snd/midiC2D0), named
+pipes (see mkfifo man page), and normal files.
+
+
-Md:alsaseq,sequencer-port
+Adds a ALSA MIDI sequencer port to the setup. 'sequencer-port' identifies
+a port to connect to. It can be numerical (e.g. 128:1), or a client
+name (e.g. "KMidimon").
+
+
-Mms:device_id
+Sends MMC start ("Deferred Play") and stop ("Stop") with
+device ID 'device_id'.
+
+While Ecasound does not directly support syncing transport state
+to incoming MMC messages, this can be achieved by connecting Ecasound
+to JACK input/outputs, and using a tool such as JackMMC and JackCtlMMC (
+see <http://jackctlmmc.sourceforge.net/>) to convert MMC messages
+into JACK transport change events.
+
+
-Mss
+Sends MIDI-sync (i.e. "MIDI Start" and "MIDI Stop" system realtime
+messages) .to the selected MIDI-device. Notice that as Ecasound will
+not send MIDI-clock, but only the start and stop messages.
+
+
+
+
+EFFECT SETUP
+
+PRESETS
+
+Ecasound has a powerful effect preset system that allows you create
+new effects by combining basic effects and controllers. See
+ecasound user's guide for more
+detailed information.
+
+
+
+
-pf:preset_file.eep
+Uses the first preset found from file 'preset_file.eep' as
+a chain operator.
+
+
-pn:preset_name
+Find preset 'preset_name' from global preset database and use
+it as a chain operator. See ecasoundrc man page for info about the
+preset database.
+
+
+
+SIGNAL ANALYSIS
+
+
+
+
-ev
+Analyzes sample data to find out how much the signal can
+be amplified without clipping. The resulting percent value
+can be used as a parameter to '-ea' (amplify). A statistical
+summary, containing info about the stereo-image and
+distribution of sample values, is printed out at the end
+of processing.
+
+
-evp
+Peak amplitude watcher. Maintains peak information for
+each processed channels. Peak information is resetted
+on every read.
+
+
-ezf
+Finds the optimal value for DC-adjusting. You can use the result
+as a parameter to -ezx effect.
+
+
+
+GENERAL SIGNAL PROCESSING ALGORITHMS
+
+
-eS:stamp-id
+Audio stamp. Takes a snapshot of passing audio data and stores
+it using id 'stamp-id' (integer number). This data can later be
+used by controllers and other operators.
+
+
-ea:amplify%
+Adjusts the signal amplitude to 'amplify%' percent (linear scale, i.e.
+individual samples are multiplied by 'amplify%/100'). See also
+'-eadb'.
+
+
-eac:amplify%,channel
+Amplifies signal of channel 'channel' by amplify-% percent (linear
+scale, i.e. individual samples are multiplied by 'amplify%/100').
+'channel' ranges from 1...n where n is the total number of channels.
+See also '-eadb'.
+
+
-eadb:gain-dB[,channel]
+Adjusts signal level by 'gain-dB', with a gain of 0dB having no effect
+to the signal, negative gains attenuating the signal and positive
+gain values amplifying it. The 'channel' parameter (1...n) is optional.
+If 'channel' parameter is specified, and its value is nonzero, gain is
+only applied to the given channel (1...n).
+
+
-eaw:amplify%,max-clipped-samples
+Amplifies signal by amplify-% percent (linear scale, i.e. individual
+samples are multiplied by 'amplify%/100'). If number of consecutive
+clipped samples (resulting sample value is outside the nominal
+[-1,1] range), a warning will be issued.
+
+
-eal:limit-%
+Limiter effect. Limits audio level to 'limit-%' (linear scale) with
+values equal or greater than 100% resulting in no change to
+the signal.
+
+
-ec:rate,threshold-%
+Compressor (a simple one). 'rate' is the compression rate in
+decibels ('rate' dB change in input signal causes 1dB change
+in output). 'threshold' varies between 0.0 (silence) and
+1.0 (max amplitude).
+
+A more advanced compressor (original algorithm by John S. Dyson).
+If you give a value of 0 to any parameter, the default is used.
+'peak-level-%' essentially specifies how hard the peak limiter
+is pushed. The default of 69% is good. 'release_time' is given
+in seconds. This compressor is very sophisticated, and actually
+the release time is complex. This is one of the dominant release
+time controls, but the actual release time is dependent on a lot of
+factors regarding the dynamics of the audio in. 'fastrate' is the
+compression ratio for the fast compressor. This is not really
+the compression ratio. Value of 1.0 is infinity to one, while the
+default 0.50 is 2:1. Another really good value is special cased in
+the code: 0.25 is somewhat less than 2:1, and sounds super smooth.
+'rate' is the compression ratio for the entire compressor chain.
+The default is 1.0, and holds the volume very constant without many nasty
+side effects. However the dynamics in music are severely restricted,
+and a value of 0.5 might keep the music more intact.
+
+Noise gate. Supports multichannel processing (each channel
+processed separately). When signal amplitude falls below
+'threshold_level_%' percent (100% means maximum amplitude), gate
+is activated. If the signal stays below the threshold for
+'th_time' ms, it's faded out during the attack phase of
+'attack' ms. If the signal raises above the 'threshold_level'
+and stays there over 'hold' ms the gate is released during
+'release' ms.
+
+
-ei:pitch-shift-%
+Pitch shifter. Modifies audio pitch by altering its length.
+
+
-epp:right-%
+Stereo panner. Changes the relative balance between the first
+two channels. When 'right-%' is 0, only signal on the left
+(1st) channel is passed through. Similarly if it is '100',
+only right (2nd) channel is let through.
+
+
-ezx:channel-count,delta-ch1,...,delta-chN
+Adjusts the signal DC by 'delta-chX', where X is the
+channel number. Use -ezf to find the optimal delta
+values.
+
+
+
+ENVELOPE MODULATION
+
+
+
-eemb:bpm,on-time-%
+Pulse gate (pulse frequency given as beats-per-minute).
+
+
-eemp:freq-Hz,on-time-%
+Pulse gate.
+
+
-eemt:bpm,depth-%
+Tremolo effect (tremolo speed given as beats-per-minute).
+
+
+
+FILTER EFFECTS
+
+
-ef1:center_freq, width
+Resonant bandpass filter. 'center_freq' is the center frequency. Width
+is specified in Hz.
+
+
-ef3:cutoff_freq, reso, gain
+Resonant lowpass filter. 'cutoffr_freq' is the filter cutoff
+frequency. 'reso' means resonance. Usually the best values for
+resonance are between 1.0 and 2.0, but you can use even bigger values.
+'gain' is the overall gain-factor. It's a simple multiplier (1.0
+is the normal level). With high resonance values it often is useful
+to reduce the gain value.
+
+
-ef4:cutoff, resonance
+Resonant lowpass filter (3rd-order, 36dB, original algorithm by Stefan
+M. Fendt). Simulates an analog active RC-lowpass design. Cutoff is a
+value between [0,1], while resonance is between [0,infinity).
+
+
-efa:delay-samples,feedback-%
+Allpass filter. Passes all frequencies with no change in amplitude.
+However, at the same time it imposes a frequency-dependent
+phase-shift.
+
+
-efc:delay-samples,radius
+Comb filter. Allows the spikes of the comb to pass through.
+Value of 'radius' should be between [0, 1.0).
+
+
-efb:center-freq,width
+Bandpass filter. 'center_freq' is the center frequency. Width
+is specified in Hz.
+
+
-efh:cutoff-freq
+Highpass filter. Only frequencies above 'cutoff_freq' are passed
+through.
+
+
-efi:delay-samples,radius
+Inverse comb filter. Filters out the spikes of the comb. There
+are 'delay_in_samples-2' spikes. Value of 'radius' should be
+between [0, 1.0). The closer it is to the maximum value,
+the deeper the dips of the comb are.
+
+
-efl:cutoff-freq
+Lowpass filter. Only frequencies below 'cutoff_freq' are passed
+through.
+
+
-efr:center-freq,width
+Bandreject filter. 'center_freq' is the center frequency. Width
+is specified in Hz.
+
+
-efs:center-freq,width
+Resonator. 'center_freq' is the center frequency. Width is specified
+in Hz. Basicly just another resonating bandpass filter.
+
+
+
+CHANNEL MIXING / ROUTING
+
+
+
-chcopy:from-channel, to-channel
+Copy channel 'from_channel' to 'to_channel'. If 'to_channel'
+doesn't exist, it is created. Channel indexing starts from 1.
+Option added to ecasound 2.4.5.
+
+
-chmove:from-channel, to-channel
+Copy channel 'from_channel' to 'to_channel', and mutes the source
+channel 'from_channel'. Channel indexing starts from 1.
+Option added to ecasound 2.4.5.
+
+
-chorder:ch1,...,chN
+Reorder, omit and/r duplicate chain channels. The resulting
+audio stream has total of 'N' channels. Each parameter specifies
+the source channel to use for given output channel. As an
+example, '-chorder:2,1' would reverse the channels of
+a stereo stream ('out1,out2' = 'in2,in1'). Specifying the same
+source channel multiple times is allowed. For example, '-chorder:2,2'
+would route the second channel to both two output channels
+('out1,out2' = 'in2,in2'). If 'chX' is zero, the given channel 'X'
+will be muted in the output stream. Option added to ecasound 2.7.0.
+
+
-chmix:to-channel
+Mix all source channels to channel 'to_channel'. If 'to_channel'
+doesn't exist, it is created. Channel indexing starts from 1.
+Option added to ecasound 2.4.5.
+
+
-chmute:channel
+Mutes the channel 'channel'. Channel indexing starts from 1.
+Option added to ecasound 2.4.5.
+
+Delay effect. 'delay time' is the delay time in milliseconds.
+'surround-mode' is a integer with following meanings: 0 = normal,
+1 = surround, 2 = stereo-spread. 'number_of_delays' should be
+obvious. Beware that large number of delays and huge delay times
+need a lot of CPU power. 'mix-%' determines how much effected (wet)
+signal is mixed to the original. 'feedback-%' represents how much of
+the signal is recycled in each delay or, if you prefer, at what rate
+the repeated snippet of delayed audio fades. Note that sufficiently
+low feedback values may result in a number of audible repetitions
+lesser than what you have specified for 'number_of_delays', especially
+if you have set a low value for 'mix-%'. By default the value for this
+parameter is 100% (No signal loss.).
+
+
-ete:room_size,feedback-%,wet-%
+A more advanced reverb effect (original algorithm by Stefan M. Fendt).
+'room_size' is given in meters, 'feedback-%' is the feedback level
+given in percents and 'wet-%' is the amount of reverbed signal added
+to the original signal.
+
+
-etf:delay-time-msec
+Fake-stereo effect. The input signal is summed to mono. The
+original signal goes to the left channels while a delayed
+version (with delay of 'delay time' milliseconds) is goes to
+the right. With a delay time of 1-40 milliseconds this
+adds a stereo-feel to mono-signals.
+
+Multitap delay. 'delay time' is the delay time in milliseconds.
+'number_of_delays' should be obvious. 'mix-%' determines how much
+effected (wet) signal is mixed to the original.
+
+Reverb effect. 'delay time' is the delay time in milliseconds.
+If 'surround-mode' is 'surround', reverbed signal moves around the
+stereo image. 'feedback-%' determines how much effected (wet)
+signal is fed back to the reverb.
+
+
+
+LADSPA-PLUGINS
+
+
-el:plugin_unique_name,param-1,...,param-N
+Ecasound supports LADSPA-effect plugins (Linux Audio Developer's Simple
+Plugin API). Plugins are located in shared library (.so) files in
+/usr/local/share/ladspa (configured in ecasoundrc man page). One shared
+library file can contain multiple plugin objects, but every plugin
+has a unique plugin name. This name is used for selecting plugins.
+See LAD mailing list web site for
+more info about LADSPA. Other useful sites are LADSPA home
+page and LADSPA
+documentation.
+
+
-eli:plugin_unique_number,param-1,...,param-N
+Same as above expect plugin's unique id-number is used. It
+is guaranteed that these id-numbers are unique among all
+LADSPA plugins.
+
+
+
+GATE SETUP
+
+
+
+
-gc:start-time,len
+Time crop gate. Initially gate is closed. After 'start-time' seconds
+has elapsed, gate opens and remains open for 'len' seconds. When
+closed, passing audio buffers are trucated to zero length.
+
+Threshold gate. Initially gate is closed. It is opened when volume
+goes over 'othreshold' percent. After this, if volume drops below
+'cthold' percent, gate is closed and won't be opened again, unless the
+'reopen-count' is set to anything other than zero.
+If 'value_mode' is 'rms', average RMS volume is used. Otherwise
+peak average is used. When closed, passing audio buffers are trucated
+to zero length.
+If the 'reopen-count' is set to a positive number, then the gate will
+restart its operation that many times. So for example, a reopen count
+of 1 will cause up to 2 openings of the gate. A negative value for 'reopen-count'
+will result in the gate reopening indefinitely. The 'reopen-count' is invaluable
+in recording vinyl and tapes, where you can set things up and then recording
+starts whenever the needle is on the vinyl, and stops when it's off. As many sides
+as you like can be recorded in one session. You will need to experiment with
+buffer lengths and start/stop levels to get reliable settings for your equipment.
+
+
-gm:state
+Manual gate. If 'state' is 1, gate is open and all samples are
+passed through. If 'state' is zero, gate is closed an no samples are
+let through. This chain operator is useful when writing to an output
+needs to be stopped dynamically (without stopping the whole engine).
+
+
+
+
+CONTROL ENVELOPE SETUP
+
+
+Controllers can be used to dynamically change effect parameters
+during processing. All controllers are attached to the selected
+(=usually the last specified effect/controller) effect. The first
+three parameters are common for all controllers. 'fx_param'
+specifies the parameter to be controlled. Value '1' means
+the first parameter, '2' the second and so on. 'start_value'
+and 'end_value' set the value range. For examples, look at the
+the EXAMPLES section.
+
+
-kos:fx-param,start-value,end-value,freq,i-phase
+Sine oscillator with frequency of 'freq' Hz and initial phase
+of 'i_phase' times pi.
+
+Generic oscillator. Frequency 'freq' Hz, mode either '0' for
+static values or '1' for linear interpolation. 'point-pairs'
+specifies the number of 'posN' - 'valueN' pairs to include.
+'start-value' and 'end-value' are used as border values.
+All 'posN' and 'valueN' must be between 0.0 and 1.0. Also,
+for all 'posN' values 'pos1 < pos2 < ... < posN' must be true.
+
+Generic oscillator. 'genosc_number' is the number of the
+oscillator preset to be loaded. Mode is either '0' for
+static values or '1' for linear interpolation. The location for
+the preset file is taken from ./ecasoundrc (see ecasoundrc man page).
+
+
-kl:fx-param,start-value,end-value,time-seconds
+Linear envelope that starts from 'start_value' and linearly
+changes to 'end_value' during 'time_in_seconds'. Can
+be used for fadeins and fadeouts.
+
+Two-stage linear envelope, a more versatile tool for doing fade-ins
+and fade-outs. Stays at 'start_value' for '1st_stage_length' seconds
+and then linearly changes towards 'end_value' during
+'2nd_stage_length' seconds.
+
+Generic linear envelope. This controller source can be
+used to map custom envelopes to chain operator parameters. Number of
+envelope points is specified in 'point_count'. Each envelope point
+consists of a position and a matching value. Number of pairs must
+match 'point_count' (i.e. 'N==point_count'). The 'posX' parameters are given
+as seconds (from start of the stream). The envelope points are specified as
+float values in range '[0,1]'. Before envelope values are mapped to operator
+parameters, they are mapped to the target range of '[low-value,high-value]'. E.g.
+a value of '0' will set operator parameter to 'low-value' and a value of
+'1' will set it to 'high-value'. For the initial segment '[0,pos1]', the envelope
+will output value of 'value1' (e.g. 'low-value').
+
+MIDI continuous controller (control change messages).
+Messages on the MIDI-channel 'channel' that are coming from
+controller number 'controller' are used as the controller
+source. As recommended by the MIDI-specification, channel
+numbering goes from 1 to 16. Possible controller numbers
+are values from 0 to 127. The MIDI-device where bytes
+are read from can be specified using -Md option.
+Otherwise the default MIDI-device is used as specified in
+~ecasound/ecasoundrc (see ecasoundrc man page).
+Defaults to /dev/midi.
+
+Volume analyze controller. Analyzes the audio stored in
+stamp 'stamp-id' (see '-eS:id' docs), and creates
+control data based on the results. If 'rms-toggle' is non-zero,
+RMS-volume is used to calculate the control value. Otherwise
+average peak-amplitude is used.
+
+
-kx
+This is a special switch that can be used when you need
+to control controller parameters with another controller.
+When you specify -kx, the last specified controller
+will be set as the control target. Then you just add
+another controller as usual.
+
+
+
+INTERACTIVE MODE
+
+See ecasound-iam(1) man page.
+
+
+
+
ENVIRONMENT
+
+
+
ECASOUND
+ If defined, some utility programs and scripts will use
+ the ECASOUND environment as the default path to
+ ecasound executable.
+
+
ECASOUND_LOGFILE
+ Output all debugging messages to a separate log file. If defined,
+ ECASOUND_LOGFILE defines the logfile path. This is a good tool for
+ debugging ECI/EIAM scripts and applications.
+
+
ECASOUND_LOGLEVEL
+ Select which messages are written to the logfile defined by
+ ECASOUND_LOGFILE. The syntax for -d:level is used. If not
+ defined, all messages are written. Defaults to -d:319 (everything else
+ but 'functions (64)' and 'continuous (128)' class messages).
+
+
COLUMNS
+ Ecasound honors the COLUMNS environment variable when
+ formatting printed trace messages. If COLUMNS is not set,
+ a default of 74 is used.
+
+
TMPDIR
+ Some functions of Ecasound (e.g. "cs-edit" interactive command) require
+ creation of temporary files. By default, these files are created under
+ "/tmp", but this can be overridden by setting the TMPDIR environment
+ variable.
+
+In non-interactive (batch) mode, a non-zero value is returned
+ for the following errors:
+
+
+
1
+ Unable to create a valid chainsetup with the given parameters. Can be
+ caused by invalid option syntax, etc.
+
+
2
+ Unable to start processing. This can be caused by insufficient file
+ permissions, inability to access some system resources, etc.
+
+
3
+ Error during processing. Possible causes: output object has run
+ out of free disk space, etc.
+
+
4
+ Error during process termination and/or cleanup. See section
+ on 'SIGNALS' for further details.
+
+
SIGNALS
+
+When ecasound receives any of the POSIX signals SIGINT (ctrl-c),
+ SIGHUP, SIGTERM or SIGQUIT, normal cleanup and exit procedure is
+ initiated. Here normal exit means that e.g. file headers are
+ updated before closing, helper processes are terminated in normal
+ way, and so forth.
+
+If, while doing the cleanup described above, ecasound receives
+ another signal (of the same set of POSIX signals), ecasound
+ will skip the normal cleanup procedure, and terminate
+ immediately. Any remaining cleanup tasks will be skipped.
+ Depending on the runtime state and configuration, this brute
+ force exit may have some side-effects. Ecasound will return
+ exit code of '4' if normal cleanup was skipped.
+
+Special case handling is applied to the SIGINT (ctrl-c) signal.
+ If a SIGINT signal is received during the cleanup procedure,
+ ecasound will ignore the signal once, and emit a notice to 'stderr'
+ that cleanup is already in progress. Any subsequent SIGINT signals
+ will no longer get special handling, and instead process will
+ terminate immediately (and possibly without proper cleanup).
+
+
FILES
+
+~/.ecasound
+ The default directory for ecasound user resource files.
+ See the ecasoundrc (5) man page man page.
+
+*.ecs
+ Ecasound Chainsetup files. Syntax is more or less the
+ same as with command-line arguments.
+
+*.ecp
+ Ecasound Chain Preset files. Used for storing effect
+ and chain operator presets. See ecasound user's guide for
+ more better documentation.
+
+*.ews
+ Ecasound Wave Stats. These files are used to cache
+ waveform data.
+
+See file BUGS. If ecasound behaves weirdly, try to
+ increase the debug level to see what's going on.
+
+
AUTHOR
+
+Kai Vehmanen, <kvehmanen -at- eca -dot- cx>
diff --git a/ecasound-2.7.2/Documentation/ecasoundrc.5 b/ecasound-2.7.2/Documentation/ecasoundrc.5
new file mode 100644
index 000000000..82121a0b6
--- /dev/null
+++ b/ecasound-2.7.2/Documentation/ecasoundrc.5
@@ -0,0 +1,226 @@
+.TH "ecasoundrc" "5" "22\&.03\&.2009" "" "Multimedia software"
+
+.PP
+.SH "NAME"
+ecasoundrc \- ecasound rcfile
+.PP
+.SH "SYNOPSIS"
+{prefix}/share/ecasound/ecasoundrc (for instance \&'/usr/local/share/ecasound/ecasoundrc\&')
+$HOME/\&.ecasound/ecasoundrc
+.PP
+.SH "DESCRIPTION"
+
+.PP
+\fBecasoundrc\fP is the main configuration file for ecasound\&.
+Any user-specific modification should be done to
+$HOME/\&.ecasound/ecasoundrc, not to the global resource file\&. Ecasound
+also allows to disable the normal policy and only read from a specific
+resource file (see ecasound (1) and documentation for the \fB-R\fP option)\&.
+.PP
+The format is quite simple\&. One line consists of
+a configuration variable and its value\&. Variable and value
+are separated with either \&'=\&' or \&' \&'\&. Lines beginning with a
+"#" are ignored (comment lines)\&.
+.PP
+.SH "VARIABLES"
+
+.PP
+.IP "midi-device"
+MIDI-device\&. If the device name is given in \fIrawmidi,/dev/midi*\fP
+format, OSS/Linux or OSS/Lite drivers are used\&.
+Device \fIrawmidi,/dev/snd/midiCxDy\fP opens an ALSA raw-MIDI
+device with card number \&'x\&' and device number \&'y\&'\&.
+See ecasound (1) man page (the \&'-Md option) for more info\&.
+Defaults to \fIrawmidi,/dev/midi\fP\&.
+.IP
+.IP "default-output"
+Output device to use by default\&. If a chainsetup with zero
+outputs, but with one or more inputs, is connected, a default output
+is added and all the chains are connected to it\&. If the special-case
+value \&'autodetect\&' is specified, ecasound will try to auto-detect
+a suitable device (JACK -> ALSA -> OSS -> rtnull)\&.
+Defaults to \fIautodetect\fP\&.
+.IP
+.IP "default-audio-format"
+Default values for sample format, channel count, sampling rate
+and channel interleaving\&. Syntax is the same as used by
+ecasound\&'s \fI-f\fP option (see ecasound (1))\&.
+Defaults to \fIs16_le,2,44100,i\fP\&.
+.IP
+.IP "default-to-precise-sample-rates"
+Whether to ignore sample rate differences (and possibly avoid
+resampling)\&. Currently only affects OSS-devices\&. Defaults to \fIfalse\fP\&.
+.IP
+.IP "default-mix-mode"
+If \fIdefault-mix-mode\fP is \fIsum\fP, engine will mix multiple channels into
+one output channel by summing all input channels\&. In mode \fIavg\fP,
+mixing is done by taking the average of all input channels\&. The
+\fIavg\fP mode is safe from clipping, while \fIsum\fP is closer
+to the way analog mixers work\&. Defaults to \fIavg\fP\&.
+.IP
+.IP "bmode-defaults-nonrt"
+Selects the default parameters to use with buffering
+mode \&'nonrt\&' (other modes are \&'rt\&' and \&'rtlowlatency)\&.
+Parameters are given as a comma-separated tuple of values:
+1) buffersize (number,-b), 2) raised priority (true/false,-r),
+3) sched_priority (number,-r:X), 4) double buffering
+(true/false,-z:db), 5) db-bufsize (number,-z:db,X), and
+6) max intbuf (true/false,-z:intbuf)\&. Defaults to
+\fI1024,false,50,false,100000,true\fP\&.
+.IP
+.IP "bmode-defaults-rt"
+See \&'bmode-defaults-nonrt\&'\&. Defaults to
+\fI1024,true,50,true,100000,true\fP\&.
+.IP
+.IP "bmode-defaults-rtlowlatency"
+See \&'bmode-defaults-nonrt\&'\&. Defaults to
+\fI256,true,50,true,100000,false\fP\&.
+.IP
+.IP "resource-directory"
+Directory for global ecasound configuration files\&.
+Defaults to \fI{prefix-dir}/share/ecasound\fP\&.
+Note! User-specific resource files can be be stored
+to \&'$(HOME)/\&.ecasound/\&'\&. For instance you can
+add your own presets definitions to
+\&'$(HOME)/\&.ecasound/effect_presets\&'\&.
+.IP
+.IP "resource-file-genosc-envelopes"
+Configuration file for generic oscillators\&. Is located in the
+resource directory\&. Defaults to \fIgeneric_oscillators\fP\&.
+.IP
+.IP "resource-file-effect-presets"
+Configuration file for effect presets\&. Is located in the
+resource directory\&. Defaults to \fIeffect_presets\fP\&.
+.IP
+.IP "ladspa-plugin-directory"
+Directory containing LADSPA effect plugins\&. Defaults to \fI{prefix-dir}/lib/ladspa\fP\&.
+If environment variable \fILADSPA_PATH\fP exists, directories
+specified in it are automatically searched for plugins\&.
+Note! To match the syntax of the \fILADSPA_PATH\fP environment
+variable, \&'ladspa-plugin-directory\&' can contain multiple
+directories, separated by \&':\&' characters\&.
+.IP
+.IP "ext-cmd-text-editor"
+If \fIext-cmd-text-editor-use-getenv\fP is \fIfalse\fP or "EDITOR"
+is null, value of this field is used\&.
+.IP
+.IP "ext-cmd-text-editor-use-getenv"
+Should ecasound try to query environment variable "EDITOR"\&.
+Defaults to \fItrue\fP\&.
+.IP
+.IP "ext-cmd-mp3-input"
+Command for starting mp3 input\&. Ecasound expects to read signed,
+16bit, little-endian stereo audio samples from its standard
+input\&. Ecsound will query other audio format parameters by parsing
+the mp3 file header\&. Before execution, %f is replaced with
+path to the input mp3\&. If exists, "%o" is replaced with he
+start offset in mp3 frames\&. Double-quotes and backslash-espacing
+can be used to include white-space to individual parameters\&.
+By default, \fImpg123\fP is launched\&.
+.IP
+.IP "ext-cmd-mp3-output"
+Command for starting mp3 output\&. Ecasound will write stereo,
+signed, 16bit, little-endian samples to standard output\&. Sample
+rate is configurable\&. Before execution, %f is replaced with
+path to the output mp3, %S with sample rate in kHz, and
+%B with encoding bitrate in kbps\&. Double-quotes and
+backslash-espacing can be used to include white-space to
+individual parameters\&. By default Ecasound will try to
+launch \fIlame\fP\&. As a special exception (added to Ecasound
+2\&.7\&.0), if the output program is "lame" and options
+include "--big-endian", Ecasound will detect this and output
+big-endian samples\&.
+.IP
+.IP "ext-cmd-ogg-input"
+Command for starting Ogg Vorbis input\&. Ecasound expects that audio samples
+are written to standard output\&. It should be noted that
+Ecasound is not able to query the audio format parameters from
+ogg files, so these need to be set manually by the user\&.
+Before execution, %f is replaced with path to the input ogg\&.
+Double-quotes and backslash-espacing can be used to include white-space
+to individual parameters\&. By default Ecasound will try to
+launch (ogg123)\&.
+.IP
+.IP "ext-cmd-ogg-output"
+Command for starting Ogg Vorbis output\&. Ecasound will write
+samples in little-endian format to standard output\&. Other
+audio parameters are configurable\&. Before execution, %f is
+replaced with path to the output ogg, %c, %s and %b with matching audio
+format parameters, and %B with encoding bitrate in kbps\&.
+Double-quotes and backslash-espacing can be used to include white-space to
+individual parameters\&. By default Ecasound will try to
+launch (oggenc)\&.
+.IP
+.IP "ext-cmd-mikmod"
+Command for starting mikmod input\&. Ecasound expects that
+signed, 16bit, stereo audio samples are written to standard
+output\&. Before execution, %f is replaced with
+file path, and %s with selected sample rate\&. Double-quotes
+and backslash-espacing can be used to include white-space to
+individual parameters\&. By default Ecasound will try to launch
+\fImikmod\fP\&.
+.IP
+.IP "ext-cmd-timidity"
+Command for starting timidity++ input\&. Ecasound expects that
+signed, 16bit, stereo audio samples are written to standard
+output\&. Before execution, %f is replaced with file path, and
+%s with sample rate\&. Double-quotes and backslash-espacing can
+be used to include white-space to individual parameters\&.
+By default Ecasound will try to launch \fItimidity\fP\&.
+.IP
+.IP "ext-cmd-flac-input"
+Command for starting FLAC input\&. Ecasound expects that audio samples
+are written to standard output\&. It should be noted that
+Ecasound is not able to query the audio format parameters from
+FLAC files, so these need to be set manually by the user\&.
+Before execution, %f is replaced with path to the input FLAC
+file\&. Double-quotes and backslash-espacing can be used to include
+white-space to individual parameters\&. By default Ecasound will
+try to launch (flac)\&.
+.IP
+.IP "ext-cmd-flac-output"
+Command for starting FLAC output\&. Ecasound will write
+samples to standard output\&. All audio parameters are
+configurable\&. Before execution, %f is replaced with path to
+the output flac, %c, %b and %s with matching audio
+format parameters, %I with either \&'signed\&' or \&'unsigned\&', and
+%E with either \&'little\&' or \&'big\&'\&. Double-quotes and backslash-espacing
+can be used to include white-space to individual parameters\&. By default
+Ecasound will try to launch (flac)\&.
+.IP
+.IP "ext-cmd-aac-input"
+Command for starting AAC input\&. Ecasound expects that signed,
+16bit, stereo, big-endian audio samplesare written to standard
+output\&. It should be noted that Ecasound is not able to query
+the input sample rate, so this needs to be set manually by the user\&.
+Before execution, %f is replaced with path to the input AAC
+file\&. Note! FAAC must be compiled with MP4 support\&. Double-quotes
+and backslash-espacing can be used to include white-space to
+individual parameters\&. By default Ecasound will try to
+laucnh \fIfaad\fP\&.
+.IP
+.IP "ext-cmd-aac-output"
+Command for starting AAC output\&. Ecasound will write big-endian
+audio samples to standard output\&. All other audio parameters are
+configurable\&. Before execution, %f is replaced with path to
+the output AAC file, %c, %b and %s with matching audio format
+parameters\&. Note! FAAC must be compiled with MP4 support\&. Double-quotes
+and backslash-espacing can be used to include white-space to
+individual parameters\&. By default Ecasound will try to launch
+\fIfaac\fP\&.
+.IP
+.SH "DEPRECATED"
+
+.PP
+.IP "ext-cmd-wave-editor"
+
+.IP
+.SH "SEE ALSO"
+
+.PP
+ecasound (1), ecatools (1), ecasound-iam (1)
+.PP
+.SH "AUTHOR"
+
+.PP
+Kai Vehmanen, >
diff --git a/ecasound-2.7.2/Documentation/ecasoundrc_manpage.html b/ecasound-2.7.2/Documentation/ecasoundrc_manpage.html
new file mode 100644
index 000000000..248526112
--- /dev/null
+++ b/ecasound-2.7.2/Documentation/ecasoundrc_manpage.html
@@ -0,0 +1,252 @@
+
+ecasoundrc
+
+
+
+
+
+ecasoundrc is the main configuration file for ecasound.
+ Any user-specific modification should be done to
+ $HOME/.ecasound/ecasoundrc, not to the global resource file. Ecasound
+ also allows to disable the normal policy and only read from a specific
+ resource file (see ecasound (1) and documentation for the -R option).
+
+The format is quite simple. One line consists of
+ a configuration variable and its value. Variable and value
+ are separated with either '=' or ' '. Lines beginning with a
+ "#" are ignored (comment lines).
+
+
VARIABLES
+
+
+
+
midi-device
+ MIDI-device. If the device name is given in rawmidi,/dev/midi*
+ format, OSS/Linux or OSS/Lite drivers are used.
+ Device rawmidi,/dev/snd/midiCxDy opens an ALSA raw-MIDI
+ device with card number 'x' and device number 'y'.
+ See ecasound (1) man page (the '-Md option) for more info.
+ Defaults to rawmidi,/dev/midi.
+
+
default-output
+ Output device to use by default. If a chainsetup with zero
+ outputs, but with one or more inputs, is connected, a default output
+ is added and all the chains are connected to it. If the special-case
+ value 'autodetect' is specified, ecasound will try to auto-detect
+ a suitable device (JACK -> ALSA -> OSS -> rtnull).
+ Defaults to autodetect.
+
+
default-audio-format
+ Default values for sample format, channel count, sampling rate
+ and channel interleaving. Syntax is the same as used by
+ ecasound's -f option (see ecasound (1)).
+ Defaults to s16_le,2,44100,i.
+
+
default-to-precise-sample-rates
+ Whether to ignore sample rate differences (and possibly avoid
+ resampling). Currently only affects OSS-devices. Defaults to false.
+
+
default-mix-mode
+ If default-mix-mode is sum, engine will mix multiple channels into
+ one output channel by summing all input channels. In mode avg,
+ mixing is done by taking the average of all input channels. The
+ avg mode is safe from clipping, while sum is closer
+ to the way analog mixers work. Defaults to avg.
+
+
bmode-defaults-nonrt
+ Selects the default parameters to use with buffering
+ mode 'nonrt' (other modes are 'rt' and 'rtlowlatency).
+ Parameters are given as a comma-separated tuple of values:
+ 1) buffersize (number,-b), 2) raised priority (true/false,-r),
+ 3) sched_priority (number,-r:X), 4) double buffering
+ (true/false,-z:db), 5) db-bufsize (number,-z:db,X), and
+ 6) max intbuf (true/false,-z:intbuf). Defaults to
+ 1024,false,50,false,100000,true.
+
+
bmode-defaults-rt
+ See 'bmode-defaults-nonrt'. Defaults to
+ 1024,true,50,true,100000,true.
+
+
bmode-defaults-rtlowlatency
+ See 'bmode-defaults-nonrt'. Defaults to
+ 256,true,50,true,100000,false.
+
+
resource-directory
+ Directory for global ecasound configuration files.
+ Defaults to {prefix-dir}/share/ecasound.
+ Note! User-specific resource files can be be stored
+ to '$(HOME)/.ecasound/'. For instance you can
+ add your own presets definitions to
+ '$(HOME)/.ecasound/effect_presets'.
+
+
resource-file-genosc-envelopes
+ Configuration file for generic oscillators. Is located in the
+ resource directory. Defaults to generic_oscillators.
+
+
resource-file-effect-presets
+ Configuration file for effect presets. Is located in the
+ resource directory. Defaults to effect_presets.
+
+
ladspa-plugin-directory
+ Directory containing LADSPA effect plugins. Defaults to {prefix-dir}/lib/ladspa.
+ If environment variable LADSPA_PATH exists, directories
+ specified in it are automatically searched for plugins.
+ Note! To match the syntax of the LADSPA_PATH environment
+ variable, 'ladspa-plugin-directory' can contain multiple
+ directories, separated by ':' characters.
+
+
ext-cmd-text-editor
+ If ext-cmd-text-editor-use-getenv is false or "EDITOR"
+ is null, value of this field is used.
+
+
ext-cmd-text-editor-use-getenv
+ Should ecasound try to query environment variable "EDITOR".
+ Defaults to true.
+
+
ext-cmd-mp3-input
+ Command for starting mp3 input. Ecasound expects to read signed,
+ 16bit, little-endian stereo audio samples from its standard
+ input. Ecsound will query other audio format parameters by parsing
+ the mp3 file header. Before execution, %f is replaced with
+ path to the input mp3. If exists, "%o" is replaced with he
+ start offset in mp3 frames. Double-quotes and backslash-espacing
+ can be used to include white-space to individual parameters.
+ By default, mpg123 is launched.
+
+
ext-cmd-mp3-output
+ Command for starting mp3 output. Ecasound will write stereo,
+ signed, 16bit, little-endian samples to standard output. Sample
+ rate is configurable. Before execution, %f is replaced with
+ path to the output mp3, %S with sample rate in kHz, and
+ %B with encoding bitrate in kbps. Double-quotes and
+ backslash-espacing can be used to include white-space to
+ individual parameters. By default Ecasound will try to
+ launch lame. As a special exception (added to Ecasound
+ 2.7.0), if the output program is "lame" and options
+ include "--big-endian", Ecasound will detect this and output
+ big-endian samples.
+
+
ext-cmd-ogg-input
+ Command for starting Ogg Vorbis input. Ecasound expects that audio samples
+ are written to standard output. It should be noted that
+ Ecasound is not able to query the audio format parameters from
+ ogg files, so these need to be set manually by the user.
+ Before execution, %f is replaced with path to the input ogg.
+ Double-quotes and backslash-espacing can be used to include white-space
+ to individual parameters. By default Ecasound will try to
+ launch (ogg123).
+
+
ext-cmd-ogg-output
+ Command for starting Ogg Vorbis output. Ecasound will write
+ samples in little-endian format to standard output. Other
+ audio parameters are configurable. Before execution, %f is
+ replaced with path to the output ogg, %c, %s and %b with matching audio
+ format parameters, and %B with encoding bitrate in kbps.
+ Double-quotes and backslash-espacing can be used to include white-space to
+ individual parameters. By default Ecasound will try to
+ launch (oggenc).
+
+
ext-cmd-mikmod
+ Command for starting mikmod input. Ecasound expects that
+ signed, 16bit, stereo audio samples are written to standard
+ output. Before execution, %f is replaced with
+ file path, and %s with selected sample rate. Double-quotes
+ and backslash-espacing can be used to include white-space to
+ individual parameters. By default Ecasound will try to launch
+ mikmod.
+
+
ext-cmd-timidity
+ Command for starting timidity++ input. Ecasound expects that
+ signed, 16bit, stereo audio samples are written to standard
+ output. Before execution, %f is replaced with file path, and
+ %s with sample rate. Double-quotes and backslash-espacing can
+ be used to include white-space to individual parameters.
+ By default Ecasound will try to launch timidity.
+
+
ext-cmd-flac-input
+ Command for starting FLAC input. Ecasound expects that audio samples
+ are written to standard output. It should be noted that
+ Ecasound is not able to query the audio format parameters from
+ FLAC files, so these need to be set manually by the user.
+ Before execution, %f is replaced with path to the input FLAC
+ file. Double-quotes and backslash-espacing can be used to include
+ white-space to individual parameters. By default Ecasound will
+ try to launch (flac).
+
+
ext-cmd-flac-output
+ Command for starting FLAC output. Ecasound will write
+ samples to standard output. All audio parameters are
+ configurable. Before execution, %f is replaced with path to
+ the output flac, %c, %b and %s with matching audio
+ format parameters, %I with either 'signed' or 'unsigned', and
+ %E with either 'little' or 'big'. Double-quotes and backslash-espacing
+ can be used to include white-space to individual parameters. By default
+ Ecasound will try to launch (flac).
+
+
ext-cmd-aac-input
+ Command for starting AAC input. Ecasound expects that signed,
+ 16bit, stereo, big-endian audio samplesare written to standard
+ output. It should be noted that Ecasound is not able to query
+ the input sample rate, so this needs to be set manually by the user.
+ Before execution, %f is replaced with path to the input AAC
+ file. Note! FAAC must be compiled with MP4 support. Double-quotes
+ and backslash-espacing can be used to include white-space to
+ individual parameters. By default Ecasound will try to
+ laucnh faad.
+
+
ext-cmd-aac-output
+ Command for starting AAC output. Ecasound will write big-endian
+ audio samples to standard output. All other audio parameters are
+ configurable. Before execution, %f is replaced with path to
+ the output AAC file, %c, %b and %s with matching audio format
+ parameters. Note! FAAC must be compiled with MP4 support. Double-quotes
+ and backslash-espacing can be used to include white-space to
+ individual parameters. By default Ecasound will try to launch
+ faac.
+
+
+
+
DEPRECATED
+
+
+
+
ext-cmd-wave-editor
+
+
+
+
SEE ALSO
+
+ecasound (1), ecatools (1), ecasound-iam (1)
+
+
AUTHOR
+
+Kai Vehmanen, <kvehmanen -at- eca -dot- cx>
diff --git a/ecasound-2.7.2/Documentation/ecatools.1 b/ecasound-2.7.2/Documentation/ecatools.1
new file mode 100644
index 000000000..824dc5713
--- /dev/null
+++ b/ecasound-2.7.2/Documentation/ecatools.1
@@ -0,0 +1,220 @@
+.TH "ecatools" "1" "12\&.11\&.2005" "" "Multimedia software"
+
+.PP
+.SH "NAME"
+ecatools \- audio processing utils based on ecasound
+.PP
+.SH "SYNOPSIS"
+\fBecaconvert\fP \&.extension file1 [ file2 \&.\&.\&. fileN ]
+.PP
+\fBecafixdc\fP file1 [ file2 \&.\&.\&. fileN ]
+.PP
+\fBecalength\fP file1 [ file2 \&.\&.\&. fileN ]
+.PP
+\fBecamonitor\fP [host][:port]
+.PP
+\fBecanormalize\fP file1 [ file2 \&.\&.\&. fileN ]
+.PP
+\fBecaplay\fP [-dfhklopq] [ file1 file2 \&.\&.\&. fileN ]
+.PP
+\fBecasignalview\fP [ options ] [ input ] [ output ]
+.PP
+.SH "DESCRIPTION"
+
+.PP
+Ecatools are simple command line utils for audio file processing\&.
+Each tool is designed to perform one specific operation\&. Most of
+the tools also support batch processing\&.
+.PP
+\fBECACONVERT\fP
+.PP
+A tool for converting a set of files to a common target format\&.
+This target format is given as the first command line
+argument, and its syntax is \fI\&.ext\fP\&.
+.PP
+\fBECAFIXDC\fP
+.PP
+A simple command-line tool for fixing DC-offset\&.
+.PP
+\fBECALENGTH\fP
+.PP
+See the separate ecalength(1) man page\&.
+.PP
+\fBECAMONITOR\fP
+.PP
+Ecamonitor is a util program that can be used
+to monitor an active ecasound session\&. Ecamonitor
+is able to show information about the current
+chainsetup such as list of inputs, outputs,
+current position, effects, the engine status
+and numerous other things\&.
+.PP
+By default ecamonitor will try to connect
+to IP4 address "localhost", to port "2868"\&.
+A different address can be specified when
+starting ecamonitor, for example
+"ecamonitor foo\&.mynetwork\&.com" or
+"ecamonitor foo\&.mynetwork\&.com:4500"\&.
+.PP
+To enable inbound connections, ecasound has to be
+started with the \fI--daemon\fP option\&. Ecamonitor is
+implemented in Python using the NetECI API\&.
+.PP
+\fBECANORMALIZE\fP
+.PP
+Ecanormalize is a command-line tool for normalizing audio
+files to utilize the full available sample resolution\&. Ecanormalize
+first finds out how much the input file can be amplified without
+clipping and if there is room for increase, a static gain will
+be applied to the file\&.
+.PP
+\fBECAPLAY\fP
+.PP
+Ecaplay is a command-line tool for playing audio files\&. Ecaplay
+uses the libecasound engine and is thus able to handle all audio formats
+supported by the library\&.
+.PP
+Files can be selected for playback either by specifying the
+filenames on the command-line, or by using the playlist
+mechanism\&. In playlist mode, files can be added to the playlist
+using the \fI-q\fP option\&. The \fI-p\fP option can then be used
+to play all tracks on the playlist\&. Ecaplay will repeat the
+playlist tracks until explicitly stopped (with double Ctrl-C)\&.
+Playlist can be flushed with \fI-f\fP and its contents listed
+with \fI-l\fP option\&.
+.PP
+If not otherwise specified, ecaplay will use the audio output device
+specified in \fI~/\&.ecasound/ecasoundrc\fP for playback\&. A different
+output device can be selected with \fIECAPLAY_OUTPUT_DEVICE\fP shell
+environment variable or with the \fI-o:output_device\fP command-line
+option\&.
+.PP
+Playback can be stopped at any time with Ctrl-C\&. If multiple
+files are played, first Ctrl-C will stop the current file and move
+on to play the next one\&. Issuing Ctrl-C twice (within one second),
+will cause ecaplay to exit\&.
+.PP
+.IP "-d:debuglevel"
+Set libecasound debug level\&. See ecasound(1)\&.
+.IP
+.IP "-f"
+Flush the playlist contents\&. See also
+options \fI-l, -p and -q\fP\&.
+.IP
+.IP "-h"
+Print usage information and exit\&.
+.IP
+.IP "-k:number"
+Skip \&'number\&' of files\&.
+.IP
+.IP "-l"
+List the current playlist contents to stdout\&. See also
+options \fI-f, -p and -q\fP\&.
+.IP
+.IP "-o:output_device"
+Use \&'output_device\&' instead of the default output device
+(as specified in \fI~/\&.ecasound/ecasoundrc\fP)\&. Syntax is same
+as used by "-o" ecasound option (see ecasound(1) man page)\&.
+This option overrides the \fIECAPLAY_OUTPUT_DEVICE\fP environment
+variable (more info below)\&.
+.IP
+.IP "-p"
+Play tracks in the playlist (in looped mode)\&. See also
+options \fI-f, -l and -q\fP\&.
+.IP
+.IP "-q"
+Queue new tracks to the playlist\&. All filenames given on
+the command-line will be added to the the playlist\&. It is
+possible to queue new tracks while another instance of
+ecaplay is using the playlist\&. See also options \fI-f, -l
+and -p\fP\&.
+.IP
+\fBECASIGNALVIEW\fP
+.PP
+Ecasignalview is meant for monitoring signal amplitude and peak
+statistics\&. It accepts the following options:
+.PP
+.IP "input"
+The first option not starting with a \&'-\&' is interpreted
+as an input string\&. This can be a device or a filename\&. All formats
+supported by libecasound are accepted\&. Defaults to \&'/dev/dsp\&'\&.
+.IP
+.IP "output"
+Similarly to input, second option not starting with a \&'-\&'
+is interpreted as output\&. Defaults to \&'null\&'\&.
+.IP
+.IP "-b:buffersize"
+Buffersize in sample frames\&. Defaults to 128\&.
+.IP
+.IP "-c"
+Enable cumulative mode\&. Counters are not reseted after refresh\&.
+\fI*deprecated*\fP
+.IP
+.IP "-d"
+Enable debug mode\&.
+.IP
+.IP "-f:format_string"
+Specify default audio format\&. See ecasound(1) for details\&.
+.IP
+.IP "-r:rate_msec"
+Specify screen refresh rate in milliseconds\&.
+.IP
+.IP "-I"
+Use linear scale for showing audio sample amplitude\&.
+.IP
+.IP "-L"
+Use logarithmic scale for showing audio sample amplitude\&.
+.IP
+.IP "-G, -B, -M*, -r, -z"
+Ecasound options use to modify the engine behaviour, see
+ecasound(1) manpage for details\&.
+.IP
+When ecasignalview is running, the following keyboard
+commands can be used to control the operation (requires
+system support for UNIX terminal interface control):
+.PP
+.IP "spacebar"
+Reset statistics (max-peak, avg-amplitude and clipped
+samples count)\&.
+.IP
+.IP "q or Q or Esc"
+Quit ecasignalview\&.
+.IP
+It is also possible to reset the max-peak and clipped-samples
+counters by sending a SIGHUP signal to the process (i\&.e\&.
+from another console: "killall -v -HUP ecasignalview")\&.
+.PP
+More complete documentation for ecasignalview can be found
+from "Ecasound User\&'s Guide" (see \&'\&'http://www\&.eca\&.cx/ecasound
+-> Documentation\&'\&')\&.
+.PP
+.SH "ENVIRONMENT"
+
+.PP
+\fIECASOUND\fP
+Path to the ecasound executable\&. Used by many ecatools\&.
+.PP
+\fIECAPLAY_OUTPUT_DEVICE\fP
+Device ecaplay should use for audio output\&. Same syntax
+as for ecaplay/ecasound "-o" option\&.
+.PP
+.SH "FILES"
+
+.PP
+\fI~/\&.ecasound/ecasoundrc\fP
+The default ecasound resource file\&. See ecasoundrc(5)
+for details\&.
+.PP
+\fI~/\&.ecasound/ecaplay_queue\fP
+File used to store the ecaplay playlist (one track per
+line with full path)\&.
+.PP
+.SH "SEE ALSO"
+
+.PP
+ecasound (1), ecalength(1), "HTML docs in the Documentation subdirectory"
+.PP
+.SH "AUTHOR"
+
+.PP
+Kai Vehmanen, >
diff --git a/ecasound-2.7.2/Documentation/ecatools_manpage.html b/ecasound-2.7.2/Documentation/ecatools_manpage.html
new file mode 100644
index 000000000..4d354a758
--- /dev/null
+++ b/ecasound-2.7.2/Documentation/ecatools_manpage.html
@@ -0,0 +1,248 @@
+
+ecatools
+
+
+
+
+
ecatools
+
12.11.2005
+
+
+
+
+
+
+
+
+
+ecatools(1)
+
+
+
+
+
ecatools(1)
+
Multimedia software
+
12.11.2005
+
+
+
+
NAME
ecatools - audio processing utils based on ecasound
+
+Ecatools are simple command line utils for audio file processing.
+Each tool is designed to perform one specific operation. Most of
+the tools also support batch processing.
+
+ECACONVERT
+
+A tool for converting a set of files to a common target format.
+This target format is given as the first command line
+argument, and its syntax is .ext.
+
+ECAFIXDC
+
+A simple command-line tool for fixing DC-offset.
+
+ECALENGTH
+
+See the separate ecalength(1) man page.
+
+ECAMONITOR
+
+Ecamonitor is a util program that can be used
+to monitor an active ecasound session. Ecamonitor
+is able to show information about the current
+chainsetup such as list of inputs, outputs,
+current position, effects, the engine status
+and numerous other things.
+
+By default ecamonitor will try to connect
+to IP4 address "localhost", to port "2868".
+A different address can be specified when
+starting ecamonitor, for example
+"ecamonitor foo.mynetwork.com" or
+"ecamonitor foo.mynetwork.com:4500".
+
+To enable inbound connections, ecasound has to be
+started with the --daemon option. Ecamonitor is
+implemented in Python using the NetECI API.
+
+ECANORMALIZE
+
+Ecanormalize is a command-line tool for normalizing audio
+files to utilize the full available sample resolution. Ecanormalize
+first finds out how much the input file can be amplified without
+clipping and if there is room for increase, a static gain will
+be applied to the file.
+
+ECAPLAY
+
+Ecaplay is a command-line tool for playing audio files. Ecaplay
+uses the libecasound engine and is thus able to handle all audio formats
+supported by the library.
+
+Files can be selected for playback either by specifying the
+filenames on the command-line, or by using the playlist
+mechanism. In playlist mode, files can be added to the playlist
+using the -q option. The -p option can then be used
+to play all tracks on the playlist. Ecaplay will repeat the
+playlist tracks until explicitly stopped (with double Ctrl-C).
+Playlist can be flushed with -f and its contents listed
+with -l option.
+
+If not otherwise specified, ecaplay will use the audio output device
+specified in ~/.ecasound/ecasoundrc for playback. A different
+output device can be selected with ECAPLAY_OUTPUT_DEVICE shell
+environment variable or with the -o:output_device command-line
+option.
+
+Playback can be stopped at any time with Ctrl-C. If multiple
+files are played, first Ctrl-C will stop the current file and move
+on to play the next one. Issuing Ctrl-C twice (within one second),
+will cause ecaplay to exit.
+
+
+
-d:debuglevel
+Set libecasound debug level. See ecasound(1).
+
+
-f
+Flush the playlist contents. See also
+options -l, -p and -q.
+
+
-h
+Print usage information and exit.
+
+
-k:number
+Skip 'number' of files.
+
+
-l
+List the current playlist contents to stdout. See also
+options -f, -p and -q.
+
+
-o:output_device
+Use 'output_device' instead of the default output device
+(as specified in ~/.ecasound/ecasoundrc). Syntax is same
+as used by "-o" ecasound option (see ecasound(1) man page).
+This option overrides the ECAPLAY_OUTPUT_DEVICE environment
+variable (more info below).
+
+
-p
+Play tracks in the playlist (in looped mode). See also
+options -f, -l and -q.
+
+
-q
+Queue new tracks to the playlist. All filenames given on
+the command-line will be added to the the playlist. It is
+possible to queue new tracks while another instance of
+ecaplay is using the playlist. See also options -f, -l
+and -p.
+
+
+
+ECASIGNALVIEW
+
+Ecasignalview is meant for monitoring signal amplitude and peak
+statistics. It accepts the following options:
+
+
+
input
+The first option not starting with a '-' is interpreted
+as an input string. This can be a device or a filename. All formats
+supported by libecasound are accepted. Defaults to '/dev/dsp'.
+
+
output
+Similarly to input, second option not starting with a '-'
+is interpreted as output. Defaults to 'null'.
+
+
-b:buffersize
+Buffersize in sample frames. Defaults to 128.
+
+
-c
+Enable cumulative mode. Counters are not reseted after refresh.
+*deprecated*
+
+
-d
+Enable debug mode.
+
+
-f:format_string
+Specify default audio format. See ecasound(1) for details.
+
+
-r:rate_msec
+Specify screen refresh rate in milliseconds.
+
+
-I
+Use linear scale for showing audio sample amplitude.
+
+
-L
+Use logarithmic scale for showing audio sample amplitude.
+
+
-G, -B, -M*, -r, -z
+Ecasound options use to modify the engine behaviour, see
+ecasound(1) manpage for details.
+
+
+
+When ecasignalview is running, the following keyboard
+commands can be used to control the operation (requires
+system support for UNIX terminal interface control):
+
+
+
spacebar
+Reset statistics (max-peak, avg-amplitude and clipped
+samples count).
+
+
q or Q or Esc
+Quit ecasignalview.
+
+
+
+It is also possible to reset the max-peak and clipped-samples
+counters by sending a SIGHUP signal to the process (i.e.
+from another console: "killall -v -HUP ecasignalview").
+
+More complete documentation for ecasignalview can be found
+from "Ecasound User's Guide" (see ''http://www.eca.cx/ecasound
+-> Documentation'').
+
+
ENVIRONMENT
+
+ECASOUND
+ Path to the ecasound executable. Used by many ecatools.
+
+ECAPLAY_OUTPUT_DEVICE
+ Device ecaplay should use for audio output. Same syntax
+ as for ecaplay/ecasound "-o" option.
+
+
FILES
+
+~/.ecasound/ecasoundrc
+ The default ecasound resource file. See ecasoundrc(5)
+ for details.
+
+~/.ecasound/ecaplay_queue
+ File used to store the ecaplay playlist (one track per
+ line with full path).
+
+
SEE ALSO
+
+ecasound (1), ecalength(1), "HTML docs in the Documentation subdirectory"
+