Sequencer: turntable

Sequence music using a turntable! When active buttons on each vinyl pass the playhead (needle arm), they play their associated sound.

Screenshots

Screenshot 1

turntable when off.

Screenshot 2

turntable playing one record

Screenshot 3

turntable playing both records

Video

Instructions

Turn on the turntable by pressing space (the time domain display will appear if it is turned on)! You can adjust the phaser to switch between records by using the Left and Right arrow keys. You can move the volume fader to adjust the gain by holding 'v' and using the Up and Down arrow keys. You can move the tempo fader to adjust the BPM by holding 't' and using the Up and Down arrow keys. If you want to pause the records during their cycle, simply press 'P'!

Downloads

ChucK Code

turntable.ck

KB.ck

mouse.ck

circles.ck

instrument.ck

gbutton.ck

controller.ck

player.ck

vinyl.ck

run.ck

Feedback and Reflection

I had a really fun time working on this project. I surprised that my first milestone had worked with relatively low effort (especially after getting gutted by hw1), so I was worried that my idea might have been too unambitious. I was sorely mistaken, however, as it is significantly harder to synchronize two independently functioning sequencers together than it is to make one sequencer. This scaling up exposed all of the problems I had in my code for the first milestone (i.e. using a graphics-first approach), so I had to scrap a lot of my core functionality. Once I was able to get my single record player working with the new logic (having audio and graphics being sequenced independently, but synchronized together), it made it much easier to scale up to two record players. From here, most of the work was making choices about how I wanted the user to interact with the turntable. It was really interesting thinking about the different functional choices I could make (e.g. how switching between vinyls would be controlled) and how those choices would impact the user's experience with the sequencer. I eventually landed on a set of control mappings that I liked, but more importantly, facilitated the music that I wanted to create with the sequencer. I think that this is still limited in terms of it's capability for melody and harmony, but it makes for a really awesome drum machine with simple harmonies/melody lines. Another territory that I did not explore, but I know would be possible given the sequencer's functionality would be polyrhythmic sequencing (not sure if this was what Josh was referring to by Euclidean sequencing), but that would be fun to explore in the future.