digital audio workstation, instrument and effect plugins, wave editor

Overview

Stargate

Stargate is a holistic audio production solution, everything you need to make music on a computer. To understand what Stargate is, and why, read the project design principles.

Links

Features

  • A digital audio workstation (DAW) with a powerful pattern-based workflow
  • A comprehensive suite of built-in instrument and effect plugins
  • A basic wave editor
  • Broad audio and MIDI hardware support using Portaudio and Portmidi
  • Runs on Windows and Linux, x86 and ARM. Will be ported to Mac OS X (and any other platform) if there is sufficient demand
  • Everything you need to create music in a single package, no need to install additional software
  • Revolutionary CPU efficiency for DAW and plugins, minimum recommended hardware: Raspberry Pi 4, or a 15 year old laptop with a dual core CPU, 1GB of RAM and a 720p display.
  • Support for display resolution from 720p to 4k and above.
  • Optional portable flash drive install on Windows

Building

See the building instructions

Screenshots

Sequencer

Audio Item

Note Item

Plugins

Routing

Licensing

Stargate is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, under version 3 of the License.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

For details on the GNU General Public License, see the license.

Comments
  • More standardized, internetless build and better build instructions

    More standardized, internetless build and better build instructions

    Hello,

    I am a packager on openSUSE and wanted to make a package for stargate. Builds on OBS (Open Build Service, the build system used by openSUSE) happen in a virtual machine unconnected to the Internet so the fact that make tries to download some packages from PyPi is problematic.

    I tried building stargate via the make command but it tried to run pip and install some packages from the Internet, which as I said is not allowed on OBS.

    Nevertheless, I proceeded with the build on my local system. It compiled correctly and make install worked but the stargate executable failed twice - first when mido was missing, second (after having installed mido) when sglib was missing. I had manually run python3 setup.py install --user to install the Python package in the src directory but that apparently did not provide sglib.

    My suggestions:

    • Indicate all dependencies at both build-time and runtime (like portaudio, portmidi, pymarshal, wavefile, mido) in the build instructions
    • Make sure that make does not connect to the Internet, especially if Python dependencies are found on the system
    • Make sure that make install installs everything needed to run stargate, including the Python package containing sglib which should respect the distro's hierarchy (openSUSE also uses lib64, see #14). Also, make install tried to execute the (non-existing on my system) /mingw64/bin/jq program (if it's the jq program for querying JSON, I have it installed in /usr/bin/jq)
    opened by fpesari 26
  • make install doesn't install sglib in /usr/lib*/python*/site-package

    make install doesn't install sglib in /usr/lib*/python*/site-package

    I build stargate on Fedora 33 64 bits from the release downloaded on github. make build works fine make PREFIX=/opt/stargate install doesn't install sglib (and maybe other python libs) into /opt/stargate/lib* (lib64 on 64 bits linux).

    opened by ycollet 6
  • Strange saving of recorded samples (Win10)

    Strange saving of recorded samples (Win10)

    Hello, I decided to try and test this new DAW (on Win10 currently).

    First I have tried sample recording. It is actually worked, but it saved sample (from microphone) in a bit strange way. The file actually appeared in two locations.

    First one in the audio/rec in project's directory, C:\Users\DreadDendy\stargate\projects\testProject\audio\rec\test_sample-1-1.wav

    The path to the second one is really weird. Seems like it once again used path to project's directory, C:\Users\DreadDendy\stargate\projects\testProject\audio\samples\C\Users\DreadDendy\stargate\projects\testProject\audio\rec\test_sample-1-1.wav

    opened by DreadDendy 4
  • Both the deb files have dependency issues

    Both the deb files have dependency issues

    Hi there. I'm using Pop OS which is base on Ubuntu 20.04. But for whatever reason, there are dependency issues. Could you please look into this? And if it's not fixable, could you please put out a flatpak? That might actually be a better solution than having to package rpm and deb files each time there's a new release. And btw. Please provide better documentation for source compiling. I tried compiling from source, but there's no cmake, and using "make" gave me "error 2".

    EDIT: The problem dependencies seem to be fftw3, python3-pyqt6.qtsvg, python3-pyqt6. None of them exist.

    opened by CHJ85 4
  • Hang after creating new session with

    Hang after creating new session with "already running with pid ..." message

    Describe the bug After starting stargate and choosing "New", a dialogue appears in front of the splash screen claiming: "Detected: Stargate is already running with pid ...". There is only one instance running: the one that's just been started, but at this point, it's hung. "OK" in the dialogue does nothing. The project directory has been created, but it is empty.

    This occurs with current git main branch: I don't know whether it has ever worked in the past.

    To Reproduce In the Stargate source directory, run scripts/stargate, and click the "New" button.

    Expected behavior A new session should be rreated.

    Screenshots image

    Hardware and operating system CPU: Intel Core i9 Memory: 16GB Form factor: laptop CPU arch: x86_64 debian "bullseye", kernel 5.10.0-9-amd64, xfce 4.16

    opened by colin-m-fletcher 4
  • Restore PR #20 as the build error is now fixed

    Restore PR #20 as the build error is now fixed

    The commit 85c3f51b74ef1c8f7c91fd7b5b1fade911e770b8 ("Allow building and installing without any vendored dependencies") resulted in Makefile's py_vendor target failing when one of pip install exited with an error. However, pip install was already returning errors. The target all depended on py_vendor, and this ended up failing the build.

    The commit c93792e3cefe53507a387e0f6102e79676e568e3 ("Makefile: More modular targets") removed the py_vendor as build dependency. Now the automated build is working again.

    opened by psqli 3
  • Linux: Random popup window positions on Wayland

    Linux: Random popup window positions on Wayland

    This is a feature of Wayland.

    I implemented the workaround for this, but at some point it stopped working in Qt5, but it still works in Qt6. The only thing preventing me from migrating fully to PyQt6 is that most Linux distros are not packaging it yet.

    As a workaround, you can run this command, and Stargate will automatically find it and do the right thing:

    pip install PyQt6
    
    opened by ghost 3
  • Running on arm64 (Pinebook Pro)

    Running on arm64 (Pinebook Pro)

    The program does not run when built on a Pinebook Pro. There are a variety of possible causes: it could be a lack of support and/or testing, a missing dependency I could not find, or something else, and I am not knowledgeable enough to figure out which it is. The program appears to build successfully, even when some dependencies were missing. However, when I try to run it, it gives an error regarding pyqt5 (more information in log file). When I tried to use the Fedora script to find out what packages I needed to install, I installed as many of the dependencies as I could find in the Arch Linux ARM repository, but the same issue occurred. If this is a support issue, I would greatly appreciate if arm64 became a supported platform for Stargate. Pine64 devices are pitifully weak but portable and efficient Linux machines, and I think Stargate would be a perfect fit for them (if it wouldn't be too much trouble to maintain).

    Log file (attempt to call the binary stargate first, then the script):

    [2021-09-29 22:46:35,734] INFO /usr/local/bin/stargate       : 52 - sys.argv == ['/usr/local/bin/stargate']
    [2021-09-29 22:46:35,754] INFO /usr/local/lib/stargate/stargate/sgui/sgqt.py: 19 - Using PyQt5
    [2021-09-29 22:46:35,779] ERROR /usr/local/lib/stargate/stargate/sglib/log.py: 62 - Traceback (most recent call last):
    
      File "/usr/local/bin/stargate", line 88, in main
        start_stargate(args.project_file)
    
      File "/usr/local/bin/stargate", line 50, in start_stargate
        from sglib.log import LOG, setup_logging
    
    ModuleNotFoundError: No module named 'sglib'
    
    
    During handling of the above exception, another exception occurred:
    
    
    Traceback (most recent call last):
    
      File "/usr/local/bin/stargate", line 107, in <module>
        main()
    
      File "/usr/local/bin/stargate", line 104, in main
        start_stargate(args.project_file)
    
      File "/usr/local/bin/stargate", line 53, in start_stargate
        from sgui.sgqt import QApplication, QGuiApplication, QtCore
    
      File "/usr/local/lib/stargate/stargate/sgui/sgqt.py", line 21, in <module>
        from PyQt5 import QtGui, QtWidgets, QtCore
    
    ImportError: /usr/lib/python3.9/site-packages/PyQt5/QtGui.abi3.so: undefined symbol: _ZTI18QOpenGLTimeMonitor, version Qt_5
    
    [2021-09-29 22:47:34,457] INFO /home/axel/git/stargate/src/scripts/stargate: 52 - sys.argv == ['scripts/stargate']
    [2021-09-29 22:47:34,475] INFO /home/axel/git/stargate/src/sgui/sgqt.py: 19 - Using PyQt5
    [2021-09-29 22:47:34,500] INFO /home/axel/git/stargate/src/scripts/stargate: 52 - sys.argv == ['scripts/stargate']
    [2021-09-29 22:47:34,500] INFO /home/axel/git/stargate/src/scripts/stargate: 52 - sys.argv == ['scripts/stargate']
    [2021-09-29 22:47:34,502] INFO /home/axel/git/stargate/src/sgui/sgqt.py: 19 - Using PyQt5
    [2021-09-29 22:47:34,502] INFO /home/axel/git/stargate/src/sgui/sgqt.py: 19 - Using PyQt5
    [2021-09-29 22:47:34,528] ERROR /home/axel/git/stargate/src/sglib/log.py: 62 - Traceback (most recent call last):
    
      File "/home/axel/git/stargate/src/scripts/stargate", line 88, in main
        start_stargate(args.project_file)
    
      File "/home/axel/git/stargate/src/scripts/stargate", line 53, in start_stargate
        from sgui.sgqt import QApplication, QGuiApplication, QtCore
    
      File "/home/axel/git/stargate/src/sgui/sgqt.py", line 21, in <module>
        from PyQt5 import QtGui, QtWidgets, QtCore
    
    ImportError: /usr/lib/python3.9/site-packages/PyQt5/QtGui.abi3.so: undefined symbol: _ZTI18QOpenGLTimeMonitor, version Qt_5
    
    
    During handling of the above exception, another exception occurred:
    
    
    Traceback (most recent call last):
    
      File "/home/axel/git/stargate/src/scripts/stargate", line 107, in <module>
        main()
    
      File "/home/axel/git/stargate/src/scripts/stargate", line 104, in main
        start_stargate(args.project_file)
    
      File "/home/axel/git/stargate/src/scripts/stargate", line 53, in start_stargate
        from sgui.sgqt import QApplication, QGuiApplication, QtCore
    
      File "/home/axel/git/stargate/src/sgui/sgqt.py", line 21, in <module>
        from PyQt5 import QtGui, QtWidgets, QtCore
    
    ImportError: /usr/lib/python3.9/site-packages/PyQt5/QtGui.abi3.so: undefined symbol: _ZTI18QOpenGLTimeMonitor, version Qt_5
    
    [2021-09-29 22:47:34,528] ERROR /home/axel/git/stargate/src/sglib/log.py: 62 - Traceback (most recent call last):
    
      File "/home/axel/git/stargate/src/scripts/stargate", line 88, in main
        start_stargate(args.project_file)
    
      File "/home/axel/git/stargate/src/scripts/stargate", line 53, in start_stargate
        from sgui.sgqt import QApplication, QGuiApplication, QtCore
    
      File "/home/axel/git/stargate/src/sgui/sgqt.py", line 21, in <module>
        from PyQt5 import QtGui, QtWidgets, QtCore
    
    ImportError: /usr/lib/python3.9/site-packages/PyQt5/QtGui.abi3.so: undefined symbol: _ZTI18QOpenGLTimeMonitor, version Qt_5
    
    
    During handling of the above exception, another exception occurred:
    
    
    Traceback (most recent call last):
    
      File "/home/axel/git/stargate/src/scripts/stargate", line 107, in <module>
        main()
    
      File "/home/axel/git/stargate/src/scripts/stargate", line 104, in main
        start_stargate(args.project_file)
    
      File "/home/axel/git/stargate/src/scripts/stargate", line 53, in start_stargate
        from sgui.sgqt import QApplication, QGuiApplication, QtCore
    
      File "/home/axel/git/stargate/src/sgui/sgqt.py", line 21, in <module>
        from PyQt5 import QtGui, QtWidgets, QtCore
    
    ImportError: /usr/lib/python3.9/site-packages/PyQt5/QtGui.abi3.so: undefined symbol: _ZTI18QOpenGLTimeMonitor, version Qt_5
    
    opened by loplkc 3
  • stargate is in the AUR

    stargate is in the AUR

    Hi, I maintain stargate on the Arch User Repository. Perhaps you can put a link to the pkgbuild in the docs.

    https://aur.archlinux.org/packages/stargate/

    opened by kiasoc5 2
  • Strange behaviour of save/discard when recording audio (Win10)

    Strange behaviour of save/discard when recording audio (Win10)

    Hello, I have found something strange. When first one recording discarded and second one saved then actually saved the first one.

    My example is for using a microphone, but with the instruments there will be no differences. Steps to reproduce:

    1. Start recording audio, say something to the microphone
    2. Stop recording and discard saving
    3. Start recording audio again, say somehing different to the microphone
    4. Stop recording and save sample
    5. Check the sample and see that it is actually the sample from step 1

    Here is the log file. stargate.log

    opened by DreadDendy 2
  • It fails to start on OpenSUSE Leap 15.3

    It fails to start on OpenSUSE Leap 15.3

    Hi,

    Very interesting project. However, I could not install it. I'm using OpenSUSE Leap 15.3.

    Adding PYTHONPATH /usr Did not detect local development environment, trying system installation Adding PYTHONPATH /usr/share/stargate/stargate [2021-11-10 13:37:24,285] INFO /usr/bin/stargate : 72 - sys.argv == ['/usr/bin/stargate'] [2021-11-10 13:37:24,286] ERROR /usr/share/stargate/stargate/sglib/log.py: 90 - Traceback (most recent call last):

    File "/usr/share/stargate/stargate/sgui/sgqt.py", line 7, in import PyQt6

    ModuleNotFoundError: No module named 'PyQt6'

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):

    File "/usr/bin/stargate", line 155, in main()

    File "/usr/bin/stargate", line 152, in main start_stargate(args.project_file)

    File "/usr/bin/stargate", line 91, in start_stargate app, scaler = _setup()

    File "/usr/bin/stargate", line 73, in _setup from sgui.sgqt import QApplication, QGuiApplication, QtCore

    File "/usr/share/stargate/stargate/sgui/sgqt.py", line 11, in import PyQt5

    ModuleNotFoundError: No module named 'PyQt5'


    I don't think OpenSUSE has PyQt6 in their repos.

    hp:~ # hwinfo --short cpu:
    Intel(R) Core(TM) i7-8565U CPU @ 1.80GHz, 1084 MHz Intel(R) Core(TM) i7-8565U CPU @ 1.80GHz, 1311 MHz Intel(R) Core(TM) i7-8565U CPU @ 1.80GHz, 1380 MHz Intel(R) Core(TM) i7-8565U CPU @ 1.80GHz, 1505 MHz Intel(R) Core(TM) i7-8565U CPU @ 1.80GHz, 1825 MHz Intel(R) Core(TM) i7-8565U CPU @ 1.80GHz, 2016 MHz Intel(R) Core(TM) i7-8565U CPU @ 1.80GHz, 2050 MHz Intel(R) Core(TM) i7-8565U CPU @ 1.80GHz, 1925 MHz keyboard: /dev/input/event0 AT Translated Set 2 keyboard /dev/input/event20 MX Anywhere 2 Keyboard mouse: /dev/input/mice ETPS/2 Elantech Touchpad /dev/input/mice MX Anywhere 2 Mouse joystick: /dev/input/event8 ST LIS3LV02DL Accelerometer monitor: LCD Monitor graphics card: nVidia GP108M [GeForce MX150] Intel UHD Graphics 620 (Whiskey Lake) sound: Intel Cannon Point-LP High Definition Audio Controller storage: Intel 82801 Mobile SATA Controller [RAID mode] network: wlan0 Intel Cannon Point-LP CNVi [Wireless-AC] eth0 Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller network interface: lo Loopback network interface eth0 Ethernet network interface wlan0 WLAN network interface disk: /dev/sda Samsung SSD 860 partition: /dev/sda1 Partition /dev/sda2 Partition /dev/sda3 Partition usb controller: Intel Cannon Point-LP USB 3.1 xHCI Controller bios: BIOS bridge: Intel Cannon Point-LP PCI Express Root Port #1 Intel Cannon Point-LP LPC Controller Intel Cannon Point-LP PCI Express Root Port #10 Intel Coffee Lake HOST and DRAM Controller Intel Cannon Point-LP PCI Express Root Port #9 Intel Cannon Point-LP PCI Express Root Port #5 hub: Linux Foundation 2.0 root hub Linux Foundation 3.0 root hub memory: Main Memory bluetooth: Intel Bluetooth Device unknown: FPU DMA controller PIC Keyboard controller PS/2 Controller Intel Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem Intel Cannon Point-LP MEI Controller #1 Intel Cannon Point-LP SPI Controller Intel Cannon Point-LP Serial IO I2C Host Controller Intel Cannon Point-LP Thermal Controller Intel Cannon Point-LP Shared SRAM Intel Cannon Point-LP SMBus Controller /dev/input/event12 Lite-On HP Wide Vision FHD Camera

    opened by oldcastlehq 2
  • Portable installation doesn't work (as intended) (Win10)

    Portable installation doesn't work (as intended) (Win10)

    Hello, I was able to test portable installation on the flash drive. First I moved data folder of the application from my user's directory. Second I installed app on a flash drive. When I had launched it with a .bat-file and tried to open demo project I saw error message: "The audio engine stopped with exit code 11, please try restarting Stargate".

    Then I started to study the log files. This lines in "local" config say that DAW still looking files in my user's directory, [2021-12-19 16:33:04,129] INFO sglib\lib\process.py : 62 - ~\program\engine\stargate-engine.exe: "using home folder: C:\Users\Umbrix" [2021-12-19 16:33:04,129] INFO sglib\lib\process.py : 62 - ~\program\engine\stargate-engine.exe: "C:\Users\Umbrix/stargate/config/device.txt does not exist" [2021-12-19 16:33:04,129] INFO sglib\lib\process.py : 62 - ~\program\engine\stargate-engine.exe: "Allocating output buffers" [2021-12-19 16:33:04,129] INFO sglib\lib\process.py : 62 - ~\program\engine\stargate-engine.exe: "Setting main volume" [2021-12-19 16:33:04,129] INFO sglib\lib\process.py : 62 - ~\program\engine\stargate-engine.exe: "get_file_setting: C:\Users\Umbrix/stargate/config/main_vol.txt" I attach the full log file. stargate - local directory.log

    Then I moved back the data folder of the DAW in my user's directory and after that the application worked OK when I have launched it with the .bat file. I think that it just have found the needed files. Here is the log file for this case. stargate - user directory.log

    opened by DreadDendy 9
  • Playhead behaviour

    Playhead behaviour

    When you stop playback, the playhead is returned to the start of the song instead of resuming playback where you stopped, which is how I'd prefer it to operate. There would then need to be an extra transport button to return the playhead to the start and a keyboard shortcut to do that such as backspace or alternatively maybe a modifier and shift could be used to stop and return the playhead to the start.

    opened by danboid 0
  • Sampler1: Various issues with .SFZ files

    Sampler1: Various issues with .SFZ files

    Problem: SFZ files are not any kind of standard data DSL like JSON, YAML, XML... As such, there are no standard parsing libraries for Python (that I am aware of), so I am using a crude parser I wrote years ago. The full SFZ spec is very complex, and Stargate DAW does not currently support all of the features.

    If you have problems loading SFZ files, please send me the SFZ file (not the samples, just the .sfz file(s) used by your instrument), and ideally your logs in ~/stargate/log/* so that I can debug the issue and add your SFZ file to the conformance tests.

    opened by ghost 0
  • Pulseaudio support

    Pulseaudio support

    I have been unable to get any sound from the VA synth. I have tried using my laptops onboard soundcard and a USB soundcard but neither produced any audio when selecting them under Stargates ALSA audio device menu but that could be because I'm running Pulseaudio under Ubuntu 20.04. Do you plan to support PA?

    opened by danboid 21
Releases(release-23.01.1)
A python program to cut longer MP3 files (i.e. recordings of several songs) into the individual tracks.

I'm writing a python script to cut longer MP3 files (i.e. recordings of several songs) into the individual tracks called ReCut. So far there are two

Dönerspiess 1 Oct 27, 2021
Mina - A Telegram Music Bot 5 mandatory Assistant written in Python using Pyrogram and Py-Tgcalls

Mina - A Telegram Music Bot 5 mandatory Assistant written in Python using Pyrogram and Py-Tgcalls

3 Feb 07, 2022
Users can transcribe their favorite piano recordings to MIDI files after installation

Users can transcribe their favorite piano recordings to MIDI files after installation

190 Dec 17, 2022
Musillow is a music recommender app that finds songs similar to your favourites.

MUSILLOW The music recommender app Check it out now!!! View Demo · Report Bug · Request Feature About The App Musillow is a music recommender app that

3 Feb 03, 2022
convert-to-opus-cli is a Python CLI program for converting audio files to opus audio format.

convert-to-opus-cli convert-to-opus-cli is a Python CLI program for converting audio files to opus audio format. Installation Must have installed ffmp

4 Dec 21, 2022
:sound: Play and Record Sound with Python :snake:

Play and Record Sound with Python This Python module provides bindings for the PortAudio library and a few convenience functions to play and record Nu

spatialaudio.net 750 Dec 31, 2022
Basically Play Pauses the song when it is safe to do so. when you die in a round

Basically Play Pauses the song when it is safe to do so. when you die in a round

AG_1436 1 Feb 13, 2022
Audio2midi - Automatic Audio-to-symbolic Arrangement

Automatic Audio-to-symbolic Arrangement This is the repository of the project "A

Ziyu Wang 24 Dec 05, 2022
This is a realtime voice translator program which gets input from user at any language and converts it to the desired language that the user asks

This is a realtime voice translator program which gets input from user at any language and converts it to the desired language that the user asks ...

Mohan Ram S 1 Dec 30, 2021
A voice assistant which can handle your everyday task and allows you to book items from your favourite store!

Voicely Table of Contents About The Project Built With Getting Started Prerequisites Installation Usage Roadmap Contributing License Contact Acknowled

Awantika Nigam 2 Nov 17, 2021
Music player - endlessly plays your music

Music player First, if you wonder about what is supposed to be a music player or what makes a music player different from a simple media player, read

Albert Zeyer 482 Dec 19, 2022
A simple music player, powered by Python, utilising various libraries such as Tkinter and Pygame

A simple music player, powered by Python, utilising various libraries such as Tkinter and Pygame

PotentialCoding 2 May 12, 2022
Minimal command-line music player written in Python

pyms Minimal command-line music player written in Python. Designed with elegance and minimalism. Resizes dynamically with your terminal. Dependencies

12 Sep 23, 2022
Desktop music recognition application for windows

MusicRecognizer Music recognition application for windows You can choose from which of the devices the recording will be made. If you choose speakers,

Nikita Merzlyakov 28 Dec 13, 2022
Python CD-DA ripper preferring accuracy over speed

Whipper Whipper is a Python 3 (3.6+) CD-DA ripper based on the morituri project (CDDA ripper for *nix systems aiming for accuracy over speed). It star

671 Jan 04, 2023
Muzic: Music Understanding and Generation with Artificial Intelligence

Muzic is a research project on AI music that empowers music understanding and generation with deep learning and artificial intelligence.

Microsoft 2.6k Dec 30, 2022
gentle forced aligner

Gentle Robust yet lenient forced-aligner built on Kaldi. A tool for aligning speech with text. Getting Started There are three ways to install Gentle.

1.2k Dec 30, 2022
Code to work with wave files!

Code to work with wave files!

Mohammad Dori 3 Jul 15, 2022
Python module for handling audio metadata

Mutagen is a Python module to handle audio metadata. It supports ASF, FLAC, MP4, Monkey's Audio, MP3, Musepack, Ogg Opus, Ogg FLAC, Ogg Speex, Ogg The

Quod Libet 1.1k Dec 31, 2022
Some utils for auto speech recognition

About Some utils for auto speech recognition. Utils Util Description Script Reset audio Reset sample rate, sample width, etc of audios.

1 Jan 24, 2022