-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit ae9e2a0
Showing
87 changed files
with
7,009 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
module.exports = { | ||
env: { browser: true, es2020: true }, | ||
extends: ["eslint:recommended", "plugin:@typescript-eslint/recommended"], | ||
parser: "@typescript-eslint/parser", | ||
parserOptions: { ecmaVersion: "latest", sourceType: "module" }, | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
--- | ||
name: Bug report | ||
about: Create a report to help us improve | ||
title: "" | ||
labels: "" | ||
assignees: "" | ||
--- | ||
|
||
**Describe the bug** | ||
A clear and concise description of what the bug is. | ||
|
||
**To Reproduce** | ||
Steps to reproduce the behavior: | ||
|
||
1. Go to '...' | ||
2. Click on '....' | ||
3. Scroll down to '....' | ||
4. See error | ||
|
||
**Expected behavior** | ||
A clear and concise description of what you expected to happen. | ||
|
||
**Screenshots** | ||
If applicable, add screenshots to help explain your problem. | ||
|
||
**Desktop (please complete the following information):** | ||
|
||
- OS: [e.g. iOS] | ||
- Browser [e.g. chrome, safari] | ||
- Version [e.g. 22] | ||
|
||
**Smartphone (please complete the following information):** | ||
|
||
- Device: [e.g. iPhone6] | ||
- OS: [e.g. iOS8.1] | ||
- Browser [e.g. stock browser, safari] | ||
- Version [e.g. 22] | ||
|
||
**Additional context** | ||
Add any other context about the problem here. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
--- | ||
name: Feature request | ||
about: Suggest an idea for this project | ||
title: "" | ||
labels: "" | ||
assignees: "" | ||
--- | ||
|
||
**Is your feature request related to a problem? Please describe.** | ||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] | ||
|
||
**Describe the solution you'd like** | ||
A clear and concise description of what you want to happen. | ||
|
||
**Describe alternatives you've considered** | ||
A clear and concise description of any alternative solutions or features you've considered. | ||
|
||
**Additional context** | ||
Add any other context or screenshots about the feature request here. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
## Describe your changes | ||
|
||
## Issue ticket number and link | ||
|
||
## Checklist before requesting a review | ||
|
||
- [ ] I have performed a self-review of my code | ||
- [ ] If it is a core feature, I have added thorough tests. | ||
- [ ] Do we need to implement analytics? | ||
- [ ] Will this be part of a product update? If yes, please write one phrase about this update. | ||
|
||
Thanks for contributing to JSS-01 | JavaScript Software Synthesizer! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# JSS-01 |JavaScript Software Synthesizer | ||
# Copyright (c) 2023 Michael Kolesidis <michael.kolesidis@gmail.com> | ||
# GNU Affero General Public License v3.0 | ||
|
||
# Logs | ||
logs | ||
*.log | ||
npm-debug.log* | ||
yarn-debug.log* | ||
yarn-error.log* | ||
pnpm-debug.log* | ||
lerna-debug.log* | ||
|
||
node_modules | ||
dist | ||
dist-ssr | ||
*.local | ||
|
||
# Editor directories and files | ||
.vscode/* | ||
!.vscode/extensions.json | ||
.idea | ||
.DS_Store | ||
*.suo | ||
*.ntvs* | ||
*.njsproj | ||
*.sln | ||
*.sw? |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,234 @@ | ||
# 2.0.3 | ||
|
||
### Changes | ||
|
||
- Updated instructions for building and running locally | ||
|
||
# 2.0.2 | ||
|
||
### Changes | ||
|
||
- Migration to Vercel | ||
|
||
# 2.0.1 | ||
|
||
### Changes | ||
|
||
- Fixed readme images path | ||
|
||
# 2.0.0 | ||
|
||
### Changes | ||
|
||
- Vite migration | ||
- Refactoring | ||
- Code cleanup | ||
|
||
# 1.2.0 | ||
|
||
### Changes | ||
|
||
- Fixed computer keyboard playability (language-independent) | ||
- Rewritten keyMapper and midiToNoteString in a concise and optimal way | ||
- Added checks for TypeScript | ||
- Optimized the size of all PNG and SVG images | ||
- Code cleanup | ||
- Updated all dependencies to their latest versions | ||
- Fixed typos in all readme files | ||
- Minor documentation updates | ||
- Minor updates and corrections | ||
|
||
# 1.0.6 | ||
|
||
### Changes | ||
|
||
- Updated Tone.js to latest version | ||
- Updated all dependencies to their latest versions | ||
- Using yarn.lock in instead of package-lock | ||
- Updated logo files | ||
- Changed TypeScript target language to ES2021 | ||
- Readme update and restructuring | ||
- Minor documentation updates | ||
- Added Security Policy | ||
|
||
# 1.0.1 | ||
|
||
### Changes | ||
|
||
- Switched to GNU Affero General Public License v3.0 | ||
|
||
# 1.0.0 | ||
|
||
### Changes | ||
|
||
- Migration to TypeScript | ||
|
||
# 0.7.0 | ||
|
||
### Changes | ||
|
||
- Dark Mode (inverted colors) | ||
|
||
# 0.6.2 | ||
|
||
### Changes | ||
|
||
- Updated all components to the new license | ||
- Code cleanup | ||
|
||
# 0.6.1 | ||
|
||
### Changes | ||
|
||
- Converted a significant part of the codebase to TypeScript | ||
- License changed to GNU Affero General Public License v3.0 | ||
- Minor UI fixes | ||
|
||
# 0.5.4 | ||
|
||
### Changes | ||
|
||
- MIDI input device selectable | ||
|
||
### Known Issues | ||
|
||
- When using the on-screen and/or the computer keyboard, if playing multiple notes, the synthesizer stops playing all notes if at least one note is released | ||
- Partials sections don't work | ||
- High CPU load and performance issues | ||
- Opening the Dev Tools in Chrome results to severe performance deterioration: the app becomes unresponsive and crushes | ||
- Severe performance issues on Firefox | ||
|
||
# 0.5.3 | ||
|
||
### Changes | ||
|
||
- Quick Start menu | ||
- Removal of p5.js animated background for better performance | ||
- Styling | ||
- Quick Start documentation | ||
|
||
### Known Issues | ||
|
||
- When using the on-screen and/or the computer keyboard, if playing multiple notes, the synthesizer stops playing all notes if at least one note is released | ||
- Partials sections don't work | ||
- High CPU load and performance issues | ||
- Opening the Dev Tools in Chrome results to severe performance deterioration: the app becomes unresponsive and crushes | ||
- Severe performance issues on Firefox | ||
|
||
# 0.5 | ||
|
||
### Changes | ||
|
||
- Effects | ||
- Auto filter | ||
- Chorus | ||
- Phaser | ||
- Feedback delay | ||
- Ping pong delay | ||
- Tremolo | ||
- Vibrato | ||
- Reverb | ||
- Distortion | ||
- Bit crusher | ||
- Frequency shifter | ||
- Chebyshev waveshaping | ||
- Responsive effects section | ||
- Synthesizer engine refactoring | ||
- Synthesizer effects connectivity | ||
- Splash screen | ||
- Background animation | ||
- Dark mode / help mode buttons removal | ||
- 1 extra sequence example (I Feel Love) | ||
- Styling | ||
- Code cleanup | ||
- All elements as JavaScript modules | ||
|
||
### Known Issues | ||
|
||
- Only works on Chromium and WebKit based browsers (Chrome, Edge, Brave, Safari, Opera, GNOME Web etc.) | ||
- When using the on-screen and/or the computer keyboard, if playing multiple notes, the synthesizer stops playing all notes if at least one note is released | ||
- Partials sections don't work | ||
- High CPU load | ||
|
||
# 0.2.5 | ||
|
||
### Changes | ||
|
||
- Sequencer | ||
- Note sequence input | ||
- Tempo | ||
- Note value | ||
- Set sequence button | ||
- Play button | ||
- Stop button | ||
- 2 sequence examples (default and Funky Town) | ||
- Styling | ||
- Code cleanup | ||
|
||
### Known Issues | ||
|
||
- Only works on Chromium and WebKit based browsers (Chrome, Edge, Brave, Safari, Opera, GNOME Web etc.) | ||
- When using the on-screen and/or the computer keyboard, if playing multiple notes, the synthesizer stops playing all notes if at least one note is released | ||
- Partials sections don't work | ||
|
||
# 0.2.4 | ||
|
||
### Changes | ||
|
||
- Computer keyboard playability | ||
- 16 notes playable (one octave + 4 notes) using keys (A-L and W-P) | ||
- Octave up/down (using Z,X keys) | ||
- Amplitude envelope section | ||
- Attack, decay, sustain, release bars | ||
- Attack, decay and release curves selection | ||
- Oscillator section | ||
- Oscillator type | ||
- Partial count | ||
- Partials | ||
- Modulation Section | ||
- Modulation type | ||
- Modulation partials count | ||
- Modulation partials | ||
- Modulation envelope | ||
- Modulation attack, decay, sustain, release bars | ||
- Modulation attack, decay and release curves selection | ||
- Complete HTML refactoring and reorganization | ||
- Version indicator in footer | ||
- SCSS reorganization | ||
- All section as modules | ||
- JavaScript code cleanup and reorganization | ||
- Added citation file | ||
- Readme file reorganization and expansion | ||
|
||
### Known Issues | ||
|
||
- Only works on Chromium and WebKit based browsers (Chrome, Edge, Brave, Safari, Opera, GNOME Web etc.) | ||
- When using the on-screen and/or the computer keyboard, if playing multiple notes, the synthesizer stops playing all notes if at least one note is released | ||
- Partials sections don't work | ||
|
||
# 0.0.1 | ||
|
||
The first version! | ||
|
||
### Features | ||
|
||
- Polyphonic FM synthesizer engine implementing Tone.js PolySynth and FMSynth | ||
- Oscilloscope | ||
- Spectrogram | ||
- Gain meter | ||
- MIDI keyboard connectivity (limited to 2nd device in the list) | ||
- MIDI note display | ||
- MIDI to note string function | ||
- On-screen keyboard | ||
- Sliding menu (empty) | ||
- Project logo | ||
- Dark mode button (not working) and dark mode preliminary work | ||
- Help button (not working) | ||
- Main panel with three sections, Synth, Modulation and Effects in different colors | ||
- 4 fully tweakable parameters in Synth section: Volume, Detune, Modulation Index, Harmonicity | ||
- Synth section hide/show function | ||
- 50 parameters implemented and analyzed with specified ranges in backend - not tweakable through the UI | ||
|
||
### Known Issues | ||
|
||
- Only works on Chromium and WebKit based browsers (Chrome, Edge, Brave, Safari, Opera, GNOME Web etc.) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
# This CITATION.cff file was generated with cffinit. | ||
# Visit https://bit.ly/cffinit to generate yours today! | ||
|
||
cff-version: 1.2.0 | ||
title: JSS-01 | JavaScript Software Synthesizer | ||
message: "If you use this software, please cite it as below." | ||
type: software | ||
authors: | ||
- given-names: Michael | ||
family-names: Kolesidis | ||
email: michael.kolesidis@gmail.com | ||
orcid: "https://orcid.org/0000-0002-2662-4677" | ||
repository: >- | ||
https://github.com/michaelkolesidis/javascript-software-synthesizer | ||
abstract: >- | ||
The JSS-01 | JavaScript Software Synthesizer is a | ||
software synthesizer enabling users to make, play, | ||
and record music in the browser. | ||
keywords: | ||
- synthesizer | ||
- software synthesizer | ||
- sound synthesis | ||
- frequency modulation | ||
- FM synthesizer | ||
- synth | ||
- MIDI | ||
- music | ||
- sound | ||
- sound processing | ||
- MIDI keyboard | ||
|
||
license: GNU Affero General Public License v3.0 | ||
version: 2.0.3 | ||
date-released: "2022-07-08" |
Oops, something went wrong.