├── .gitignore
├── LICENSE
├── README.md
├── elm.json
├── package-lock.json
├── package.json
├── public
├── favicon.ico
└── index.html
├── src
├── App.elm
├── Encode.elm
├── Lib.elm
├── index.js
└── main.css
└── tests
├── Tests.elm
└── elm-package.json
/.gitignore:
--------------------------------------------------------------------------------
1 | # Distribution
2 | dist/
3 |
4 | # elm-package generated files
5 | elm-stuff
6 |
7 | # elm-repl generated files
8 | repl-temp-*
9 |
10 | # Dependency directories
11 | node_modules
12 |
13 | # Desktop Services Store on macOS
14 | .DS_Store
15 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | BSD 3-Clause License
2 |
3 | Copyright (c) 2017, Darren Prentice
4 | All rights reserved.
5 |
6 | Redistribution and use in source and binary forms, with or without
7 | modification, are permitted provided that the following conditions are met:
8 |
9 | * Redistributions of source code must retain the above copyright notice, this
10 | list of conditions and the following disclaimer.
11 |
12 | * Redistributions in binary form must reproduce the above copyright notice,
13 | this list of conditions and the following disclaimer in the documentation
14 | and/or other materials provided with the distribution.
15 |
16 | * Neither the name of the copyright holder nor the names of its
17 | contributors may be used to endorse or promote products derived from
18 | this software without specific prior written permission.
19 |
20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # elm-audio-graph
2 | A declarative Elm interface to the Web Audio node API.
3 |
4 | Powered by [virtual-audio-graph](https://github.com/benji6/virtual-audio-graph) on the JS side.
5 |
6 | ```sh
7 | npm i
8 | npx elm-app start
9 | ```
10 |
11 | ## Demo
12 | Volume Warning!
13 |
14 | [dpren.github.io/elm-audio-graph](https://dpren.github.io/elm-audio-graph)
15 |
16 | (you may need to enable "Sound" in your browser's site settings, this demo doesn't obey the policies for autoplay very well; which requires an initial user interaction)
17 |
18 |
19 | ## Build scripts
20 | This project is bootstrapped with [Create Elm App](https://github.com/halfzebra/create-elm-app).
21 | You can read the [full guide here](https://github.com/halfzebra/create-elm-app/blob/master/template/README.md).
22 |
23 | In the project directory you can run:
24 |
25 | #### `elm-app start`
26 | Runs the app in development mode at [http://localhost:3000](http://localhost:3000)
27 |
28 | The page will reload if you make edits.
29 |
30 | #### `elm-app build`
31 | Builds the app for production to the `dist` folder.
32 | The build is minified, and the filenames include the hashes.
33 |
34 | #### `elm-app test`
35 | Run tests with [node-test-runner](https://github.com/rtfeldman/node-test-runner/tree/master)
36 |
--------------------------------------------------------------------------------
/elm.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "application",
3 | "source-directories": [
4 | "src/"
5 | ],
6 | "elm-version": "0.19.0",
7 | "dependencies": {
8 | "direct": {
9 | "elm/browser": "1.0.1",
10 | "elm/core": "1.0.0",
11 | "elm/html": "1.0.0",
12 | "elm/json": "1.1.2"
13 | },
14 | "indirect": {
15 | "elm/time": "1.0.0",
16 | "elm/url": "1.0.0",
17 | "elm/virtual-dom": "1.0.2"
18 | }
19 | },
20 | "test-dependencies": {
21 | "direct": {},
22 | "indirect": {}
23 | }
24 | }
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "elm-audio-graph",
3 | "version": "0.0.1",
4 | "private": true,
5 | "dependencies": {
6 | "elm": "^0.19.0-bugfix6",
7 | "elm-upgrade": "^0.19.6",
8 | "virtual-audio-graph": "0.19.0"
9 | },
10 | "devDependencies": {
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpren/elm-audio-graph/af88d950f87b057f4d8951536fb4fce4c7d05efc/public/favicon.ico
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |