marianinn / mingus Goto Github PK
View Code? Open in Web Editor NEWAutomatically exported from code.google.com/p/mingus
License: GNU General Public License v3.0
Automatically exported from code.google.com/p/mingus
License: GNU General Public License v3.0
Really need to fix this...
Original issue reported on code.google.com by [email protected]
on 7 Sep 2008 at 4:41
To deal with transposing instruments (eg. saxophones playing in Eb) we need
an transpose attribute.
Planned for version 0.3
Original issue reported on code.google.com by [email protected]
on 7 Sep 2008 at 4:27
[deleted issue]
Time to go over every docstring and update the tutorials with the new
functionality before we can call it 0.4.
Original issue reported on code.google.com by [email protected]
on 25 Dec 2008 at 8:53
See http://en.wikipedia.org/wiki/Note
Let us write C,,, and c'''.
Original issue reported on code.google.com by [email protected]
on 28 Jun 2009 at 11:48
What steps will reproduce the problem?
from mingus.containers.Bar import Bar
from mingus.containers.Note import Note
from mingus.extra import LilyPond
import mingus.core.value as value
b = Bar()
for i in range(10):
b.place_notes(Note().from_int(40+i), 16)
print LilyPond.from_Bar(b)
What is the expected output? What do you see instead?
I think it should be:
{ \time 4/4 \key c \major e 16 f 16 fis 16 g 16 gis 16 a 16 ais 16 b 16
c'16 cis'16 }
Instead there is a jump over one octave:
{ \time 4/4 \key c \major e,16 f,16 fis,16 g,16 gis,16 a,16 ais,16 b,16
c'16 cis'16 }
if you run lilypond over that you see a gap over one octave:
It should be
a,,, a,, a, a a' a'' a'''
mingus skips the notes without quotes and kommas.
What version of the product are you using? On what operating system?
3.9.0.1 ubuntu 64bit
Original issue reported on code.google.com by [email protected]
on 28 Feb 2009 at 12:56
Currently it returns a big list of all kinds of substitutions. If you want
more fine grained control over it, you can't have it.
This isn't ideal.
progressions.substitutions should still return this list, but it should
gather it from the new functions.
Original issue reported on code.google.com by [email protected]
on 25 Dec 2008 at 8:52
Test the whole container on dissonance/consonance. Each note should be
tested against every other note, combinatorially.
Original issue reported on code.google.com by [email protected]
on 19 Jun 2009 at 2:38
On top of MidiSequencer?
Original issue reported on code.google.com by [email protected]
on 24 Jun 2009 at 4:33
Summary says it all.
Original issue reported on code.google.com by [email protected]
on 19 Jan 2009 at 5:00
What steps will reproduce the problem?
1. use the LilyPond extention like that:
track = ...
output_file = os.path.join ('goal path', 'img')
LilyPond.to_png(track, output_file)
2.
3.
What is the expected output? What do you see instead?
expected: files in path 'goal path/img/'
instead something like that:
Executing: lilypond -fpng -o media/songs/Bruder Jakob/media/images/Bruder
Jakob0.img media/songs/Bruder Jakob/media/images/Bruder Jakob0.img.ly
GNU LilyPond 2.10.33
aktuelles Verzeichnis kann nicht zu »media/songs« geändert werden
What version of the product are you using? On what operating system?
Ubuntu 8.10 64bit
mingus 0.3.9.1
Please provide any additional information below.
Using apostrophes '<filename>' around the files in the execution-string
should fix that
Original issue reported on code.google.com by [email protected]
on 25 Feb 2009 at 2:29
What steps will reproduce the problem?
1. Install Mingus on Windows XP
2. Change line 27 of pyFluidSynth
_fl = CDLL(find_library('fluidsynth'))
to
_fl = CDLL(find_library('libfluidsynth'))
3. Run pygame-drum example on command line
What is the expected output? What do you see instead?
fluidsynth: error: Unable to open file "soundfont.sf2"
What version of the product are you using? On what operating system?
Mingus0.4, WindowsXP SP3
Please provide any additional information below.
I don't really know what .sf2 files are but I found one in qsynth folder. I
renamed it soundfont.sf2 and placed it in the same folder as pygame-drum.
The program ran this time, but I don't get the same result I saw on the
video when clicking on the green squares.
Original issue reported on code.google.com by [email protected]
on 1 Mar 2009 at 6:39
And they need to be described in the tutorial.
augment, diminish, to_minor, to_major, transpose , is_full, empty, get_range,
change_note_duration
Original issue reported on code.google.com by [email protected]
on 7 Sep 2008 at 4:40
It should be possible to save all the containers as a midi file.
Original issue reported on code.google.com by [email protected]
on 16 Dec 2008 at 1:23
From midi file to NoteContainers, Bars, Tracks and Compositions.
Should be doable, but not easy.
Exporting to MIDI should be easier, but I'm not the biggest expert on the
subject.
Original issue reported on code.google.com by [email protected]
on 7 Sep 2008 at 4:47
Returns a list of possible fingerings for a given NoteContainer.
Original issue reported on code.google.com by [email protected]
on 28 Jun 2009 at 10:07
scales.determine can currently only determine scales that contain exactly
the same notes as the ones that are known. It should return all the
possible scales; eg:
['A', 'C', 'E', 'G']
should return something like ['A minor pentatonic', 'A natural minor'].
Original issue reported on code.google.com by [email protected]
on 16 Dec 2008 at 1:21
Percussion subclass in Instruments.
Original issue reported on code.google.com by [email protected]
on 7 Sep 2008 at 4:19
Loading a MIDI that was generated by mingus works fine, but it sometimes
chokes and throws unnecessary exceptions when parsing files generated by
other programs.
Some refinements:
* Midi events between 0 and 7 of which I have now documentation should be
allowed, but ignored.
* SysEx events should also be parsed but ignored.
* Can we parse type 2 midi files? Need to find some examples...
* We currently have no way to save changing instruments and bpm. We could
save that information on individual Notes but this would complicate all
sequencing algorithms considerably. Maybe it would be best if we had a
separate control track, since I would guess not every MIDI program outputs
tempo change events on every channel.
That's it, I hope.
Original issue reported on code.google.com by [email protected]
on 29 Dec 2008 at 1:01
It would be nice to be able to export to MusicXML and/or import it.
Over 100 applications -both commercial and open source- will be able to use
it: http://www.musicxml.org/xml.html
Original issue reported on code.google.com by [email protected]
on 28 Dec 2008 at 6:12
Clean up some of the code and make logarithmic lookup table. See for early
(slowish) code:
http://groups.google.com/group/mingus-python/browse_thread/thread/70b4433dbba6a2
72
Original issue reported on code.google.com by [email protected]
on 19 Jun 2009 at 2:41
What steps will reproduce the problem?
The function diatonic.int_to_note is not correct:
>>>import mingus.core.diatonic as diatonic
>>>diatonic.int_to_note(0, "D")
'C#b'
>>>diatonic.int_to_note(0, "B")
'C#b'
The outputs shown in tutorialDiatonic are not all correct too.
What version of the product are you using? On what operating system?
mingus Version 0.4.0.1
Python 2.5.4
Please provide any additional information below.
The intervals should be fixed and not shifted among different keys.
I suggest commenting out known_intervals and use the original intervals.
The calculation will be correct then.
#known_intervals = map(lambda x: (x + current) % 12, intervals)
intervals = known_intervals
Original issue reported on code.google.com by [email protected]
on 5 Jun 2009 at 8:02
The chords.determine function is pretty fast already, but it could use some
caches and optimizations.
Original issue reported on code.google.com by [email protected]
on 7 Sep 2008 at 4:39
These sort of things:
if is_valid(meter) and meter[0] % 3 == 0:
return True
else:
return False
should be rewritten to
return is_valid(meter) and meter[0] % 3 == 0
Original issue reported on code.google.com by [email protected]
on 10 Feb 2009 at 11:08
Simple baseclass that figures out or implements the callbacks.
Original issue reported on code.google.com by [email protected]
on 26 Jun 2009 at 2:23
What steps will reproduce the problem?
from mingus.containers.Bar import Bar
from mingus.containers.Note import Note
from mingus.extra import LilyPond
import mingus.core.value as value
b = Bar()
b.place_notes(Note().from_int(50), 16)
b.place_notes(Note().from_int(50), 16.0)
print value.dots(16)
b.place_notes(Note().from_int(50), value.dots(16))
print LilyPond.from_Bar(b)
What is the expected output? What do you see instead?
output:
10.6666666667
{ \time 4/4 \key c \major d'16 d'16.0 d'16. }
what i would expect:
10.6666666667
{ \time 4/4 \key c \major d'16 d'16 d'16. }
What version of the product are you using? On what operating system?
3.9.0.1 ubuntu 64bit
Please provide any additional information below.
if you set 10.6666667 as length the lilypond output is 16+ a point (1/16 +
1/32 length thats right) but the lilypond string dont supports 16.0 as length.
part solution would be: if you hit no exact length with points -> round to
a full int value
perfekt solution would be: rounding to point values 16... as example if
input would be 10.5 its closer to 10.66666667 as to 10 or 11.
Original issue reported on code.google.com by [email protected]
on 1 Mar 2009 at 10:05
It would be nice to have a sample directory with a couple of simple python
files showcasing mingus' uses.
Original issue reported on code.google.com by [email protected]
on 7 Sep 2008 at 4:12
This should be pretty easy and will clean up the fluidsynth code
considerably while keeping all the nastiness in Sequencer.
Original issue reported on code.google.com by [email protected]
on 23 Jun 2009 at 3:45
I suggest to add a containers.chord object, that would expose all of the nice
functions of chords,
but additionally the "base name" ("C" for "Cmaj7") to able able to transpose
that.
>>> c = containers.chords('Am')
>>> c.base_name
'A'
>>> c.from_shorthand
['A', 'E', 'C']
>>> d = c.transpose('D')
>>> d.common_name
'Dm'
>>> d.from_shorthand
['D', 'F', 'A']
c.transpose could also work with integers as half steps like this:
>>> d = c.transpose(1)
>>> d.common_name()
'Bm'
The method should perhaps also take a second parameter for the scale, like
other functions.
I guess this is a very simple extension for you, since most of the parts are
already in place.
That would lead to transposition of whole accompaniment lines like this:
>>> line = 'C Am / Dm G'
>>> accompaniments.transpose(line, 'D')
'D Bm / Em A'
>>> accompaniments.transpose(line, 3)
'D# Cm / Fm Bb'
I'd like to use such a function in the Python-based successor of my song
collection (see
http://angerweit.tikon.ch/lieder/lied.php?src=folk-nl/naarisland)
Original issue reported on code.google.com by [email protected]
on 24 Oct 2008 at 5:17
Currently we can do:
>>> progressions.substitute(["I", "IV", "V", "I"], 0)
['III', 'III7', ...etc]
It would be nice if we could also get a movement back.
>>> progressions.substitute(["I", "IV", "V", "I"], 0, 2)
[["Vm", "Idom7"], ...]
Original issue reported on code.google.com by [email protected]
on 25 Dec 2008 at 8:50
MIDI files can now be saved, but I would be nice if we could load them back
into mingus.containers as well. This way we would also have a (kind of
crude) way to interact with other programs.
Original issue reported on code.google.com by [email protected]
on 25 Dec 2008 at 8:46
transpose(interval)
That's all I'm saying.
Should be done for version 0.3
Original issue reported on code.google.com by [email protected]
on 7 Sep 2008 at 4:25
To be able to print more complex note values than whole, halve, quarter,
eight, etc. notes. All the prerequisites in the value module are there;
probably need to look up some lilypond notation.
Original issue reported on code.google.com by [email protected]
on 19 Jan 2009 at 2:07
Generate tablature in text format. The hardest part is probably finding out
which fingering to use. This functionality could also be used in a graphic
representation of a guitar (to show chords, etc.).
Original issue reported on code.google.com by [email protected]
on 7 Sep 2008 at 4:22
In Python 2.5, when I try 'import mingus.midi.MidiFileOut', I get the
following:
import mingus.midi.MidiFileOut
File "C:\Python25\Lib\site-packages\mingus\midi\__init__.py", line 28, in
<module>
import fluidsynth
File "C:\Python25\Lib\site-packages\mingus\midi\fluidsynth.py", line 43,
in <module>
import pyFluidSynth as fs
File "C:\Python25\Lib\site-packages\mingus\midi\pyFluidSynth.py", line
27, in <module>
_fl = CDLL(find_library('fluidsynth'))
File "C:\Python25\lib\ctypes\__init__.py", line 348, in __init__
self._handle = _dlopen(self._name, mode)
TypeError: expected string or Unicode object, NoneType found
I don't have fluidsynth installed, but shouldn't the midi file classes work
without it?
Original issue reported on code.google.com by [email protected]
on 7 Jan 2009 at 10:10
As suggested by James McDermott in
http://groups.google.com/group/mingus-python/browse_thread/thread/92bfdcb4902928
58
Original issue reported on code.google.com by [email protected]
on 28 Jun 2009 at 4:42
New functions.
Original issue reported on code.google.com by [email protected]
on 15 Feb 2009 at 5:30
A function that can find substitutions for chords in progressions.
For instance:
The chord progression is A, D, A, E7
Now we ask substitute for a substitute of E7
It returns a list containing a couple of harmonically equivallent
substitutions, like G#dim, etc.
Added bonus:
If it can return a list of chords and lists of chords. The lists of
chords should be a valid progression substituting for the chord.
Maybe a max_chord argument? eg.
substitute(chord, progression, key, max_chord_in_answer)
substitute("E7", ["A", "D", "A", "E7"], "A", 2)
["G#dim", ["F", "E7"], .....]
Original issue reported on code.google.com by [email protected]
on 7 Sep 2008 at 4:38
We need a way to represent triplets, quintuplets, etc.
It's probably easiest to do this with a tuple; eg. (4/3) and (4/5) for
quarter triplets and quarter quintuplets. This probably doesn't play too
well with the floating point stuff in Bar, thus changing the is_full method
among others would probably be necessary.
Planned for version 0.4
Original issue reported on code.google.com by [email protected]
on 7 Sep 2008 at 4:16
A general purpose midi sequencer in the midi package, so that we can have
one to interface with fluidsynth, one to route midi messages, etc. Can
probably easily be extracted from midi.fluidsynth.
Also think about and look into integrating some kind of observer pattern,
so that you can add listeners instead of subclassing. The notify method
could become pretty complex anyway so it might be redundant.
Original issue reported on code.google.com by [email protected]
on 19 Jan 2009 at 2:05
On top of the Sequencer module build a MidiSequencer that converts the
received events to bytecode and passes it on to some other method.
Original issue reported on code.google.com by [email protected]
on 24 Jun 2009 at 4:33
It would be nice to be able to represent vocal and other polyphonic music
on a single staff. Maybe subclass Bar and Track to PolyphonicBar and
PolyphonicTrack?
Original issue reported on code.google.com by [email protected]
on 7 Sep 2008 at 4:18
See http://en.wikipedia.org/wiki/Note table with subsubcontra to six-lined
Original issue reported on code.google.com by [email protected]
on 28 Jun 2009 at 11:51
May I request changing all instances of "eight" to "eighth" in the
core.value module? "eight" is a misprint, and it is an error since eight =
8 and eighth = 1/8. (There is no such thing as an "eight note.")
This includes fixing hundred_twenty_eight as well as the documentation.
Sorry to be nit-picky, but this error is certain to confuse programmers.
Many thanks for your excellent work.
Original issue reported on code.google.com by [email protected]
on 4 Jun 2009 at 9:57
Would it be possible to have a choice in the scale function that is used in
the natural triads and sevenths generators in core.chords?
Original issue reported on code.google.com by [email protected]
on 19 Jan 2009 at 1:57
To deal with the dynamic library program on Windows (see also issue #36).
Original issue reported on code.google.com by [email protected]
on 2 Mar 2009 at 6:11
A tuple (scales, chords)
chords is a list [[place_in_beat, [chords]], [place_in_beat, [chords]]
Original issue reported on code.google.com by [email protected]
on 7 Sep 2008 at 4:51
Could be very useful. Only thing is: what format? Rolling our own: ascii,
binary? Or supporting another format that does the job?
Original issue reported on code.google.com by [email protected]
on 7 Sep 2008 at 4:45
An algorithm that can calculate the scales that are possible over a given
chord / chords
Original issue reported on code.google.com by [email protected]
on 7 Sep 2008 at 4:50
The series partly generated by value.dots is the geometric series with the
common ratio 1/2 (http://en.wikipedia.org/wiki/Geometric_series). Which can
be written as
(1.0 - 0.5 ** nr) / 0.5
The whole function thus becomes:
return value / ((1.0 - 0.5 ** nr) / 0.5)
Original issue reported on code.google.com by [email protected]
on 11 Feb 2009 at 3:37
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.