Skip to content

Commit

Permalink
added files
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelkolesidis committed Nov 15, 2023
0 parents commit ae9e2a0
Show file tree
Hide file tree
Showing 87 changed files with 7,009 additions and 0 deletions.
6 changes: 6 additions & 0 deletions .eslintrc.cjs
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" },
};
40 changes: 40 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
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.
19 changes: 19 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
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.
12 changes: 12 additions & 0 deletions .github/pull_request_template.md
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!
28 changes: 28 additions & 0 deletions .gitignore
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?
234 changes: 234 additions & 0 deletions CHANGELOG.md
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.)
34 changes: 34 additions & 0 deletions CITATION.cff
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"
Loading

0 comments on commit ae9e2a0

Please sign in to comment.