Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
8a2edb7
[cs] fix analysis and quick-cs-subsets functions
diegovdc May 1, 2025
ffed952
Export new functions
diegovdc May 2, 2025
115da79
[npm] Update JS erv exports
diegovdc May 2, 2025
aeb4d8d
Add comment
diegovdc May 13, 2025
b88f8c8
[scale.utils] add diamond function
diegovdc May 13, 2025
dec49a7
Merge commit 'b88f8c8' into dev
diegovdc May 13, 2025
2c20ff9
Formatting
diegovdc Aug 11, 2025
0a6261a
[deps] update core.async
diegovdc Aug 11, 2025
89c6a01
[deps] add codox
diegovdc Aug 11, 2025
5dae55a
[meru] WIP meru-diagonals
diegovdc Aug 11, 2025
82878c7
[meru] WIP diagonals (impl v2. which works as expected)
diegovdc Aug 15, 2025
6ccd23c
[meru] diagonals small refactoring
diegovdc Aug 19, 2025
4994dfe
[meru] WIP v3 on-demand full diagonals
diegovdc Aug 20, 2025
d631d1e
[meru] document solution v3
diegovdc Aug 20, 2025
0380811
[meru] v3 working
diegovdc Aug 20, 2025
cf799e2
[meru] cleanup diagonals file
diegovdc Aug 20, 2025
10d3a6d
[meru] add convergence precision functionality
diegovdc Aug 26, 2025
dffc9e0
[meru] add first diagonals test
diegovdc Aug 26, 2025
3a878ce
[meru] add malli and restructure meru.core
diegovdc Sep 10, 2025
3fd1772
[meru] wip clean up meru.core and add utils
diegovdc Sep 13, 2025
22841bd
[beating-analyzer] wip
diegovdc Sep 13, 2025
fd931ce
[meru] add propotional-chords function
diegovdc Sep 15, 2025
7494630
[scl] add kbm file generation
diegovdc Sep 15, 2025
3165512
[scl] kbm remove comments option
diegovdc Sep 15, 2025
21ee04b
[scl] improve printing of degrees
diegovdc Oct 10, 2025
021d79e
[beats] wip beating analyzer
diegovdc Oct 10, 2025
1e1df7c
[beats] move +degrees to more shareable ns
diegovdc Oct 14, 2025
7cc8be8
[beats] hiccup table
diegovdc Oct 14, 2025
8342bbd
[js-ratios+beats] remove rationals outside comments
diegovdc Oct 15, 2025
90f0695
[js-ratios] parse ratio strings
diegovdc Oct 15, 2025
086fca3
[js-ratios] fix missing require
diegovdc Oct 15, 2025
cab3acf
fix clj tests
diegovdc Oct 15, 2025
681c0c3
[js-ratios] add exact to utils.core and utils.ratios ns
diegovdc Oct 15, 2025
a6bf6ff
[js-rationals] run js tests on ci
diegovdc Oct 15, 2025
579aa3b
fix broken diagonals test
diegovdc Oct 15, 2025
055cef1
Only test node lts
diegovdc Oct 15, 2025
0e7a6cc
[js-ratios] update shadow-cljs and use deps.edn deps
diegovdc Oct 15, 2025
634a5e1
update readme with dev instructions
diegovdc Oct 15, 2025
a31506f
rename file
diegovdc Oct 15, 2025
83ca3a3
[js-ratios] enable cps scales
diegovdc Oct 15, 2025
b0b3c9f
Add tests for utils.ratios
diegovdc Oct 16, 2025
33a008b
Add tests for utils.scale
diegovdc Oct 16, 2025
cb07f5f
Add tests for mos namespaces
diegovdc Oct 16, 2025
8e5c421
update .gitignore
diegovdc Oct 16, 2025
83d5b3a
Add edo tests
diegovdc Oct 16, 2025
815a621
add js pow rational function
diegovdc Oct 16, 2025
50b344b
Continue "exact" integration
diegovdc Oct 23, 2025
1f8547e
Fix bug caused by exact/numerator
diegovdc Oct 23, 2025
a357c26
Use shadow-cljs deps
diegovdc Nov 18, 2025
9e69124
Add intish? function
diegovdc Nov 18, 2025
6995e2b
HOTFIX Allow build on erv-web
diegovdc Nov 18, 2025
67af195
add beating-analyzer v1
diegovdc Nov 18, 2025
43a9de7
fix lattice.v2 on cljs
diegovdc Nov 18, 2025
b1b471d
fix constant-structures.core on cljs
diegovdc Nov 18, 2025
2a72ad1
Add tests for cs.core and lattive.v2
diegovdc Nov 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 25 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:
branches: [ main, dev ]

