Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
ca6c69f
Adding starter file for drawing program
Mar 2, 2018
97107f0
Uploaded project proposal
Mar 6, 2018
c4dc342
Test sound playback ability from image using pygame
draconian9908 Mar 6, 2018
093934f
Program to create grid and draw note blocks on it
Mar 9, 2018
1b368dd
Add .md for Mid-Project Check-In
draconian9908 Mar 9, 2018
e4dbfa3
Merge branch 'master' of https://github.com/jsieving/InteractiveProgr…
draconian9908 Mar 9, 2018
211fa63
Update Mid_Project_CheckIn.md
draconian9908 Mar 9, 2018
b7a504f
Added sweeper
Mar 9, 2018
05ecabe
Merge branch 'master' of github.com:jsieving/InteractiveProgramming
Mar 9, 2018
227b28b
Add erase functioanlity
draconian9908 Mar 9, 2018
a59394e
Resolve merge conflicts
draconian9908 Mar 9, 2018
3480ce8
Integrated note playback
Mar 14, 2018
9a9f3b6
Draw buttons, no function yet
draconian9908 Mar 15, 2018
b4dc66b
Spring cleaning
draconian9908 Mar 16, 2018
e0bce39
IT WORKS!
Mar 16, 2018
ad10f2a
Fix merge conflicts
draconian9908 Mar 16, 2018
07566f3
Add README.md with instructions
draconian9908 Mar 16, 2018
ed24f1c
Added finishing touches and better documentation
Mar 16, 2018
3bc3bc8
Cleaning unused files
jsieving Mar 16, 2018
90befff
Cleaning unused files
jsieving Mar 16, 2018
d8278bd
Cleaning unused files
jsieving Mar 16, 2018
a70f306
Cleaning unused files
jsieving Mar 16, 2018
02ced7f
Cleaning unused files
jsieving Mar 16, 2018
3bf4da1
Cleaning unused files
jsieving Mar 16, 2018
5418881
Cleaning unused files
jsieving Mar 16, 2018
d9bdaf7
Cleaning unused files
jsieving Mar 16, 2018
6219ac4
Added final, final touches.
Mar 16, 2018
23cff81
Merge branch 'master' of github.com:jsieving/InteractiveProgramming
Mar 16, 2018
ab8a902
Cleaning local directory
draconian9908 Mar 16, 2018
c79c829
Delete file used for webpage
draconian9908 Mar 16, 2018
8ed4200
Merge branch 'master' of https://github.com/jsieving/InteractiveProgr…
draconian9908 Mar 16, 2018
a5e7ca5
Update README.md with webpage link
draconian9908 Mar 16, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions Mid_Project_CheckIn.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Mid-Project Check-In

## Sound from Interactive Drawing by Jane and Lydia

### Current Overview

So far, we have tested sound playback using pygame and have made a lot of progress in our code for interactive drawing. We have determined that pygame is capable of doing what we want in terms of sound, and we know one method which we can use to fulfill that need. We have also gotten to the point with our drawing code that the user can fill in squares in a grid with different shapes and colors using their mouse.

Going forward, we are working on implementing a radial sweep in the drawing that will generate a dictionary of the grid points around where you click in circles of increasing size. Meaning, you will be able to click on the grid at some point, and the program will look at larger and larger circles with their centers at the point you clicked, and will generate a list of points on each circle that you have drawn in. In the future, this will allow us to play sound based on the location, shape, and color of the points the user has drawn in. We will most likely create a separate code file for the sound playback, then import it into the drawing code for use. At this point in time, we plan to have the sound chosen for each note determined as follows:

*Shape: Note vs. Chord*

*Fill: Short vs. Sustained*

*Color: Instrument/Sound Type*

*Angle on the Circle: Pitch (i.e., top pizza = C, bottom pizza = F)*

### Next Steps

- Generate sweeper class that will sweep the aforementioned circles.
- Add ability to look at the blocks in a ring and choose sounds based on them
- Create dictionaries of block qualities => sound properties
- Determine angle of sound block relative to start point
- Add a LOT of sound files!
- Play sounds in a ring all at once, rings one after another
- Add buttons for UI (optional but preferred)
16 changes: 16 additions & 0 deletions Proposal.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
##Project Proposal##

Our idea for our project is to create a program where the user draws on the screen and the program generates music based on the drawing. We will be exploring user input, interactive drawing, interpreting information on the screen, and music generation for this. At the minimun, we would like to have a program where the user can place "stamps" in different colors or shapes with the placement representing pitch and the color or shape representing a type of sound. The program would then generate music as if it were reading the notes on a staff. What we really hope to do is have a program that can somehow interpret any drawing as music without using as rigid a structure of placement. A stretch goal would be to upload in image file and have the program generate music from that. This might involve extracting the major shapes in the image.

Lydia anticipates that figuring out what user-defined types we need to create will be the most challenging part of this project. She is excited to learn how to generate music with the program.
Jane thinks that figuring out how to quantify and interpret the drawings on the screen will be the hardest part of this project. She is interested in learning how to process images and find the major features in them.

We plan to use pygame to deal with user interaction and most likely the music generation as well. We're going to have to use the drawings on the screen as input data for the program, and we're not sure whether we should store the location, color, etc. of brushstrokes as they're created, or actually process the screen like an image. We might be able to use something like openCV to process the drawing, but we'll have to do more research to find the best tool.

By the check-in on Friday, we want to have some of our basic classes written (the canvas and marker, for example) and a plan of the classes that we will need. We also want to have a roadmap for the project laid out with the different goals and tasks for completion. We will have at least the next few tasks assigned to one of us. We will have the libraries that we are using installed and make sure they have the functionality that we need.

Our biggest concern for the success of this project is the challenge of translating drawing data into music data. There is a relatively straightforward way as described above, treating the canvas like a staff, but to have the more freeform use that we want will be more complicated. We're not sure if we'll be able to process the drawings in the way that we want.




21 changes: 19 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,19 @@
# InteractiveProgramming
This is the base repo for the interactive programming project for Software Design, Spring 2018 at Olin College.
# Radial Synth

## By Jane and Lydia

### Prep

- install `future` module by running `pip install future`
- download fluidsynth module at https://github.com/nwhitehead/pyfluidsynth/archive/master.zip
- unpack zip file
- in command terminal, make sure you are in the folder you just extracted, fluidsynth-master
- run `python setup.py install`

### Run Code

Make sure sound_files folder is downloaded to same directory as radialsynth.py, then run `python radialsynth.py`

### View Webpage

View project webpage [here](https://draconian9908.github.io/RadialSynth/)
Loading