Skip to content

Commit

Permalink
Merge pull request #4 from yuma-m/release/v0.1.5
Browse files Browse the repository at this point in the history
Release/v0.1.5
  • Loading branch information
yuma-m committed Mar 17, 2019
2 parents 32e22d2 + 016009c commit 7db13a7
Show file tree
Hide file tree
Showing 7 changed files with 38 additions and 18 deletions.
17 changes: 11 additions & 6 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,22 +1,27 @@
dist: xenial
language: python
python:
- "2.7"
- "3.4"
- "3.5"
- "3.5-dev" # 3.5 development branch
- "3.6"
- "3.6-dev" # 3.6 development branch
# scipy is not supported
# - "3.7-dev" # 3.7 development branch
# - "nightly"

before_install:
- sudo apt-get -qq update
- sudo apt-get install -y portaudio19-dev

install:
- pip install -r requirements.txt
- python setup.py develop
- pip install .

script:
- python setup.py test

deploy:
provider: pypi
user: yuma-m
password:
secure: qjpVeA6X06tcuOtaFqoVD9fnbxRW4OGRrP/0bIqCdxj9HoDBPCJkgvcxVSrAzB+4ejsPPvIuqBdtnbcCkYmq+tpsK2Gh8HVU/XBSE0jF4luwKgMvHIh0WxsxgtWjft0tlD14kfGES5zIOyd3Jqz7f7BA+tg+jIn16eysEjysphM2rzlorQdiDfvtvILJZ7NvuCPvV4XD+vVdzzJll5f8Ps9F/Y/F9/nvFjXK1c5+OOrc47o3i/0fA711dcw9h4oho9CNcp904gaEiwtOxTGkAAuxlHSqiD1/aZ3XHKnmEyV00UZlndZXNFjhEqXoGi7QZihO3B0Zf4FbMvydSRzEuPUgqoVaNkLwDN6vr2m9RU9Z8VnkUwgOlqp3QlHF7sOSd1BtjgAmCdctdzjWlHDxwnytP4mgcZsHLb+LHs7k6k2KUtnp7TX2F9EDP/I2u+g3SrgbORkOec0ULFyih4pIhGrGfNwRFVnwaRWRiHGvEpo1GG3EQ+UKJt+o4MEmR23ZSXm2/gOZmpO9sFf/bJsXEm79VSGcmgm3Lxe5Lzdz2GJKFhTZE2VtVrHBY95Uy8TVZPPy1KmrjFEqcoh0Kix5+s0p9oNs+6gpqYpRR5PJOWtK53fyvw/2NQAmeNJ3DTEmfrtbXFiDM4ud8tmt76DxIaJV3jlTvFF8Og27tkwHNxU=
on:
python: 3.6
tags: true
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
## 0.1.5

- Support triangle wave.
- Contributor: @AntiMatterAMA

## 0.1.4

- Fix channels of Player class from 2 to 1 to play proper sound.
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ $ pip install pyaudio

## Supported OS

- macOS Sierra
- macOS 10.12 and above
- Ubuntu 16.04

## Supported versions
Expand Down
5 changes: 5 additions & 0 deletions example/play_440hz.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@ def main():
player.play_wave(synthesizer.generate_constant_wave(440.0, 3.0))
time.sleep(0.5)

print("play triangle wave")
synthesizer = Synthesizer(osc1_waveform=Waveform.triangle, osc1_volume=0.8, use_osc2=False)
player.play_wave(synthesizer.generate_constant_wave(440.0, 3.0))
time.sleep(0.5)

print("play synthesized wave 1")
synthesizer = Synthesizer(
osc1_waveform=Waveform.sawtooth, osc1_volume=1.0,
Expand Down
12 changes: 3 additions & 9 deletions setup.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,5 @@
from setuptools import setup, find_packages
version = '0.1.4'

try:
import pypandoc
read_md = lambda f: pypandoc.convert(f, 'rst')
except ImportError:
print("warning: pypandoc module not found, could not convert Markdown to RST")
read_md = lambda f: open(f, 'r').read()
version = '0.1.5'

setup(
name='synthesizer',
Expand All @@ -28,7 +21,8 @@
packages=find_packages(exclude=['test']),
include_package_data=True,
zip_safe=True,
long_description=read_md('README.md'),
long_description=open('README.md').read(),
long_description_content_type='text/markdown',
test_suite='nose.collector',
install_requires=[
'enum34>=1.1.6',
Expand Down
6 changes: 4 additions & 2 deletions synthesizer/synthesizer.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,10 @@ def generate_wave(self, phases):
phases = np.copy(phases) * self._freq_transpose
return self._volume * self._wave_func(phases)

def gen_triang(self,t,width=0.5):
return scipy.signal.sawtooth(t,width)
@staticmethod
def gen_triang(t, width=0.5):
return scipy.signal.sawtooth(t, width)


class Synthesizer(object):
u""" Virtual analog synthesizer object
Expand Down
9 changes: 9 additions & 0 deletions test/test_synthesizer.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,12 @@ def test_square_wave():
assert_almost_equal(wave.max(), 1.0, places=3)
assert_almost_equal(wave.min(), -1.0, places=3)
assert_almost_equal(wave.mean(), 0.0, places=3)


def test_triangle_wave():
synthesizer = Synthesizer(osc1_waveform=Waveform.triangle, osc1_volume=1.0, use_osc2=False, rate=RATE)
wave = synthesizer.generate_constant_wave(440.0, 1.0)
eq_(wave.size, RATE)
assert_almost_equal(wave.max(), 1.0, places=3)
assert_almost_equal(wave.min(), -1.0, places=3)
assert_almost_equal(wave.mean(), 0.0, places=3)

0 comments on commit 7db13a7

Please sign in to comment.