jobs:
test:
clojure-test:
runs-on: ubuntu-latest

steps:
Expand Down Expand Up @@ -35,5 +35,28 @@ jobs:
restore-keys: |
${{ runner.os }}-gitlibs-

- name: Run tests
- name: Run Clojure tests
run: clojure -M:test

node-test:
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [lts/*] # LTS plus specific versions

steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm' # Enable dependency caching

- name: Install dependencies
run: npm ci

- name: Run npm tests
run: CI=false npm test
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ src/archive/huygens-fokker-scala-archive/*.scl
**/.DS_Store
/node_modules
/dist
/out
.cider-repl-history
.shadow-cljs/
npm-test/
Expand Down
11 changes: 7 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,15 +34,18 @@ https://en.xen.wiki/w/MOS_scale
(def generator 13)
(def my-mos (mos/make period generator))
(submos/make-all-submos (nth my-mos 3) generator) ;; this will generate all secondary MOS and all possible "traverse" MOS



```


## Note
This library is a work in progress and mostly a workshop for myself, so the code is not polished as it should. If you are using this library, feel free to let make me aware of so that I can take more care of the code and the documentation.
This library is a work in progress and mostly a workshop for myself, so the code is not polished as it should. If you are using this library, feel free to let make me aware of it so that I can take more care of the code and the documentation.


## To Do
- [ ] In JS, by using exact, operations involving floating point or double instances may be broken as they expect the source to be strings containing parseable integers or rationals. Floating point support needs to be tested and supported.

## Development
On `emacs` one can run `cider-jackin-clj&cljs` then select the `shadow-cljs` server and the `:browser-build`.

## License

Expand Down
29 changes: 23 additions & 6 deletions deps.edn
Original file line number Diff line number Diff line change
@@ -1,16 +1,33 @@
{:paths ["src" "test" "dev"]
:deps {org.clojure/clojure {:mvn/version "1.11.1"}
org.clojure/clojurescript {:mvn/version "1.11.60"}
com.google.javascript/closure-compiler-unshaded {:mvn/version "v20221102"}
:deps {org.clojure/clojure {:mvn/version "1.12.0"}
org.clojure/core.async {:mvn/version "1.3.618"}
org.clojure/math.combinatorics {:mvn/version "0.3.0"}
com.taoensso/timbre {:mvn/version "4.10.0"}
quil/quil {:mvn/version "4.0.0-SNAPSHOT"}
metosin/malli {:mvn/version "0.19.1"}
com.gfredericks/exact {:mvn/version "0.1.11"}
org.clojure/tools.namespace {:mvn/version "1.3.0"}
table/table {:mvn/version "0.5.0"}
org.clojure/data.json {:mvn/version "2.4.0"}}
:aliases {:test {:extra-paths ["test"]
org.clojure/data.json {:mvn/version "2.4.0"}
hiccup/hiccup {:mvn/version "2.0.0"}}
:aliases {:cljs {:extra-deps
{thheller/shadow-cljs {:mvn/version "3.2.1"}
binaryage/devtools {:mvn/version "0.9.7"}
;; the following block of dependencies copied from shadow-cljs own deps
org.clojure/clojurescript {:mvn/version "1.12.35"
:exclusions
[com.google.javascript/closure-compiler
org.clojure/google-closure-library
org.clojure/google-closure-library-third-party]}
com.google.javascript/closure-compiler {:mvn/version "v20250407"}
org.clojure/google-closure-library {:mvn/version "0.0-20250418-2ce9ab6d"}
org.clojure/google-closure-library-third-party {:mvn/version "0.0-20250418-2ce9ab6d"}}}
:test {:extra-paths ["test"]
:extra-deps {io.github.cognitect-labs/test-runner
{:git/tag "v0.5.1" :git/sha "dfb30dd"}}
:main-opts ["-m" "cognitect.test-runner"]
:exec-fn cognitect.test-runner.api/test}}}
:exec-fn cognitect.test-runner.api/test}
:codox {:extra-deps {codox/codox {:mvn/version "0.10.8"}}
:exec-fn codox.main/generate-docs
:codox {:output-path "codox"}
:exec-args {:source-paths ["src"]}}}}
Loading
Loading