Skip to content

Commit ae9e2a0

Browse files
added files
0 parents  commit ae9e2a0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+7009
-0
lines changed

.eslintrc.cjs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
module.exports = {
2+
env: { browser: true, es2020: true },
3+
extends: ["eslint:recommended", "plugin:@typescript-eslint/recommended"],
4+
parser: "@typescript-eslint/parser",
5+
parserOptions: { ecmaVersion: "latest", sourceType: "module" },
6+
};
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
title: ""
5+
labels: ""
6+
assignees: ""
7+
---
8+
9+
**Describe the bug**
10+
A clear and concise description of what the bug is.
11+
12+
**To Reproduce**
13+
Steps to reproduce the behavior:
14+
15+
1. Go to '...'
16+
2. Click on '....'
17+
3. Scroll down to '....'
18+
4. See error
19+
20+
**Expected behavior**
21+
A clear and concise description of what you expected to happen.
22+
23+
**Screenshots**
24+
If applicable, add screenshots to help explain your problem.
25+
26+
**Desktop (please complete the following information):**
27+
28+
- OS: [e.g. iOS]
29+
- Browser [e.g. chrome, safari]
30+
- Version [e.g. 22]
31+
32+
**Smartphone (please complete the following information):**
33+
34+
- Device: [e.g. iPhone6]
35+
- OS: [e.g. iOS8.1]
36+
- Browser [e.g. stock browser, safari]
37+
- Version [e.g. 22]
38+
39+
**Additional context**
40+
Add any other context about the problem here.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea for this project
4+
title: ""
5+
labels: ""
6+
assignees: ""
7+
---
8+
9+
**Is your feature request related to a problem? Please describe.**
10+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
11+
12+
**Describe the solution you'd like**
13+
A clear and concise description of what you want to happen.
14+
15+
**Describe alternatives you've considered**
16+
A clear and concise description of any alternative solutions or features you've considered.
17+
18+
**Additional context**
19+
Add any other context or screenshots about the feature request here.

.github/pull_request_template.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
## Describe your changes
2+
3+
## Issue ticket number and link
4+
5+
## Checklist before requesting a review
6+
7+
- [ ] I have performed a self-review of my code
8+
- [ ] If it is a core feature, I have added thorough tests.
9+
- [ ] Do we need to implement analytics?
10+
- [ ] Will this be part of a product update? If yes, please write one phrase about this update.
11+
12+
Thanks for contributing to JSS-01 | JavaScript Software Synthesizer!

