CreativePython 0.1.4__tar.gz → 0.1.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. {creativepython-0.1.4/src/CreativePython.egg-info → creativepython-0.1.6}/PKG-INFO +33 -13
  2. {creativepython-0.1.4 → creativepython-0.1.6}/README.md +31 -12
  3. {creativepython-0.1.4 → creativepython-0.1.6}/pyproject.toml +2 -1
  4. {creativepython-0.1.4 → creativepython-0.1.6/src/CreativePython.egg-info}/PKG-INFO +33 -13
  5. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython.egg-info/requires.txt +1 -0
  6. {creativepython-0.1.4 → creativepython-0.1.6}/src/gui.py +6 -6
  7. {creativepython-0.1.4 → creativepython-0.1.6}/LICENSE +0 -0
  8. {creativepython-0.1.4 → creativepython-0.1.6}/MANIFEST.in +0 -0
  9. {creativepython-0.1.4 → creativepython-0.1.6}/setup.cfg +0 -0
  10. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/__init__.py +0 -0
  11. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/_creativepythonSetup.py +0 -0
  12. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/_soundfont.py +0 -0
  13. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/.DS_Store +0 -0
  14. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/ArvoPart.CantusInMemoriam.py +0 -0
  15. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/ConcretPH_Xenakis.py +0 -0
  16. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/DeepPurple.SmokeOnTheWater.py +0 -0
  17. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/JS_Bach.Canon.TriasHarmonica.BWV1072.py +0 -0
  18. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/JS_Bach.Canon_1.GoldbergGround.BWV1087.py +0 -0
  19. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/Mozart.MusikalischesWurfelspiel.py +0 -0
  20. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/PierreCage.StructuresPourDeuxChances.py +0 -0
  21. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/RGB_Display.py +0 -0
  22. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/TerryRiley.InC.py +0 -0
  23. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/arpeggiator1.py +0 -0
  24. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/arpeggiator2.py +0 -0
  25. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/autumnLeaves.py +0 -0
  26. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/axelF.py +0 -0
  27. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/biosignals.txt +0 -0
  28. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/boids.py +0 -0
  29. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/brownianMelody.py +0 -0
  30. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/changesByTupac.py +0 -0
  31. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/clementine.py +0 -0
  32. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/continuousPitchInstrumentAudio.py +0 -0
  33. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/drumExample.py +0 -0
  34. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/drumMachinePattern1.py +0 -0
  35. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/drumsComeAlive.py +0 -0
  36. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/fibonacci.py +0 -0
  37. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/findPitchOctave.py +0 -0
  38. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/furElise.py +0 -0
  39. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/generativeMusic.py +0 -0
  40. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/goldenTree.py +0 -0
  41. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/guidoWordMusic.py +0 -0
  42. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/harmonicesMundi.py +0 -0
  43. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/harmonicesMundiRevisisted.py +0 -0
  44. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/harmonographLateral.py +0 -0
  45. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/harmonographRotary.py +0 -0
  46. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/iPianoBlackDown.png +0 -0
  47. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/iPianoOctave.png +0 -0
  48. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/iPianoParallel.py +0 -0
  49. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/iPianoSimple.py +0 -0
  50. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/iPianoWhiteCenterDown.png +0 -0
  51. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/iPianoWhiteLeftDown.png +0 -0
  52. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/iPianoWhiteRightDown.png +0 -0
  53. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/midiIn1.py +0 -0
  54. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/midiIn2.py +0 -0
  55. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/midiIn3.py +0 -0
  56. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/midiOut.a.py +0 -0
  57. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/midiOut.b.py +0 -0
  58. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/midiSynthesizer.py +0 -0
  59. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/midiSynthesizer2.py +0 -0
  60. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/moondog-bird_slament.wav +0 -0
  61. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/musicalSphere.py +0 -0
  62. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/note.py +0 -0
  63. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/octoplus.py +0 -0
  64. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/oscIn1.py +0 -0
  65. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/oscIn2.py +0 -0
  66. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/pentatonicMelody.py +0 -0
  67. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/pianoPhase.py +0 -0
  68. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/pianoRollGenerator.py +0 -0
  69. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/playNote.py +0 -0
  70. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/proteinMusic.py +0 -0
  71. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/randomCircles.py +0 -0
  72. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/randomCirclesThroughMidiInput.py +0 -0
  73. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/randomCirclesTimed.py +0 -0
  74. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/retrograde.a.py +0 -0
  75. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/retrograde.b.py +0 -0
  76. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/retrograde.c.py +0 -0
  77. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/rowYourBoat.py +0 -0
  78. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/scaleTutor.py +0 -0
  79. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/sierpinskiTriangle.py +0 -0
  80. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/simpleButtonInstrument.py +0 -0
  81. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/simpleCircleInstrument.py +0 -0
  82. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/sineMelody.py +0 -0
  83. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/sineMelodyPlus.py +0 -0
  84. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/sliderControl.py +0 -0
  85. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/sonifyBiosignals.py +0 -0
  86. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/sonifyImage.py +0 -0
  87. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/soundscapeLoutrakiSunset.jpg +0 -0
  88. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/stringQuartet.py +0 -0
  89. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/textMusic.py +0 -0
  90. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/theWayItIs.py +0 -0
  91. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/themeAndVariations.py +0 -0
  92. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/throwingDice.py +0 -0
  93. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/windChimes.py +0 -0
  94. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/examples/zipfMetrics.py +0 -0
  95. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/resources/.DS_Store +0 -0
  96. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/resources/550973__luizguilherme_a__clean-guitarr-riff.mp3 +0 -0
  97. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/resources/chopper.jpg +0 -0
  98. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython/resources/de-brazzas-monkey.jpg +0 -0
  99. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython.egg-info/SOURCES.txt +0 -0
  100. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython.egg-info/dependency_links.txt +0 -0
  101. {creativepython-0.1.4 → creativepython-0.1.6}/src/CreativePython.egg-info/top_level.txt +0 -0
  102. {creativepython-0.1.4 → creativepython-0.1.6}/src/_RealtimeAudioPlayer.py +0 -0
  103. {creativepython-0.1.4 → creativepython-0.1.6}/src/iannix.py +0 -0
  104. {creativepython-0.1.4 → creativepython-0.1.6}/src/image.py +0 -0
  105. {creativepython-0.1.4 → creativepython-0.1.6}/src/markov.py +0 -0
  106. {creativepython-0.1.4 → creativepython-0.1.6}/src/midi.py +0 -0
  107. {creativepython-0.1.4 → creativepython-0.1.6}/src/music.py +0 -0
  108. {creativepython-0.1.4 → creativepython-0.1.6}/src/osc.py +0 -0
  109. {creativepython-0.1.4 → creativepython-0.1.6}/src/timer.py +0 -0
  110. {creativepython-0.1.4 → creativepython-0.1.6}/src/zipf.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: CreativePython
