Skip to content

Commit

Permalink
v.1.2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelkolesidis committed Jun 30, 2023
1 parent 6a9e657 commit b334eb5
Show file tree
Hide file tree
Showing 69 changed files with 306 additions and 1,566 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# JSS-01 |JavaScript Software Synthesizer
# Copyright (c) 2023 Michael Kolesidis
# Copyright (c) 2023 Michael Kolesidis <[email protected]>
# GNU Affero General Public License v3.0

# dependencies
Expand Down
24 changes: 19 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
# 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
Expand Down Expand Up @@ -55,7 +69,7 @@
- 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 detoriation: the app becomes unresponsive and crushes
- 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
Expand All @@ -72,7 +86,7 @@
- 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 detoriation: the app becomes unresponsive and crushes
- Opening the Dev Tools in Chrome results to severe performance deterioration: the app becomes unresponsive and crushes
- Severe performance issues on Firefox

# 0.5
Expand All @@ -91,7 +105,7 @@
- Distortion
- Bit crusher
- Frequency shifter
- Chebyshev waveshapping
- Chebyshev waveshaping
- Responsive effects section
- Synthesizer engine refactoring
- Synthesizer effects connectivity
Expand Down Expand Up @@ -135,8 +149,8 @@

### Changes

- Computer keyboard playbility
- 16 notes playble (one octave + 4 notes) using keys (A-L and W-P)
- 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
Expand Down
2 changes: 1 addition & 1 deletion CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,5 @@ keywords:
- MIDI keyboard

license: GNU Affero General Public License v3.0
version: 1.0.6
version: 1.2.0
date-released: "2022-07-08"
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

