﻿=== LiteWebSynth ===
Contributors: adminkov
Tags: audio, music, midi, synth, soundfont
Requires at least: 6.0
Requires PHP: 8.0
Tested up to: 7.0
Stable tag: 1.1.2
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Initiation:	Dedicated to brother Igor Klenitsky

Web synthesizer with a MIDI keyboard. Created using artificial intelligence.

== Description ==

LiteWebSynth is a synthesizer with GM|GS|XG instrument sound fonts. The sequencer processes MIDI files of two types: 0 and 1. All timbres  GM are generated by a combination of an oscillators and a dynamically generated BufferSource. Some synthesizer audio nodes have controls located on the front panel. The built-in oscilloscope displays the actual shape of the resulting synthesizer signal, the shape of the AHDSR envelope from the Timbre Editor GM table, and the current RAM usage of the user's local computer. The Timbre Editor GM allows you to customize sound parameters. The Diagram GM|GS|XG shows the current configuration of the synthesizer's audio nodes. LiteWebSynth plugin built with AI assistance.
p.s.: As a result of experiments, I came to the conclusion that when creating a .mid file, the PPQN parameter should be a multiple of 4.

For the end user: There is a small Help section located under: Sequencer/Help.

You can test this plugin on its https://adminkov.bcr.by/midi/

You can send a letter to the developer at: klenitskiy.oleg@mail.ru

== Installation ==

1. Upload the plugin to the `/wp-content/plugins/` directory.
2. Activate the plugin through the 'Plugins' menu in WordPress.
3. Use the `[LiteWebSynth]` shortcode in posts or pages.

== External Services ==

This plugin integrates with third-party services to provide advanced audio processing and conversion features. Data is transmitted to these external servers only when the user explicitly triggers the respective functionality.

This plugin integrates with third-party services to provide advanced audio processing, conversion, and recognition features. Data is transmitted to external servers or handled locally based on the specific functionality triggered by the user.

1. API2Convert
* Purpose: Converts MIDI files into various audio formats.
* Data transmitted: The source MIDI file and the user's custom API key.
* Trigger: Data is sent to the external server only when the user explicitly clicks the "Export" button.
* Service Provider: API2Convert (https://api2convert.com)
* Terms of Service: https://online-convert.com/terms
* Privacy Policy: https://online-convert.com/privacy

2. TensorFlow (Local AI Processing)
* Purpose: Converts WAV/MP3 audio files into MIDI format using machine learning models.
* Data transmitted: None. The audio file is processed locally in the user's browser via the TensorFlow library. No media files are uploaded to external servers.
* External Resource: The TensorFlow core JavaScript library is loaded from Cloudflare CDN.
* Terms of Service: https://developers.google.com/terms/site-policies
* Open Source License: https://www.apache.org/licenses/LICENSE-2.0

3. Spotify Audio Intelligence Lab (Basic Pitch)
* Purpose: Provides the core machine learning models to convert WAV/MP3 audio files into MIDI format.
* Data transmitted: None. The AI models (model.json and weights) are hosted locally within the plugin directory and executed entirely in the user's browser. No data is shared with Spotify servers.
* Open Source Project: https://github.com/spotify/basic-pitch
* Open Source License: https://www.apache.org/licenses/LICENSE-2.0

== Screenshots ==

1. Synthesizer Voices Editor interface for fine-tuning sound parameters.
2. Web Audio API nodes diagram showing the internal audio routing and synthesis graph.
3. Built-in multi-track Sequencer for managing and playing back MIDI files.

== Changelog ==

= 1.1.0 =

* Added conversion of MIDI to audio formats (MP4, WAV, WMA, M4A, AAC, FLAC).

= 1.1.1 =

* Improved loading of test MIDI files into the synthesizer.

= 1.1.2 =

* Added a new service - converting WAV/MP3 files to MIDI.

== Frequently Asked Questions ==
