top of page

3.0.0

Changelog: 
- Changing the Record Management Method
- Adding a Drum Rack

- Adding a microphone record utility
- Modification of shortcuts
- Name and icon change: USLEM (Music Synthesis, Playback and Recording Utility) to ZINC (ZINC Is Not Complicated)
- Creation of a dedicated website

2.0.0

Changelog
- Possibility to use an external midi keyboard
- Added many different instruments in keyboard mode
- Changing some orders
- Fixed many bugs leading to crashes
- Addition of a user manual
- Do not change the name before saving no longer overwrites the previous record and creates a new one with a number.

Planned changes :
- Addition of a drum rack
- Midi input update function

1.0.0

Changelog:
- Changing the background color of the main interface
- Keyboard recording functionality operational
- Drastic performance improvement: reduction of processor usage by keyboard modules from 30-40% to 5-7% (Reference Processor: AMD Ryzen 3500U non-OC)

Planned changes :
- Addition of modules to change the instrument used (creation of standard libraries)
- On-screen display of the key pressed when in keyboard mode
- Creation of a manual** and a dedicated website***
Press the V key to start recording. Failure to do so will cause the program to close.
** The manual will be available with the next version
*** The site will be done after the manual and will arrive in a still undetermined time frame

0.2.1

The library used to generate the sounds has been modified to remove two major problems: latency on the one hand, and the limit of sounds played simultaneously on the other hand.
Also, the bug that caused the main interface to close when the pygame interface is closed has been fixed, leaving a clean program.

0.2.0

The first universal .exe version is ready for use. The keyboard is now linked to the GUI. Due to a pygame limitation on the number of simultaneously playable tracks, a new module will be used for sound synthesis. Also, recording is now the priority and will be the next feature to be added. Bug fixes will be done in parallel, especially on untimely closing bugs.

0.1.0_c

The sounds and the associated tree structure have been revised to reduce the overall size (170 --> 70 MB in compressed), as well as the complexity. The keyboard script receives its final keys and will be added to the basic program in the coming week, allowing to use the keyboard or the mouse with a simple click on a button (Both modes cannot be used simultaneously).
The record/playback functions are also under development and will be added in the future (A .mid recording library has been found and will be used to export recordings).

NB: The exit button finally works!

0.1.0_b

Now that a basic graphical user interface is operational, we are concentrating our efforts on mapping the keyboard and the different possibilities to produce a different sound according to a specific combination of keys pressed, simultaneously or not.
Similarly, the functionality for recording and replaying series of notes is under study, and will be the subject of further development once the mapping is complete.

0.1.0

The graphical interface is in place, and the keys, when clicked, play a sound. 7 octaves are represented.
To change the instrument, just replace the .aiff files by aiff files following the same code for the name: NoteOctave.aiff
Alternatively, you can edit the note dictionary, and replace names and paths as you see fit.

0.0.2

The GUI library has been revised for a better result and simpler construction. Similarly, the links between the physical keyboard and the playback of a sound will be made.
The "Test.zip" file shows the basic operation of the link between pressing a visual button and an action, while the "UI.zip" file is a preview of what the GUI will look like.
NB: The PyQt5 and pygame libraries are necessary for the error-free execution of both programs.

0.0.1

Running the "piano.py" file will, with the help of the Pygame and Tkinter library, open a window displaying a piano keyboard over an octave. Clicking on a key plays the associated note.

bottom of page