All Projects → mdoege → Pysynth

mdoege / Pysynth

Several simple music synthesizers in Python 3. Input from ABC or MIDI files is also supported.

Programming Languages

python3
1442 projects

Projects that are alternatives of or similar to Pysynth

Shadowmusic
A temporal music synthesizer
Stars: ✭ 28 (-89.96%)
Mutual labels:  jupyter-notebook, numpy, synthesizer
Ta
Technical Analysis Library using Pandas and Numpy
Stars: ✭ 2,649 (+849.46%)
Mutual labels:  jupyter-notebook, numpy
Py
Repository to store sample python programs for python learning
Stars: ✭ 4,154 (+1388.89%)
Mutual labels:  jupyter-notebook, numpy
Tensorflow Ml Nlp
텐서플로우와 머신러닝으로 시작하는 자연어처리(로지스틱회귀부터 트랜스포머 챗봇까지)
Stars: ✭ 176 (-36.92%)
Mutual labels:  jupyter-notebook, numpy
Gasyori100knock
image processing codes to understand algorithm
Stars: ✭ 1,988 (+612.54%)
Mutual labels:  jupyter-notebook, numpy
Numsca
numsca is numpy for scala
Stars: ✭ 160 (-42.65%)
Mutual labels:  jupyter-notebook, numpy
Ditching Excel For Python
Functionalities in Excel translated to Python
Stars: ✭ 172 (-38.35%)
Mutual labels:  jupyter-notebook, numpy
Stock Price Predictor
This project seeks to utilize Deep Learning models, Long-Short Term Memory (LSTM) Neural Network algorithm, to predict stock prices.
Stars: ✭ 146 (-47.67%)
Mutual labels:  jupyter-notebook, numpy
Data Science Projects With Python
A Case Study Approach to Successful Data Science Projects Using Python, Pandas, and Scikit-Learn
Stars: ✭ 198 (-29.03%)
Mutual labels:  jupyter-notebook, numpy
Windrose
A Python Matplotlib, Numpy library to manage wind data, draw windrose (also known as a polar rose plot), draw probability density function and fit Weibull distribution
Stars: ✭ 208 (-25.45%)
Mutual labels:  jupyter-notebook, numpy
Rethinking Numpyro
Statistical Rethinking (2nd ed.) with NumPyro
Stars: ✭ 225 (-19.35%)
Mutual labels:  jupyter-notebook, numpy
Rnn lstm from scratch
How to build RNNs and LSTMs from scratch with NumPy.
Stars: ✭ 156 (-44.09%)
Mutual labels:  jupyter-notebook, numpy
Alphalens
Performance analysis of predictive (alpha) stock factors
Stars: ✭ 2,130 (+663.44%)
Mutual labels:  jupyter-notebook, numpy
Cheatsheets.pdf
📚 Various cheatsheets in PDF
Stars: ✭ 159 (-43.01%)
Mutual labels:  jupyter-notebook, numpy
Machine Learning With Python
Practice and tutorial-style notebooks covering wide variety of machine learning techniques
Stars: ✭ 2,197 (+687.46%)
Mutual labels:  jupyter-notebook, numpy
Psi4numpy
Combining Psi4 and Numpy for education and development.
Stars: ✭ 170 (-39.07%)
Mutual labels:  jupyter-notebook, numpy
Neural Network From Scratch
Ever wondered how to code your Neural Network using NumPy, with no frameworks involved?
Stars: ✭ 230 (-17.56%)
Mutual labels:  jupyter-notebook, numpy
Data Analysis
主要是爬虫与数据分析项目总结,外加建模与机器学习,模型的评估。
Stars: ✭ 142 (-49.1%)
Mutual labels:  jupyter-notebook, numpy
Opendatawrangling
공공데이터 분석
Stars: ✭ 148 (-46.95%)
Mutual labels:  jupyter-notebook, numpy
Andrew Ng Notes
This is Andrew NG Coursera Handwritten Notes.
Stars: ✭ 180 (-35.48%)
Mutual labels:  jupyter-notebook, numpy

Overview

PySynth is a simple music synthesizer written in Python 3. The goal is not to produce many different sounds, but to have scripts that can turn ABC notation or MIDI files into a WAV file without too much tinkering.

The current release of the synthesizer can only play one note at a time. (Although successive notes can overlap in PySynth B and S, but not A.) However, two output files can be mixed together to get stereo sound.

The latest git version of PySynth also works in Python 2.

Synthesizer scripts

Synth Synthesis method Approximate timbre Note decay Needs NumPy?
A additive (3 sine waves) flute, organ, piano variable (depends on note length) no
B additive (5 sine waves) acoustic piano medium yes
C subtractive (sawtooth wave) bowed string, analog synth pad none no
D subtractive (square wave) woodwind, analog synth lead none no
E FM/phase modulation (6 sine waves) DX7 Rhodes piano medium yes
P subtractive (white noise) untuned percussion hit very fast no
S Karplus-Strong (physical modeling) plucked string, guitar, koto fast yes
beeper additive Nokia phone ringtone none no
samp sampler Salamander Grand Piano medium yes

Installation

Linux

Clone the repository:

git clone [email protected]:mdoege/PySynth.git

or

git clone https://github.com/mdoege/PySynth.git

Enter the directory (cd PySynth) and run

python3 setup.py install

Sample usage

Basic usage:

import pysynth as ps
test = (('c', 4), ('e', 4), ('g', 4),
		('c5', -2), ('e6', 8), ('d#6', 2))
ps.make_wav(test, fn = "test.wav")

More advanced usage:

import pysynth_b as psb # a, b, e, and s variants available

''' (note, duration)
Note name (a to g), then optionally a '#' for sharp or
'b' for flat, then optionally the octave (defaults to 4).
An asterisk at the end means to play the note a little 
louder.  Duration: 4 is a quarter note, -4 is a dotted 
quarter note, etc.'''
song = (
  ('c', 4), ('c*', 4), ('eb', 4), 
  ('g#', 4),  ('g*', 2), ('g5', 4),
  ('g5*', 4), ('r', 4), ('e5', 16),
  ('f5', 16),  ('e5', 16),  ('d5', 16),
  ('e5*', 4) 
)

# Beats per minute (bpm) is really quarters per minute here
psb.make_wav(song, fn = "danube.wav", leg_stac = .7, bpm = 180)

Read ABC file and output WAV:

python3 read_abc.py straw.abc

Documentation

More documentation and examples at the PySynth homepage.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].