3
- Version: 0.1.4
3
+ Version: 0.1.6
4
4
  Summary: A Python-based software environment for developing algorithmic art projects.
5
5
  Author-email: "Dr. Bill Manaris" <manaris@cofc.edu>, Taj Ballinger <ballingertj@g.cofc.edu>, Trevor Ritchie <ritchiets@g.cofc.edu>
6
6
  License: MIT License
@@ -37,6 +37,7 @@ Requires-Dist: tinysoundfont>=0.3.6
37
37
  Requires-Dist: osc4py3>=1.0.8
38
38
  Requires-Dist: mido>=1.3.3
39
39
  Requires-Dist: PySide6>=6.9.1
40
+ Requires-Dist: python-rtmidi>=1.5.8
40
41
  Requires-Dist: sounddevice>=0.5.2
41
42
  Requires-Dist: soundfile>=0.13.1
42
43
  Requires-Dist: tqdm>=4.67.1
@@ -58,24 +59,31 @@ CreativePython is distributed under the MIT License.
58
59
 
59
60
  This package is still under development.
60
61
 
61
- # Beginner Installation (IDLE)
62
+ # Requirements
62
63
 
63
- 1. Download and install the latest version of [Python](https://www.python.org/downloads/).
64
+ Before installing CreativePython, you will need:
64
65
 
65
- 2. Download the [CreativePython Setup Script](https://www.dropbox.com/scl/fi/253bvfqsf0ij3rmza88q5/_creativepythonSetup.py?rlkey=iu4y4u8pujltgfx6kbjmodu9m&dl=1).
66
+ - **Python3**, version 3.9 or greater [[Download](https://www.python.org/downloads/)]
67
+ - **A C++ compiler** (see **Troubleshooting** below)
66
68
 
67
- 3. Open `creativePythonSetup.py` with IDLE, Python's Integrated Development Learning Environment.
69
+ # Beginner Installation (Windows/MacOS)
68
70
 
69
- 4. From the IDLE toolbar, select `Run`, then `Run Module`.
71
+ 1. Download the [CreativePython Setup Script](https://www.dropbox.com/scl/fi/253bvfqsf0ij3rmza88q5/_creativepythonSetup.py?rlkey=iu4y4u8pujltgfx6kbjmodu9m&dl=1).
70
72
 
71
- 5. CreativePython will check for its requirements on your system, download any missing requirements, and install its libraries.
73
+ 2. Open `creativePythonSetup.py` with IDLE, Python's Integrated Development Learning Environment.
72
74
 
73
- 6. When you see `[CreativePython Setup]: CreativePython installed successfully.`, you're all done! You're ready to start using CreativePython.
75
+ 3. From the IDLE toolbar, select `Run`, then `Run Module`.
74
76
 
75
- **NOTE**: You can use the setup script in any Python3 environment - not just IDLE!
77
+ 4. CreativePython will check for its requirements on your system, download any missing requirements, and install its libraries.
78
+
79
+ 5. If you see `[CreativePython Setup]: CreativePython installed successfully.`, you're all done! You're ready to start using CreativePython in your Python code.
80
+
81
+ - To test the installation, try out the **playNote** example below!
76
82
 
77
83
  # Custom Installation
78
84
 
85
+ If you're familiar with Python development, we recommend installing CreativePython through the Command Prompt/Terminal.
86
+
79
87
  ## Windows
80
88
 
81
89
  Install CreativePython using `pip`:
@@ -116,7 +124,7 @@ from music import Note, Play, C4, HN
116
124
 
117
125
  Or a similar statement. CreativePython includes a number of useful constants, so we recommend using wildcard imports like `from music import *`.
118
126
 
119
- **NOTE**: The first time you import `music`, CreativePython will ask permission to download a high-quality soundfont (FluidR3 G2-2.sf2) for you. You should only have to do this once.
127
+ **NOTE:** The first time you import `music`, CreativePython will download a high-quality soundfont (FluidR3 G2-2.sf2) for you. You should only have to do this once.
120
128
 
121
129
  ## Running CreativePython programs
122
130
 
@@ -140,12 +148,24 @@ note = Note(C4, HN) # create a middle C half note
140
148
  Play.midi(note) # and play it!
141
149
  ```
142
150
 
143
- In a terminal, run the code in interactive mode:
151
+ In IDLE, you can open playNote.py, and select **Run**, then **Run Module** from the toolbar.
152
+
153
+ In a terminal, run playNote.py in interactive mode:
144
154
 
145
155
  ```
146
156
  python -i playNote.py
147
157
  ```
148
158
 
149
- If this is the first time you've used CreativePython, it will ask to download a soundfont.
150
-
151
159
  After you do, you should hear a single C4 half-note.
160
+
161
+ ## Troubleshooting
162
+
163
+ ### CMake configuration failed
164
+
165
+ Some of CreativePython's libraries need to compile C++ code during installation.
166
+
167
+ - On Windows, download and install [Visual Studio Build Tools 2022](https://visualstudio.microsoft.com/downloads/). In the Visual Studio installer, make sure "C++ Build Tools" is checked.
168
+
169
+ - On MacOS, you can download and install [XCode from the App Store](https://apps.apple.com/us/app/xcode/id497799835?mt=12).
170
+
171
+ Restart your computer, then try installing CreativePython again.
@@ -9,24 +9,31 @@ CreativePython is distributed under the MIT License.
9
9
 
10
10
  This package is still under development.
11
11
 
12
- # Beginner Installation (IDLE)
12
+ # Requirements
13
13
 
14
- 1. Download and install the latest version of [Python](https://www.python.org/downloads/).
14
+ Before installing CreativePython, you will need:
15
15
 
16
- 2. Download the [CreativePython Setup Script](https://www.dropbox.com/scl/fi/253bvfqsf0ij3rmza88q5/_creativepythonSetup.py?rlkey=iu4y4u8pujltgfx6kbjmodu9m&dl=1).
16
+ - **Python3**, version 3.9 or greater [[Download](https://www.python.org/downloads/)]
17
+ - **A C++ compiler** (see **Troubleshooting** below)
17
18
 
18
- 3. Open `creativePythonSetup.py` with IDLE, Python's Integrated Development Learning Environment.
19
+ # Beginner Installation (Windows/MacOS)
19
20
 
20
- 4. From the IDLE toolbar, select `Run`, then `Run Module`.
21
+ 1. Download the [CreativePython Setup Script](https://www.dropbox.com/scl/fi/253bvfqsf0ij3rmza88q5/_creativepythonSetup.py?rlkey=iu4y4u8pujltgfx6kbjmodu9m&dl=1).
21
22
 
22
- 5. CreativePython will check for its requirements on your system, download any missing requirements, and install its libraries.
23
+ 2. Open `creativePythonSetup.py` with IDLE, Python's Integrated Development Learning Environment.
23
24
 
24
- 6. When you see `[CreativePython Setup]: CreativePython installed successfully.`, you're all done! You're ready to start using CreativePython.
25
+ 3. From the IDLE toolbar, select `Run`, then `Run Module`.
25
26
 
26
- **NOTE**: You can use the setup script in any Python3 environment - not just IDLE!
27
+ 4. CreativePython will check for its requirements on your system, download any missing requirements, and install its libraries.
28
+
29
+ 5. If you see `[CreativePython Setup]: CreativePython installed successfully.`, you're all done! You're ready to start using CreativePython in your Python code.
30
+
31
+ - To test the installation, try out the **playNote** example below!
27
32
 
28
33
  # Custom Installation
29
34
 
35
+ If you're familiar with Python development, we recommend installing CreativePython through the Command Prompt/Terminal.
36
+
30
37
  ## Windows
31
38
 
32
39
  Install CreativePython using `pip`:
@@ -67,7 +74,7 @@ from music import Note, Play, C4, HN
67
74
 
68
75
  Or a similar statement. CreativePython includes a number of useful constants, so we recommend using wildcard imports like `from music import *`.
69
76
 
70
- **NOTE**: The first time you import `music`, CreativePython will ask permission to download a high-quality soundfont (FluidR3 G2-2.sf2) for you. You should only have to do this once.
77
+ **NOTE:** The first time you import `music`, CreativePython will download a high-quality soundfont (FluidR3 G2-2.sf2) for you. You should only have to do this once.
71
78
 
72
79
  ## Running CreativePython programs
73
80
 
@@ -91,12 +98,24 @@ note = Note(C4, HN) # create a middle C half note
91
98
  Play.midi(note) # and play it!
92
99
  ```
93
100
 
94
- In a terminal, run the code in interactive mode:
101
+ In IDLE, you can open playNote.py, and select **Run**, then **Run Module** from the toolbar.
102
+
103
+ In a terminal, run playNote.py in interactive mode:
95
104
 
96
105
  ```
97
106
  python -i playNote.py
98
107
  ```
99
108
 
100
- If this is the first time you've used CreativePython, it will ask to download a soundfont.
109
+ After you do, you should hear a single C4 half-note.
110
+
111
+ ## Troubleshooting
112
+
113
+ ### CMake configuration failed
114
+
115
+ Some of CreativePython's libraries need to compile C++ code during installation.
116
+
117
+ - On Windows, download and install [Visual Studio Build Tools 2022](https://visualstudio.microsoft.com/downloads/). In the Visual Studio installer, make sure "C++ Build Tools" is checked.
118
+
119
+ - On MacOS, you can download and install [XCode from the App Store](https://apps.apple.com/us/app/xcode/id497799835?mt=12).
101
120
 
102
- After you do, you should hear a single C4 half-note.
121
+ Restart your computer, then try installing CreativePython again.
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "CreativePython"
7
- version = "0.1.4"
7
+ version = "0.1.6"
8
8
  description = "A Python-based software environment for developing algorithmic art projects."
9
9
  readme = "README.md"
10
10
  license = { file = "LICENSE" }
@@ -25,6 +25,7 @@ dependencies = [
25
25
  "osc4py3>=1.0.8",
26
26
  "mido>=1.3.3",
27
27
  "PySide6>=6.9.1",
28
+ "python-rtmidi>=1.5.8",
28
29
  "sounddevice>=0.5.2",
29
30
  "soundfile>=0.13.1",
30
31
  "tqdm>=4.67.1",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: CreativePython
3
- Version: 0.1.4
3
+ Version: 0.1.6
4
4
  Summary: A Python-based software environment for developing algorithmic art projects.
5
5
  Author-email: "Dr. Bill Manaris" <manaris@cofc.edu>, Taj Ballinger <ballingertj@g.cofc.edu>, Trevor Ritchie <ritchiets@g.cofc.edu>
6
6
  License: MIT License
@@ -37,6 +37,7 @@ Requires-Dist: tinysoundfont>=0.3.6
37
37
  Requires-Dist: osc4py3>=1.0.8
38
38
  Requires-Dist: mido>=1.3.3
39
39
  Requires-Dist: PySide6>=6.9.1
40
+ Requires-Dist: python-rtmidi>=1.5.8
40
41
  Requires-Dist: sounddevice>=0.5.2
41
42
  Requires-Dist: soundfile>=0.13.1
42
43
  Requires-Dist: tqdm>=4.67.1
@@ -58,24 +59,31 @@ CreativePython is distributed under the MIT License.
58
59
 
59
60
  This package is still under development.
60
61
 
61
- # Beginner Installation (IDLE)
62
+ # Requirements
62
63
 
63
- 1. Download and install the latest version of [Python](https://www.python.org/downloads/).
64
+ Before installing CreativePython, you will need:
64
65
 
65
- 2. Download the [CreativePython Setup Script](https://www.dropbox.com/scl/fi/253bvfqsf0ij3rmza88q5/_creativepythonSetup.py?rlkey=iu4y4u8pujltgfx6kbjmodu9m&dl=1).
66
+ - **Python3**, version 3.9 or greater [[Download](https://www.python.org/downloads/)]
67
+ - **A C++ compiler** (see **Troubleshooting** below)
66
68
 
67
- 3. Open `creativePythonSetup.py` with IDLE, Python's Integrated Development Learning Environment.
69
+ # Beginner Installation (Windows/MacOS)
68
70
 
69
- 4. From the IDLE toolbar, select `Run`, then `Run Module`.
71
+ 1. Download the [CreativePython Setup Script](https://www.dropbox.com/scl/fi/253bvfqsf0ij3rmza88q5/_creativepythonSetup.py?rlkey=iu4y4u8pujltgfx6kbjmodu9m&dl=1).
70
72
 
71
- 5. CreativePython will check for its requirements on your system, download any missing requirements, and install its libraries.
73
+ 2. Open `creativePythonSetup.py` with IDLE, Python's Integrated Development Learning Environment.
72
74
 
73
- 6. When you see `[CreativePython Setup]: CreativePython installed successfully.`, you're all done! You're ready to start using CreativePython.
75
+ 3. From the IDLE toolbar, select `Run`, then `Run Module`.
74
76
 
75
- **NOTE**: You can use the setup script in any Python3 environment - not just IDLE!
77
+ 4. CreativePython will check for its requirements on your system, download any missing requirements, and install its libraries.
78
+
79
+ 5. If you see `[CreativePython Setup]: CreativePython installed successfully.`, you're all done! You're ready to start using CreativePython in your Python code.
80
+
81
+ - To test the installation, try out the **playNote** example below!
76
82
 
77
83
  # Custom Installation
78
84
 
85
+ If you're familiar with Python development, we recommend installing CreativePython through the Command Prompt/Terminal.
86
+
79
87
  ## Windows
80
88
 
81
89
  Install CreativePython using `pip`:
@@ -116,7 +124,7 @@ from music import Note, Play, C4, HN
116
124
 
117
125
  Or a similar statement. CreativePython includes a number of useful constants, so we recommend using wildcard imports like `from music import *`.
118
126
 
119
- **NOTE**: The first time you import `music`, CreativePython will ask permission to download a high-quality soundfont (FluidR3 G2-2.sf2) for you. You should only have to do this once.
127
+ **NOTE:** The first time you import `music`, CreativePython will download a high-quality soundfont (FluidR3 G2-2.sf2) for you. You should only have to do this once.
120
128
 
121
129
  ## Running CreativePython programs
122
130
 
@@ -140,12 +148,24 @@ note = Note(C4, HN) # create a middle C half note
140
148
  Play.midi(note) # and play it!
141
149
  ```
142
150
 
143
- In a terminal, run the code in interactive mode:
151
+ In IDLE, you can open playNote.py, and select **Run**, then **Run Module** from the toolbar.
152
+
153
+ In a terminal, run playNote.py in interactive mode:
144
154
 
145
155
  ```
146
156
  python -i playNote.py
147
157
  ```
148
158
 
149
- If this is the first time you've used CreativePython, it will ask to download a soundfont.
150
-
151
159
  After you do, you should hear a single C4 half-note.
160
+
161
+ ## Troubleshooting
162
+
163
+ ### CMake configuration failed
164
+
165
+ Some of CreativePython's libraries need to compile C++ code during installation.
166
+
167
+ - On Windows, download and install [Visual Studio Build Tools 2022](https://visualstudio.microsoft.com/downloads/). In the Visual Studio installer, make sure "C++ Build Tools" is checked.
168
+
169
+ - On MacOS, you can download and install [XCode from the App Store](https://apps.apple.com/us/app/xcode/id497799835?mt=12).
170
+
171
+ Restart your computer, then try installing CreativePython again.
@@ -2,6 +2,7 @@ tinysoundfont>=0.3.6
2
2
  osc4py3>=1.0.8
3
3
  mido>=1.3.3
4
4
  PySide6>=6.9.1
5
+ python-rtmidi>=1.5.8
5
6
  sounddevice>=0.5.2
6
7
  soundfile>=0.13.1
7
8
  tqdm>=4.67.1
@@ -984,12 +984,12 @@ class Display(Interactable):
984
984
 
985
985
  # determine item under cursor at press-time for correct focus
986
986
  pressedItem = None
987
- i = 0
988
- while pressedItem is None and i < len(self.items):
987
+ i = len(self.items) - 1
988
+ while pressedItem is None and i >=0:
989
989
  item = self.items[i]
990
990
  if item.contains(x, y):
991
991
  pressedItem = item
992
- i += 1
992
+ i = i - 1
993
993
 
994
994
  # set focus based on press location
995
995
  self.focusItem = pressedItem
@@ -1049,12 +1049,12 @@ class Display(Interactable):
1049
1049
  # while dragging we avoid changing hover/focus behavior based on items under the cursor
1050
1050
  if not isMouseDrag:
1051
1051
  hoverItem = None # look for a hover item
1052
- i = 0
1053
- while hoverItem is None and i < len(self.items):
1052
+ i = len(self.items) - 1
1053
+ while hoverItem is None and i >= 0:
1054
1054
  item = self.items[i]
1055
1055
  if item.contains(x, y):
1056
1056
  hoverItem = item
1057
- i += 1
1057
+ i = i - 1
1058
1058
 
1059
1059
  if hoverItem != self.hoverItem: # if hover item has changed,
1060
1060
  if self.hoverItem is not None: # was there an old hover item?
File without changes
File without changes