Skip to content

Commit

Permalink
The SW3 commit
Browse files Browse the repository at this point in the history
This commit swaps out the core engine from scale-workshop-core to sonic-weave.
Too many breaking changes have been introduced to maintain an incremental commit history at this juncture.
  • Loading branch information
frostburn committed Mar 26, 2024
1 parent 9a3fa13 commit f9bca4a
Show file tree
Hide file tree
Showing 139 changed files with 8,657 additions and 6,197 deletions.
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
# Change log

## 3.0.0-beta
* Feature: Core language switched to from [scale-workshop-core](https://github.com/xenharmonic-devs/scale-workshop-core) to [sonic-weave](https://github.com/xenharmonic-devs/sonic-weave)
* Feature: Virtual piano now supports up to 4 layers of colors
* Feature: Character palette with tooltips for syntax beyond ASCII [#533](https://github.com/xenharmonic-devs/scale-workshop/issues/533)
* Feature: Interval matrix simplified by default [#536](https://github.com/xenharmonic-devs/scale-workshop/issues/536)
* Feature: Convert scale to enumeration [#538](https://github.com/xenharmonic-devs/scale-workshop/issues/538)
* Feature: More MOS coloring options [#554](https://github.com/xenharmonic-devs/scale-workshop/issues/554)
* Feature: Variety and brightness signatures show in the interval matrix [#568](https://github.com/xenharmonic-devs/scale-workshop/issues/568)
* Feature: Periodic equally tempered grids supported on the lattice tab
* Feature: Lattice label sizes customizable [#581](https://github.com/xenharmonic-devs/scale-workshop/issues/581)
* Feature: Lattice colors inverted and scale colors incorporated [#586](https://github.com/xenharmonic-devs/scale-workshop/issues/586)
* Feature: Scott Dakota's prime rings on the lattice tab [#551](https://github.com/xenharmonic-devs/scale-workshop/issues/551)
* Feature: Tonnetz prime ellipse coordinates on the lattice tab [#588](https://github.com/xenharmonic-devs/scale-workshop/issues/588)
* Feature: New `latticeView()` command for displaying the order of intervals (prior to sorting) [#597](https://github.com/xenharmonic-devs/scale-workshop/issues/597)
* Alpha cycle issues: [#574](https://github.com/xenharmonic-devs/scale-workshop/issues/574), [#579](https://github.com/xenharmonic-devs/scale-workshop/issues/579)

## 2.4.0
* Feature: Export scales for Ableton Live 12 [#601](https://github.com/xenharmonic-devs/scale-workshop/issues/601)
* Feature: MOS patterns supported by EDO can be sorted by size or hardness [#599](https://github.com/xenharmonic-devs/scale-workshop/issues/599)
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2022 Xenharmonic Developers
Copyright (c) 2022-2024 Xenharmonic Developers

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@

![Scale Workshop screenshot](https://raw.githubusercontent.com/xenharmonic-devs/scale-workshop/main/src/assets/img/opengraph-image.png)

## Beta Warning!
This release is in beta. Not everything has been implemented and documentation has not been synchronized with the new features.

Some of the new features are documented over at [sonic-weave](https://github.com/xenharmonic-devs/sonic-weave).

## Description

[Scale Workshop](https://scaleworkshop.plainsound.org/) allows you to design microtonal scales and play them in your web browser. Export your scales for use with VST instruments. Convert Scala files to various tuning formats.
Expand Down
12 changes: 7 additions & 5 deletions cypress/e2e/basic.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,16 @@ describe("Basic test", () => {

it("preserves the base frequency when changing tabs", () => {
cy.visit("/");
cy.get(".real-valued").clear()
cy.get(".real-valued").type("432")
cy.get(".real-valued").trigger("change")
cy.get(".real-valued").should("have.value", "432");
cy.get("#auto-frequency").click()
cy.get("#base-frequency").clear()
cy.get("#base-frequency").type("432")
cy.get("#base-frequency").trigger("change")
cy.get("#base-frequency").should("have.value", "432");
// eslint-disable-next-line cypress/no-unnecessary-waiting
cy.wait(400); // Wait for debounce to expire.
cy.get("a").contains("Synth").click();
cy.url().should("contain", "f=");
cy.get("a").contains("Build Scale").click();
cy.get("#base-frequency").should("have.value", "432");
});
});

Expand Down
17 changes: 17 additions & 0 deletions cypress/e2e/compatibility.cy.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// https://on.cypress.io/api

describe("Scale Workshop 2 compatibility", () => {
it("ignores invalid scale lines", () => {
cy.visit("/?l=1_7nF74_5F4_gtFe8_bF8_2c1F1kw_pFg_1jFw_3dF1s_2F1&version=2.4.0");
cy.contains("h2", "Scale data");
cy.get("#scale-data").should('have.value', '// 1\n275/256 black\n5/4 white\n605/512 white\n11/8 black\n3025/2048 white\n25/16 black\n55/32 white\n121/64 white\n2/1 black');
});
});

describe("Scale Workshop 1 compatibility", () => {
it("supports all line types", () => {
cy.visit("?name=Test%20scale&data=1%2C23%0A1%5C3%0A3%2F2%0A1001.2%0A2%2F1&freq=420&midi=42&vert=5&horiz=1&colors=white%20black%20white%20black%20white&waveform=triangle&ampenv=perc-medium");
cy.contains("h2", "Scale data");
cy.get("#scale-data").should('have.value', '1.23e black\n1\\3 white\n3/2 black\n1001.2 white\n2/1 white');
});
});
6 changes: 3 additions & 3 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />

<title>Scale Workshop</title>
<title>Scale Workshop 3</title>
<meta name="description" content="Scale Workshop is a tool that allows you to create microtonal tunings within your web browser. You can export these tunings to your device and use them to tune various synthesizers." />
<meta property="og:title" content="Scale Workshop" />
<meta property="og:title" content="Scale Workshop 3" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://sevish.com/scaleworkshop/" />
<meta property="og:url" content="https://sw3.lumipakkanen.com/" />
<meta property="og:image" content="https://sevish.com/scaleworkshop.png" />
<meta property="og:description" content="Create microtonal tunings in your web browser." />

Expand Down
Loading

0 comments on commit f9bca4a

Please sign in to comment.