I decided to start a new version of this project at DawTools but everything here still works.
The initial aim is to provide PyQt/PySide widgets to aid on daw type projects.
The project is build using PySide but can easly be ported to PyQt by editing main.py imports.
Current Versions and dependencies
- Python Version 3.9
- PySide Version 6.1.2
Download and add daw_tools directory to your python project, then:
import daw_tools
piano = daw_tools.Piano()
All the files in the top level folder are examples of how to use the already finished widgets.
At the moment each file in the daw-tools folder has an embeded example for development ease, this makes the library quite big in size and it will be removed as the library matures and the examples are all moved to the top level folder.
A piano widget to integrate in piano rolls, instruments, etc
- Custom ScrollBar and Zoom Slider for easy integration with other widgets
- Set a scale and all keys not in scale will be locked
- Easily set hovered, pressed and locked color
- Display notes as sharps (#) or flats (b)
- Lock/UnLock single key or key range
- Horizontal and Vertical orientation
- Black or white keyboard
- Note tool tips
- And more...
- Piano Roll
- Envelope with curves
- Timeline
- Transpose
- Mixer Channel
- Mixer
- Step Sequencer
I've been producing/composing/mixing music for over 20 years and programming for 10.
I decided to move forward with a little project I long been dreaming of for music composition and came across seq-gui. I found seq-gui very interesting and decided to fork it as it had not been updated for 7 years.
The industry standard for building audio applications seems to be JUCE at the moment. But JUCE uses C++, a language that makes me physically ill just looking at it :D
Considering my idea does not need all the intricacies that JUCE offers, I'm going with python. So all the widgets in daw-tools will be applied in a real world application. This means I will keep updating this project as I find bugs when implementing.
At the moment it's still in early development so I've just been updating improovements where I see fit with no branches or version control but as soon as the GRID dependent widgets are finished, version control will start.
You are welcome to participate in this project!