.gitignore

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# JSS-01 |JavaScript Software Synthesizer
2+
# Copyright (c) 2023 Michael Kolesidis <michael.kolesidis@gmail.com>
3+
# GNU Affero General Public License v3.0
4+
5+
# Logs
6+
logs
7+
*.log
8+
npm-debug.log*
9+
yarn-debug.log*
10+
yarn-error.log*
11+
pnpm-debug.log*
12+
lerna-debug.log*
13+
14+
node_modules
15+
dist
16+
dist-ssr
17+
*.local
18+
19+
# Editor directories and files
20+
.vscode/*
21+
!.vscode/extensions.json
22+
.idea
23+
.DS_Store
24+
*.suo
25+
*.ntvs*
26+
*.njsproj
27+
*.sln
28+
*.sw?

CHANGELOG.md

Lines changed: 234 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,234 @@
1+
# 2.0.3
2+
3+
### Changes
4+
5+
- Updated instructions for building and running locally
6+
7+
# 2.0.2
8+
9+
### Changes
10+
11+
- Migration to Vercel
12+
13+
# 2.0.1
14+
15+
### Changes
16+
17+
- Fixed readme images path
18+
19+
# 2.0.0
20+
21+
### Changes
22+
23+
- Vite migration
24+
- Refactoring
25+
- Code cleanup
26+
27+
# 1.2.0
28+
29+
### Changes
30+
31+
- Fixed computer keyboard playability (language-independent)
32+
- Rewritten keyMapper and midiToNoteString in a concise and optimal way
33+
- Added checks for TypeScript
34+
- Optimized the size of all PNG and SVG images
35+
- Code cleanup
36+
- Updated all dependencies to their latest versions
37+
- Fixed typos in all readme files
38+
- Minor documentation updates
39+
- Minor updates and corrections
40+
41+
# 1.0.6
42+
43+
### Changes
44+
45+
- Updated Tone.js to latest version
46+
- Updated all dependencies to their latest versions
47+
- Using yarn.lock in instead of package-lock
48+
- Updated logo files
49+
- Changed TypeScript target language to ES2021
50+
- Readme update and restructuring
51+
- Minor documentation updates
52+
- Added Security Policy
53+
54+
# 1.0.1
55+
56+
### Changes
57+
58+
- Switched to GNU Affero General Public License v3.0
59+
60+
# 1.0.0
61+
62+
### Changes
63+
64+
- Migration to TypeScript
65+
66+
# 0.7.0
67+
68+
### Changes
69+
70+
- Dark Mode (inverted colors)
71+
72+
# 0.6.2
73+
74+
### Changes
75+
76+
- Updated all components to the new license
77+
- Code cleanup
78+
79+
# 0.6.1
80+
81+
### Changes
82+
83+
- Converted a significant part of the codebase to TypeScript
84+
- License changed to GNU Affero General Public License v3.0
85+
- Minor UI fixes
86+
87+
# 0.5.4
88+
89+
### Changes
90+
91+
- MIDI input device selectable
92+
93+
### Known Issues
94+
95+
- 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
96+
- Partials sections don't work
97+
- High CPU load and performance issues
98+
- Opening the Dev Tools in Chrome results to severe performance deterioration: the app becomes unresponsive and crushes
99+
- Severe performance issues on Firefox
100+
101+
# 0.5.3
102+
103+
### Changes
104+
105+
- Quick Start menu
106+
- Removal of p5.js animated background for better performance
107+
- Styling
108+
- Quick Start documentation
109+
110+
### Known Issues
111+
112+
- 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
113+
- Partials sections don't work
114+
- High CPU load and performance issues
115+
- Opening the Dev Tools in Chrome results to severe performance deterioration: the app becomes unresponsive and crushes
116+
- Severe performance issues on Firefox
117+
118+
# 0.5
119+
120+
### Changes
121+
122+
- Effects
123+
- Auto filter
124+
- Chorus
125+
- Phaser
126+
- Feedback delay
127+
- Ping pong delay
128+
- Tremolo
129+
- Vibrato
130+
- Reverb
131+
- Distortion
132+
- Bit crusher
133+
- Frequency shifter
134+
- Chebyshev waveshaping
135+
- Responsive effects section
136+
- Synthesizer engine refactoring
137+
- Synthesizer effects connectivity
138+
- Splash screen
139+
- Background animation
140+
- Dark mode / help mode buttons removal
141+
- 1 extra sequence example (I Feel Love)
142+
- Styling
143+
- Code cleanup
144+
- All elements as JavaScript modules
145+
146+
### Known Issues
147+
148+
- Only works on Chromium and WebKit based browsers (Chrome, Edge, Brave, Safari, Opera, GNOME Web etc.)
149+
- 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
150+
- Partials sections don't work
151+
- High CPU load
152+
153+
# 0.2.5
154+
155+
### Changes
156+
157+
- Sequencer
158+
- Note sequence input
159+
- Tempo
160+
- Note value
161+
- Set sequence button
162+
- Play button
163+
- Stop button
164+
- 2 sequence examples (default and Funky Town)
165+
- Styling
166+
- Code cleanup
167+
168+
### Known Issues
169+
170+
- Only works on Chromium and WebKit based browsers (Chrome, Edge, Brave, Safari, Opera, GNOME Web etc.)
171+
- 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
172+
- Partials sections don't work
173+
174+
# 0.2.4
175+
176+
### Changes
177+
178+
- Computer keyboard playability
179+
- 16 notes playable (one octave + 4 notes) using keys (A-L and W-P)
180+
- Octave up/down (using Z,X keys)
181+
- Amplitude envelope section
182+
- Attack, decay, sustain, release bars
183+
- Attack, decay and release curves selection
184+
- Oscillator section
185+
- Oscillator type
186+
- Partial count
187+
- Partials
188+
- Modulation Section
189+
- Modulation type
190+
- Modulation partials count
191+
- Modulation partials
192+
- Modulation envelope
193+
- Modulation attack, decay, sustain, release bars
194+
- Modulation attack, decay and release curves selection
195+
- Complete HTML refactoring and reorganization
196+
- Version indicator in footer
197+
- SCSS reorganization
198+
- All section as modules
199+
- JavaScript code cleanup and reorganization
200+
- Added citation file
201+
- Readme file reorganization and expansion
202+
203+
### Known Issues
204+
205+
- Only works on Chromium and WebKit based browsers (Chrome, Edge, Brave, Safari, Opera, GNOME Web etc.)
206+
- 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
207+
- Partials sections don't work
208+
209+
# 0.0.1
210+
211+
The first version!
212+
213+
### Features
214+
215+
- Polyphonic FM synthesizer engine implementing Tone.js PolySynth and FMSynth
216+
- Oscilloscope
217+
- Spectrogram
218+
- Gain meter
219+
- MIDI keyboard connectivity (limited to 2nd device in the list)
220+
- MIDI note display
221+
- MIDI to note string function
222+
- On-screen keyboard
223+
- Sliding menu (empty)
224+
- Project logo
225+
- Dark mode button (not working) and dark mode preliminary work
226+
- Help button (not working)
227+
- Main panel with three sections, Synth, Modulation and Effects in different colors
228+
- 4 fully tweakable parameters in Synth section: Volume, Detune, Modulation Index, Harmonicity
229+
- Synth section hide/show function
230+
- 50 parameters implemented and analyzed with specified ranges in backend - not tweakable through the UI
231+
232+
### Known Issues
233+
234+
- Only works on Chromium and WebKit based browsers (Chrome, Edge, Brave, Safari, Opera, GNOME Web etc.)

CITATION.cff

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# This CITATION.cff file was generated with cffinit.
2+
# Visit https://bit.ly/cffinit to generate yours today!
3+
4+
cff-version: 1.2.0
5+
title: JSS-01 | JavaScript Software Synthesizer
6+
message: "If you use this software, please cite it as below."
7+
type: software
8+
authors:
9+
- given-names: Michael
10+
family-names: Kolesidis
11+
email: michael.kolesidis@gmail.com
12+
orcid: "https://orcid.org/0000-0002-2662-4677"
13+
repository: >-
14+
https://github.com/michaelkolesidis/javascript-software-synthesizer
15+
abstract: >-
16+
The JSS-01 | JavaScript Software Synthesizer is a
17+
software synthesizer enabling users to make, play,
18+
and record music in the browser.
19+
keywords:
20+
- synthesizer
21+
- software synthesizer
22+
- sound synthesis
23+
- frequency modulation
24+
- FM synthesizer
25+
- synth
26+
- MIDI
27+
- music
28+
- sound
29+
- sound processing
30+
- MIDI keyboard
31+
32+
license: GNU Affero General Public License v3.0
33+
version: 2.0.3
34+
date-released: "2022-07-08"

0 commit comments

Comments
 (0)