[![made-with-typescript](https://img.shields.io/badge/Made%20with-TypeScript-01004c.svg)](https://developer.mozilla.org/en-US/docs/Web/JavaScript)
[![MIT license](https://img.shields.io/badge/License-AGPLv3-01004c.svg)](https://www.gnu.org/licenses/agpl-3.0.html)
[![Version](https://img.shields.io/badge/version-1.0.6-01004c.svg)](https://shields.io/)
[![Version](https://img.shields.io/badge/version-1.2.0-01004c.svg)](https://shields.io/)
[![Netlify Status](https://api.netlify.com/api/v1/badges/93c42090-6fc9-4c3d-a462-42b535ea9d15/deploy-status)](https://app.netlify.com/sites/javascript-software-synthesizer/deploys)

## Technologies Used
Expand Down Expand Up @@ -111,9 +111,9 @@ In order to use your [MIDI keyboard](https://en.wikipedia.org/wiki/MIDI_keyboard
<img width="900px" src="./screenshots/elements/sequencer.png">
Right above the on-screen keyboard you can find the Sequencer. There is an included sequence preinstalled, so you can just press the <strong>Play button</strong> and listen to it. <br><br>

The first input from the left controls the rate of the sequence (speed). The second input is the base value of the notes of the sequence (16n stands for a 16th note value, 8n for an 8th and so on). You can input your own sequences in the main input by writing the sequence of the desired notes in this form: <strong>"C4", "F5", "D2"\*\*</strong>. You can include parts with notes of half the base value by including them in brackets, ex. <strong>"C4", ["F5", "D2"]</strong>. In this examples, if the base value is 16n (16th notes), C4 will have a value of 16th, and each of the F5 and D2 will have a value of 32th (or a value of a 16th combined).
The first input from the left controls the rate of the sequence (speed). The second input is the base value of the notes of the sequence (16n stands for a 16th note value, 8n for an 8th and so on). You can input your own sequences in the main input by writing the sequence of the desired notes in this form: <strong>"C4", "F5", "D2"\*\*</strong>. You can include parts with notes of half the base value by including them in brackets, ex. <strong>"C4", ["F5", "D2"]</strong>. In these examples, if the base value is 16n (16th notes), C4 will have a value of 16th, and each of the F5 and D2 will have a value of 32th (or a value of a 16th combined).

When your sequence is ready, you can add it to the sequencer using the <strong>Add button</strong>. In order to go back to the default sequence, you can simply write <strong>default</strong> in the sequence input field and then click the Add button. There are two extra sequences included, the bassline of "I Feel Love" by Donna Summer (peoduced by Giorgio Moroder), which can be accessed by writing <strong>i feel love</strong> in the sequence input field and then pressing the add button, and the riff of "Funky Town", that can be accessed by writing <strong>funky town</strong>.
When your sequence is ready, you can add it to the sequencer using the <strong>Add button</strong>. In order to go back to the default sequence, you can simply write <strong>default</strong> in the sequence input field and then click the Add button. There are two extra sequences included, the bassline of "I Feel Love" by Donna Summer (produced by Giorgio Moroder), which can be accessed by writing <strong>i feel love</strong> in the sequence input field and then pressing the add button, and the riff of "Funky Town", that can be accessed by writing <strong>funky town</strong>.

You can find some additional information about the JSS-01 and sound synthesis in this short [presentation](./assets/presentation/JSS%20Presentation.pdf).

Expand Down Expand Up @@ -154,8 +154,8 @@ The JSS-01 is using FM synthesis implementing the FMSynth of Tone.js, While ther

## Contributing

Feel free to submit issues and pull requests. It would be great to create a community around JSS-01, to contiue its development and evolution, making it more capable and easier to use, increasing its creative and artistic potential.
If you are interested in becoming part of out community it would be useful to have a look to our dedicated document regarding [Contributing](https://github.com/michaelkolesidis/javascript-software-synthesizer/blob/main/CONTRIBUTING.md), as well as, out [Code of Conduct](https://github.com/michaelkolesidis/javascript-software-synthesizer/blob/main/CODE_OF_CONDUCT.md). It a nutshell, we want our community to be a safe space for everyone, so that we can all have a pleasant and joyful experience!
Feel free to submit issues and pull requests. It would be great to create a community around JSS-01, to continue its development and evolution, making it more capable and easier to use, increasing its creative and artistic potential.
If you are interested in becoming part of out community it would be useful to have a look to our dedicated document regarding [Contributing](https://github.com/michaelkolesidis/javascript-software-synthesizer/blob/main/CONTRIBUTING.md), as well as, out [Code of Conduct](https://github.com/michaelkolesidis/javascript-software-synthesizer/blob/main/CODE_OF_CONDUCT.md). In a nutshell, we want our community to be a safe space for everyone, so that we can all have a pleasant and joyful experience!

## Changelog

Expand Down Expand Up @@ -222,12 +222,12 @@ None, yet! We will have to add way more features for that.

## Contributors

- [Michael Kolesidis](ttps://github.com/michaelkolesidis)
- [Michael Kolesidis](https://github.com/michaelkolesidis)
- [Chris Strawser](https://github.com/mcochris)
- [Margarita Marmaridou](https://github.com/mamarmar)
- [Omar Shehata](https://github.com/OmarShehata)

You name could be here and it would be great to have you aboard!
Your name could be here and it would be great to have you aboard!

## Other

Expand Down
6 changes: 3 additions & 3 deletions REFERENCES.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# References

As developers, a significant proportion of our time is browsing through online developer communities, trying to find solutions to smaller of bigger problems we face, as well as offering our help when we can. This document is an attempt to include (most of) the sources of the chunks of code that were found elsewhere, adapted for, and implemented in this project.
As developers, a significant proportion of our time is browsing through online developer communities, trying to find solutions to smaller or bigger problems we face, as well as offering our help when we can. This document is an attempt to include (most of) the sources of the chunks of code that were found elsewhere, adapted for, and implemented in this project.

This will be of tremendous help, both for contributors, who will be able to understand the code better, and for other developers who just liked something from the project and would like to implement it their projects.
This will be of tremendous help, both for contributors, who will be able to understand the code better, and for other developers who just liked something from the project and would like to implement it in their projects.

Tha main third-party source of code for the project is the documentation of the Tone.js, NexusUI and WEBMIDI.js projects, and this is where anyone wishing to implement the project's core functionality should look at first.

Expand All @@ -13,4 +13,4 @@ Tha main third-party source of code for the project is the documentation of the
- [Sliding menu](https://codepen.io/dannievinther/pen/NvZjvz?editors=1100) by [Dannie Vinther](https://github.com/dannievinther)
- [Changing keyboard key colors](https://github.com/nexus-js/ui/issues/69) (used for dark mode) by [Ben Taylor](https://github.com/taylorbf)
- [Footer always at the bottom](https://www.freecodecamp.org/news/how-to-keep-your-footer-where-it-belongs-59c6aa05c59c/) by [Dominic Fraser](https://github.com/dominicfraser)
- [Computer keyboard keyup and keydown event listeners](https://dev.to/je_we/building-a-simple-piano-with-tone-js-and-nexusui-part-1-415c) by Je We
- [Computer keyboard _keyup_ and _keydown_ event listeners](https://dev.to/je_we/building-a-simple-piano-with-tone-js-and-nexusui-part-1-415c) by Je We
9 changes: 1 addition & 8 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,5 @@
# JavaScript Software Synthesizer Security Policy

## Supported Versions

| Version | Supported |
| ------- | ------------------ |
| 1.0.6 | :white_check_mark: |
| < 1.0.6 | :x: |

## Reporting a Vulnerability

In case of finding a vulnerabiity, please open an issue. If the vulnerability is related to Tone.js or any other library used, please contact the respective authors.
In case of finding a vulnerabiity, please open an issue. If the vulnerability is related to Tone.js or any other library used, please contact the respective authors as well.
Binary file modified assets/fm.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit b334eb5

Please sign in to comment.