Permalink
Browse files

Merge branch 'master' of https://github.com/jtauber/sebastian

  • Loading branch information...
calebsmith committed Mar 18, 2013
2 parents 233c42b + 7366f23 commit 19b52b3729ecbe852f4d910015d37a0cd2715a43
View
@@ -0,0 +1,4 @@
+James Tauber <jtauber@jtauber.com>
+Nicholas Tollervey <ntoll@ntoll.org>
+David Baumgold <david@davidbaumgold.com>
+
View
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2012 James Tauber and contributors
+# Copyright (c) 2005-2013 James Tauber and contributors
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
@@ -16,4 +16,4 @@
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
+# THE SOFTWARE.
View
23 README
@@ -1,23 +0,0 @@
-Sebastian will be a symbolic music analysis and composition library
-written in Python.
-
-I partly think of it as being a "Mathematica for music". By symbolic,
-I mean that it will focus more on the sorts of abstractions made by
-music notation and theories of harmony and counterpoint than lower
-level numerical operations that one might use in, say, music synthesis.
-
-I hope it to be very practical as an analysis tool for existing
-compositions (especially from the common practice period) and also a
-tool for computer-assisted composition. It will also be a bit of a test
-bed for ideas I've had for a while around applying linguistics and
-abstract algebra to music.
-
-As an initial driver for this attempt at building Sebastian, I'm going
-to start by writing software for generating a performance of
-Terry Riley's In C. This will provide a nice little project by which
-to motivate finishing off my MIDI library, write a parser for lilypond
-as I'd like to define the In C patterns (and indeed much in Sebastian)
-in that notation.
-
-James Tauber
-jtauber@jtauber.com
View
@@ -0,0 +1,31 @@
+# Sebastian
+
+**Sebastian** is a symbolic music analysis and composition library written in
+Python.
+
+I partly think of it as being a "Mathematica for music". By symbolic, I mean
+that it is focused more on the sorts of abstractions made by music notation
+and theories of harmony and counterpoint than lower level numerical
+operations that one might use in, say, music synthesis.
+
+I hope it to be very practical as an analysis tool for existing compositions
+(especially from the common practice period) and also a tool for
+computer-assisted composition. It will also be a bit of a test bed for ideas
+I've had for a while around applying linguistics and abstract algebra to
+music.
+
+## PyCon 2013 Talk
+
+I spoke about Sebastian at PyCon 2013 and my slides are available at:
+
+<https://speakerdeck.com/jtauber/music-theory-and-performance-analysis-with-sebastian-and-czerny>
+
+A video of the talk should be available shortly.
+
+## Mailing List
+
+You can join the Sebastian mailing list by emailing `sebastian@librelist.com`
+
+## License
+
+Sebastian is open source under an MIT license. See the LICENSE file.
View
@@ -1,3 +1,8 @@
+[ed: this are some notes I wrote in 2009; I'm keeping them here as they
+explain pretty well the original thinking behind the datastructures we
+now have in Sebastian.]
+
+
The primary datastructure I've been thinking about for Sebastian is a sequence
of feature structures (or a set of feature structures with time offsets)
View
@@ -26,7 +26,7 @@
write_midi.write("seq5.mid", [seq5])
# contruct a horizontal sequence of scale degrees
-seq6 = HSeq([Point(degree=degree) for degree in [1, 2, 3, 2, 1]])
+seq6 = HSeq(Point(degree=degree) for degree in [1, 2, 3, 2, 1])
# put that sequence into C major, octave 4 quavers
C_MAJOR = Key("C", major_scale)
View
@@ -15,12 +15,12 @@ def alberti(triad):
takes a VSeq of 3 notes and returns an HSeq of those notes in an
alberti figuration.
"""
-
- return HSeq([triad[0], triad[2], triad[1], triad[2]])
+ return HSeq(triad[i] for i in [0, 2, 1, 2])
# an abstract VSeq of 3 notes in root position (degree 1, 3 and 5)
-root_triad = VSeq(Point(degree=1), Point(degree=3), Point(degree=5))
+root_triad = VSeq(Point(degree=n) for n in [1, 3, 5])
+
quaver_point = Point({DURATION_64: 8})
@@ -0,0 +1,2 @@
+K545-1.midi
+K545-1.pdf
Oops, something went wrong.

0 comments on commit 19b52b3

Please sign in to comment.