From a7fa4f20e58b001f6e1f60bf7d8715bfbe750caf Mon Sep 17 00:00:00 2001 From: drowe67 <45574645+drowe67@users.noreply.github.com> Date: Thu, 2 Nov 2023 06:54:51 +1030 Subject: [PATCH 01/10] Update README.md Policy and Deprecation notes --- README.md | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 54cd0594..eeb86c88 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Codec 2 README -Codec 2 is an open source (LGPL 2.1) low bit rate speech codec: http://rowetel.com/codec2.html +Codec 2 is an open source (LGPL 2.1) low bit rate speech codec: http://rowetel.com/codec2.html. It is written in C99 standard C for compilation by `gcc`. Also included: @@ -9,9 +9,28 @@ Also included: + APIs for packet data over radio [README_data](README_data.md) + An STM32 embedded version of FreeDV 1600/700D/700E for the [SM1000](stm32/README.md) -## Older code +## Old Code and Deprecated Features -In July 2023 this repo was refactored, older code can be found in https://github.com/drowe67/codec2-dev +In July 2023 this repo was refactored, older code can be found in https://github.com/drowe67/codec2-dev. + +We are currently conducting a major re-development of Codec 2, new speech coding, modems, and FreeDV modes are under active development. As such, we have limited resources available for mantinence or development on deprecated features unless there is a major bug. We'd rather put our efforts into new features! Deprecated modes include: +1. FreeDV 1600, 700C, 700D, 700E, 2020 +1. All Codec 2 modes +1. Our fork of LPCNet + +This code won't be going away any time soon (and we will continue to include any modes/code in popular use), but we would prefer not to actively develop it at this time. + +## Pull Requests, Feature Requests + +We have a process for considering Feature Requests and Pull Requests that we will guide you through. + +Feature Requests can be submitted via GitHub Issues. + +Before writing any code or submitting a PR - **please discuss** the PR with developers by raising a GitHub Issue. We would like to use your idea or skills, but it must be directed in ways that move this project forward. We have many years of experience and a carefully considered plan for Codec 2 development, and can guide you on work that that will most benefit this project. + +## Ports to non gcc/C99 Compilers + +We have standardized on gcc/C99. We and encourage people who want to use non-standard compilers like MSVC and certain embedded compilers to maintain their own Codec 2 forks. Our focus needs to be on what’s unique about our project – the speech codec and modem waveforms – rather than consuming time and resources on non-core activities that others can do equally well. If you decide to fork Codec 2 to a non C99/gcc compiler - please ensure you port the ctests and that they all pass. If the tests have not been ported or do not pass - it's not Codec 2. ## Quickstart @@ -173,9 +192,9 @@ wav - speech files in wave file format make ``` -## Building for Windows on a Linux machine +## Bulding for Windows -We recommend using Linux to cross compile for Windows. +We target our C code to compile with `gcc` to the [C99 standard](#ports-to-non-gccc99-compilers). We recommend using Linux to cross compile for Windows. On Ubuntu Linux: ``` From 20b73cdea421bcaca2a51ae8d81f65fa04df84b7 Mon Sep 17 00:00:00 2001 From: drowe67 <45574645+drowe67@users.noreply.github.com> Date: Thu, 2 Nov 2023 13:02:11 +1030 Subject: [PATCH 02/10] edits --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index eeb86c88..694e95e7 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ We have a process for considering Feature Requests and Pull Requests that we wil Feature Requests can be submitted via GitHub Issues. -Before writing any code or submitting a PR - **please discuss** the PR with developers by raising a GitHub Issue. We would like to use your idea or skills, but it must be directed in ways that move this project forward. We have many years of experience and a carefully considered plan for Codec 2 development, and can guide you on work that that will most benefit this project. +Before writing any code or submitting a PR - **please discuss** the PR with developers by raising a GitHub Issue. We have many years of experience and a carefully considered plan for Codec 2 development, and can guide you on work that will most benefit this project. ## Ports to non gcc/C99 Compilers From d63e0dd3da61c96adbb99c70dbce64ab7d6d7493 Mon Sep 17 00:00:00 2001 From: drowe67 <45574645+drowe67@users.noreply.github.com> Date: Thu, 2 Nov 2023 16:52:01 +1030 Subject: [PATCH 03/10] Update README.md Co-authored-by: Mooneer Salem --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 694e95e7..d7f1d5a7 100644 --- a/README.md +++ b/README.md @@ -194,7 +194,7 @@ wav - speech files in wave file format ## Bulding for Windows -We target our C code to compile with `gcc` to the [C99 standard](#ports-to-non-gccc99-compilers). We recommend using Linux to cross compile for Windows. +We target our C code to compile with `gcc` to the [C99 standard](#ports-to-non-gccc99-compilers). We recommend using MinGW to cross compile for Windows. On Ubuntu Linux: ``` From aa1d6c0b977a178de55c18a4b026d3c057f7d868 Mon Sep 17 00:00:00 2001 From: David Rowe Date: Thu, 2 Nov 2023 17:16:02 +1030 Subject: [PATCH 04/10] another version of the deprecated features section --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d7f1d5a7..5d61d00e 100644 --- a/README.md +++ b/README.md @@ -13,12 +13,12 @@ Also included: In July 2023 this repo was refactored, older code can be found in https://github.com/drowe67/codec2-dev. -We are currently conducting a major re-development of Codec 2, new speech coding, modems, and FreeDV modes are under active development. As such, we have limited resources available for mantinence or development on deprecated features unless there is a major bug. We'd rather put our efforts into new features! Deprecated modes include: +We are currently conducting a major re-development of Codec 2, new speech coding, modems, and FreeDV modes are under active development. We have limited resources available for maintenance or development on features that may soon be replaced (with the exception of major bugs). We'd rather put our efforts into new features! Modes and Features we are not actively maintaining at present, and likely to be superseded in the near future include: 1. FreeDV 1600, 700C, 700D, 700E, 2020 -1. All Codec 2 modes +1. Codec 2 modes with the exception of Codec 2 3200 for M17. 1. Our fork of LPCNet -This code won't be going away any time soon (and we will continue to include any modes/code in popular use), but we would prefer not to actively develop it at this time. +The code supporting these modes won't be going away any time soon (and we will continue to include any modes/code in popular use), but we would have chosen not to actively develop it at this time. ## Pull Requests, Feature Requests From a962f9513933eef1f3c675182b3e4bfc4e1d7a1e Mon Sep 17 00:00:00 2001 From: drowe67 <45574645+drowe67@users.noreply.github.com> Date: Thu, 2 Nov 2023 17:24:39 +1030 Subject: [PATCH 05/10] include stm32 in list of paused code --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5d61d00e..41893060 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ We are currently conducting a major re-development of Codec 2, new speech coding 1. FreeDV 1600, 700C, 700D, 700E, 2020 1. Codec 2 modes with the exception of Codec 2 3200 for M17. 1. Our fork of LPCNet +1. The stm32/SM1000 firmware The code supporting these modes won't be going away any time soon (and we will continue to include any modes/code in popular use), but we would have chosen not to actively develop it at this time. From dbe78dc5c9d23b49c8e9e42f3da338e12403d29f Mon Sep 17 00:00:00 2001 From: drowe67 <45574645+drowe67@users.noreply.github.com> Date: Thu, 2 Nov 2023 17:28:51 +1030 Subject: [PATCH 06/10] stm32 tweak --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 41893060..2b560b72 100644 --- a/README.md +++ b/README.md @@ -14,10 +14,10 @@ Also included: In July 2023 this repo was refactored, older code can be found in https://github.com/drowe67/codec2-dev. We are currently conducting a major re-development of Codec 2, new speech coding, modems, and FreeDV modes are under active development. We have limited resources available for maintenance or development on features that may soon be replaced (with the exception of major bugs). We'd rather put our efforts into new features! Modes and Features we are not actively maintaining at present, and likely to be superseded in the near future include: -1. FreeDV 1600, 700C, 700D, 700E, 2020 +1. FreeDV 1600, 700C, 700D, 700E, 2020. 1. Codec 2 modes with the exception of Codec 2 3200 for M17. -1. Our fork of LPCNet -1. The stm32/SM1000 firmware +1. Our fork of LPCNet. +1. The stm32/SM1000 firmware (paused until new modes available). The code supporting these modes won't be going away any time soon (and we will continue to include any modes/code in popular use), but we would have chosen not to actively develop it at this time. From 576fa4b8e5ee4f0878ba95a0477b81280b356e81 Mon Sep 17 00:00:00 2001 From: drowe67 <45574645+drowe67@users.noreply.github.com> Date: Thu, 2 Nov 2023 17:59:22 +1030 Subject: [PATCH 07/10] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2b560b72..652a701d 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ We are currently conducting a major re-development of Codec 2, new speech coding 1. Our fork of LPCNet. 1. The stm32/SM1000 firmware (paused until new modes available). -The code supporting these modes won't be going away any time soon (and we will continue to include any modes/code in popular use), but we would have chosen not to actively develop it at this time. +The code supporting these modes won't be going away any time soon (and we will continue to include any modes/code in popular use), but we have chosen not to actively develop it at this time. ## Pull Requests, Feature Requests From d3ef64ac91df11084119ef26c09974a909248155 Mon Sep 17 00:00:00 2001 From: drowe67 <45574645+drowe67@users.noreply.github.com> Date: Fri, 3 Nov 2023 06:47:32 +1030 Subject: [PATCH 08/10] Adjusted C focus to be on C99, less on gcc --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 652a701d..51aa2c4b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Codec 2 README -Codec 2 is an open source (LGPL 2.1) low bit rate speech codec: http://rowetel.com/codec2.html. It is written in C99 standard C for compilation by `gcc`. +Codec 2 is an open source (LGPL 2.1) low bit rate speech codec: http://rowetel.com/codec2.html written in C99 standard C. Also included: @@ -29,9 +29,9 @@ Feature Requests can be submitted via GitHub Issues. Before writing any code or submitting a PR - **please discuss** the PR with developers by raising a GitHub Issue. We have many years of experience and a carefully considered plan for Codec 2 development, and can guide you on work that will most benefit this project. -## Ports to non gcc/C99 Compilers +## Ports to non C99 Compilers -We have standardized on gcc/C99. We and encourage people who want to use non-standard compilers like MSVC and certain embedded compilers to maintain their own Codec 2 forks. Our focus needs to be on what’s unique about our project – the speech codec and modem waveforms – rather than consuming time and resources on non-core activities that others can do equally well. If you decide to fork Codec 2 to a non C99/gcc compiler - please ensure you port the ctests and that they all pass. If the tests have not been ported or do not pass - it's not Codec 2. +We have standardized on C99 and develop and test using gcc on a Linux platform. We and encourage people who want to use non-standard compilers like MSVC and certain embedded compilers to maintain their own Codec 2 forks. Our focus needs to be on what’s unique about our project – the speech codec and modem waveforms – rather than consuming time and resources on non-core activities that others can do equally well. If you decide to fork Codec 2 to a non C99 compiler - please ensure you port the ctests and that they all pass. If the tests have not been ported or do not pass - it's not Codec 2. ## Quickstart @@ -195,7 +195,7 @@ wav - speech files in wave file format ## Bulding for Windows -We target our C code to compile with `gcc` to the [C99 standard](#ports-to-non-gccc99-compilers). We recommend using MinGW to cross compile for Windows. +We develop and test on Linux to the [C99 standard](#ports-to-non-gccc99-compilers). We recommend using MinGW to cross compile for Windows. On Ubuntu Linux: ``` @@ -205,7 +205,7 @@ On Ubuntu Linux: make ``` -This will create a working `libcodec2.dll` file for use with other applications (e.g. FreeDV GUI which is in wide spread use on Windows). Please note the utility/development command line applications (e.g. `freedv_rx.exe`) may not work exactly the same on the Windows CLI compared to running on a Unix machine/shell. For example pipes may not function as expected, and ctests are not supported. Our primary development and test environment is Unix, and we lack the resources to support and maintain these applications for other operating systems. +This will create a working `libcodec2.dll` file for use with other applications (e.g. FreeDV GUI which is in wide spread use on Windows). Please note the utility/development command line applications (e.g. `freedv_rx.exe`) may not work exactly the same on the Windows CLI compared to running on a Unix machine/shell. For example pipes may not function as expected, and ctests are not supported. Our primary development and test environment is Linux, and we lack the resources to support and maintain these applications for other operating systems. ## Including Codec 2 in an Android project From f35e5164a5292e8f30f53ddb5ba78dd3dbb5e548 Mon Sep 17 00:00:00 2001 From: drowe67 Date: Fri, 3 Nov 2023 06:54:37 +1030 Subject: [PATCH 09/10] fix link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 51aa2c4b..5864c456 100644 --- a/README.md +++ b/README.md @@ -195,7 +195,7 @@ wav - speech files in wave file format ## Bulding for Windows -We develop and test on Linux to the [C99 standard](#ports-to-non-gccc99-compilers). We recommend using MinGW to cross compile for Windows. +We develop and test on Linux to the [C99 standard](#ports-to-non-c99-compilers). We recommend using MinGW to cross compile for Windows. On Ubuntu Linux: ``` From a77e17b84107126dea2cd8494cf9e4d291d4a8d7 Mon Sep 17 00:00:00 2001 From: drowe67 <45574645+drowe67@users.noreply.github.com> Date: Fri, 3 Nov 2023 06:56:30 +1030 Subject: [PATCH 10/10] typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5864c456..83056ae6 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ Before writing any code or submitting a PR - **please discuss** the PR with deve ## Ports to non C99 Compilers -We have standardized on C99 and develop and test using gcc on a Linux platform. We and encourage people who want to use non-standard compilers like MSVC and certain embedded compilers to maintain their own Codec 2 forks. Our focus needs to be on what’s unique about our project – the speech codec and modem waveforms – rather than consuming time and resources on non-core activities that others can do equally well. If you decide to fork Codec 2 to a non C99 compiler - please ensure you port the ctests and that they all pass. If the tests have not been ported or do not pass - it's not Codec 2. +We have standardized on C99 and develop and test using gcc on a Linux platform. We encourage people who want to use non-standard compilers like MSVC and certain embedded compilers to maintain their own Codec 2 forks. Our focus needs to be on what’s unique about our project – the speech codec and modem waveforms – rather than consuming time and resources on non-core activities that others can do equally well. If you decide to fork Codec 2 to a non C99 compiler - please ensure you port the ctests and that they all pass. If the tests have not been ported or do not pass - it's not Codec 2. ## Quickstart