|
1 |
| -# DSP labs |
| 1 | +# Practical Digital Signal Processing Through Voice Effects |
2 | 2 |
|
3 |
| -## Viewing material from GitHub |
| 3 | +**By [Eric Bezzam](https://ebezzam.github.io/), [Adrien Hoffet](https://lcav.epfl.ch/people/people-current_staff/page-145331-en-html/), and [Paolo Prandoni](https://lcav.epfl.ch/people/people-current_staff/people-paolo-prandoni/)** |
4 | 4 |
|
5 |
| -Go [here](docs/README.md). Note that plug-in material won't render properly, e.g. equations. |
| 5 | +This repository contains the content and scripts for the [practical exercises](https://lcav.gitbook.io/dsp-labs/) for the EPFL course [COM-303, Signal processing for communications](http://isa.epfl.ch/imoniteur_ISAP/!itffichecours.htm?ww_i_matiere=24007074&ww_x_anneeacad=1866893861&ww_i_section=944590&ww_i_niveau=6683147&ww_c_langue=en). |
| 6 | +[Here](http://com303.learndsp.org) is the course website for EPFL students. |
6 | 7 |
|
7 |
| -## Building/viewing gitbook locally |
| 8 | +The material in this book is based off of the voice effects presented in [this Jupyter notebook](http://nbviewer.jupyter.org/github/prandoni/COM303/blob/master/voice_transformer/voicetrans.ipynb). |
| 9 | +However, the focus is on implementing these effects in a real-time manner: first in Python with a laptop's soundcard |
| 10 | +then in C with a microcontroller from ST Microelectronics. |
8 | 11 |
|
9 |
| -You'll need [npm](https://www.npmjs.com/get-npm). |
| 12 | +***The goal of these exercises is to expose participants to the practical sides of digital signal processing (DSP) through |
| 13 | +fun and intuitive audio applications***, while also using industry-level tools that are low-cost and accessible so that others |
| 14 | +around the world can try them out. |
10 | 15 |
|
11 |
| -Install the `gitbook` client if you haven't already: |
12 |
| -```bash |
13 |
| -$ npm install gitbook-cli -g |
14 |
| -``` |
| 16 | +Even if the [hardware](https://lcav.gitbook.io/dsp-labs/bom) cannot be obtained, the main lessons in DSP can still be acquired in Python with your laptop! |
15 | 17 |
|
16 |
| -Copy the repository and run the following commands from the top directory: |
17 |
| -```bash |
18 |
| -$ gitbook install |
19 |
| -$ gitbook serve |
20 |
| -``` |
| 18 | +A pre-print describing the development of these exercises can be found [here](https://infoscience.epfl.ch/record/258046/files/dsp_labs_icassp_2019.pdf). |
21 | 19 |
|
22 |
| -Go to: `http://localhost:4000` |
23 |
| - |
24 |
| - |
25 |
| -## GitBook instructions (from scratch) |
26 |
| - |
27 |
| -[Installation instructions](https://toolchain.gitbook.com/setup.html). |
28 |
| - |
29 |
| -```bash |
30 |
| -$ npm install gitbook-cli -g |
31 |
| -``` |
32 |
| - |
33 |
| -Create new directory |
34 |
| -```bash |
35 |
| -$ mkdir my-book |
36 |
| -$ cd my-book |
37 |
| -$ gitbook init |
38 |
| -``` |
39 |
| - |
40 |
| -To preview the book and make live edits: |
41 |
| -```bash |
42 |
| -$ gitbook serve |
43 |
| -``` |
44 |
| - |
45 |
| -To build static website: |
46 |
| -```bash |
47 |
| -$ gitbook build |
48 |
| -``` |
49 |
| - |
50 |
| -To have separate documentation and code, create a `book.json` file with the following content: |
51 |
| -```json |
52 |
| -{ |
53 |
| - "root": "./docs" |
54 |
| -} |
55 |
| -``` |
56 |
| -and place all files inside a folder called `'docs'`. |
57 |
| - |
58 |
| - |
59 |
| -### Adding math |
60 |
| - |
61 |
| -Add the following line to your `book.json` file: |
62 |
| -```json |
63 |
| -{ |
64 |
| - "plugins": ["mathjax"] |
65 |
| -} |
66 |
| -``` |
67 |
| - |
68 |
| -If you are exporting to PDF, you will find a bug when using this version of `mathjax` (as of 11 Dec 2018). |
69 |
| -[This fix](https://github.com/GitbookIO/gitbook/issues/1875) consists of using a forked version of `mathjax`, namely: |
70 |
| -```json |
71 |
| -{ |
72 |
| - "plugins": ["mathjax@https://github.com/OrgVue/gitbook-plugin-mathjax.git#speech-fix"] |
73 |
| -} |
74 |
| -``` |
75 |
| -and installing the following package: |
76 |
| -```bash |
77 |
| -$ npm install svgexport -g |
78 |
| -``` |
79 |
| - |
80 |
| -Install the plugin from within your gitbook directory |
81 |
| -```bash |
82 |
| -$ gitbook install |
83 |
| -``` |
84 |
| - |
85 |
| -[More info](https://github.com/GitbookIO/plugin-mathjax). |
86 |
| - |
87 |
| -### Converting LaTeX to Markdown |
88 |
| - |
89 |
| -[Pandoc](https://pandoc.org/) is a great tool for this. For small sections, the [online tool](https://pandoc.org/try/) is generally sufficient. |
90 |
| - |
91 |
| - |
92 |
| -### Adding drop-down menu for sidebar |
93 |
| - |
94 |
| -Add the following plug-in to your `book.json` file: |
95 |
| -```json |
96 |
| -{ |
97 |
| - "plugins": ["expandable-chapters"] |
98 |
| -} |
99 |
| -``` |
100 |
| - |
101 |
| -Install the plug-in by running: |
102 |
| -```bash |
103 |
| -$ gitbook install |
104 |
| -``` |
105 |
| - |
106 |
| -[More info](https://www.npmjs.com/package/gitbook-plugin-expandable-chapters). |
107 |
| - |
108 |
| -### Highlighted boxes (for tasks) |
109 |
| - |
110 |
| -See [here](https://github.com/GitbookIO/plugin-hints). |
111 |
| - |
112 |
| -### Adding Disqus commands |
113 |
| - |
114 |
| -You'll need to make a Disqus account if you don't already have one. |
115 |
| - |
116 |
| -Edit the `book.json` file as described [here](https://plugins.gitbook.com/plugin/disqus). |
117 |
| - |
118 |
| -Install the plug-in by running: |
119 |
| -```bash |
120 |
| -$ gitbook install |
121 |
| -``` |
122 |
| - |
123 |
| -### Adding custom favicon |
124 |
| - |
125 |
| -See [here](https://www.npmjs.com/package/gitbook-plugin-custom-favicon). |
126 |
| - |
127 |
| -### Adding TOC to page |
128 |
| - |
129 |
| -See [here](https://www.npmjs.com/package/gitbook-plugin-simple-page-toc). |
| 20 | +Table of contents: |
130 | 21 |
|
| 22 | +1. [Overview and installation of ST Microelectronics material](https://lcav.gitbook.io/dsp-labs/installation) |
| 23 | +2. [Audio passthrough](https://lcav.gitbook.io/dsp-labs/passthrough) |
| 24 | +3. [Alien voice effect](https://lcav.gitbook.io/dsp-labs/alien-voice) |
| 25 | +4. [Digital filter design](https://lcav.gitbook.io/dsp-labs/filter-design) |
| 26 | +5. [Granular synthesis pitch shifting](https://lcav.gitbook.io/dsp-labs/granular-synthesis) |
131 | 27 |
|
| 28 | +To set up the book for local development or to suggest changes (more than welcome!), check out the [setup guide](https://github.com/LCAV/dsp-labs/blob/master/SETUP.md). |
0 commit comments