Skip to main content

A small python package for generating music.

Project description

jc3000

A small python package for generating music. Inspired by this which was inspired by this (that's why it's called jc3000).

You can generate any notes you want based on any fundamental (the frequency of concert A in this case, fundamental as a term is used kind of loosely). You can also use either just or equal temperament.

More reading

This page has really good information on how music and scales work at the physical level.

Default sample rate is 44,100 Hz.
Default concert A is 440 Hz.

Installation

You can install it via pip. It requires numpy. Probably not compatible with python <= 3.6.

python3 -m pip install jc3000

Examples

  • Play the licc
from jc3000 import Sequence

s = Sequence(fs=44100, fundamental=440, equal=True)
s.add_note('d', duration=.125)
s.add_note('e', .125)
s.add_note('f', .125)
s.add_note('g', .125)
s.add_note('e', .257)  # .257 for ~swing-iness~
s.add_note('c', .125)
s.add_note('d', .25)

s.write_file('the_licc.wav')
  • Play the C major scale with concert A set to 432 Hz.
from jc3000 import Sequence

s = Sequence(fundamental=432)

notes = ['cdefgabc']

for i, note in enumerate(notes):
    if i < 5:
        s.add_note(note)
    else:
        s.add_note(note, octave=1)
        
s.write_file('cmajor_432hz.wav')

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jc3000-0.0.7.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

jc3000-0.0.7-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file jc3000-0.0.7.tar.gz.

File metadata

  • Download URL: jc3000-0.0.7.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.6

File hashes

Hashes for jc3000-0.0.7.tar.gz
Algorithm Hash digest
SHA256 31291699b1af065c27e0883466e9978d114e36b832f5a581b1f8a9725fd70057
MD5 3ed8bb31e4a8b9d61a89a875b92cf280
BLAKE2b-256 d0e35838225fda098b4c78c583ccfcc3530585db22562c0872e2ae62f9dc98e9

See more details on using hashes here.

File details

Details for the file jc3000-0.0.7-py3-none-any.whl.

File metadata

  • Download URL: jc3000-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 5.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.6

File hashes

Hashes for jc3000-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 f5a94841fdaef1cda3a5c5036a97d69de150858d0569d81ef20437ebf76cd36e
MD5 c2514e49f1a55976b4bc2af2a93a88af
BLAKE2b-256 419cf6c9cfe803fce4993d3250f7ad78777cd7b28a01762df4acc5b8191fb7fb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page