sonic-pi-net / sonic-pi

Code. Music. Live.
https://sonic-pi.net
Other
10.73k stars 918 forks source link

Save as MIDI? #854

Open davidashworth opened 8 years ago

davidashworth commented 8 years ago

Had an interesting conversation with a musician friend recently. I demoed Sonic Pi and he was of course impressed. He said - wouldn't it be nice if you could save the output as a midi file so that you could develop further some elements in a sequencer or notation programme..... Is this possible?

samaaron commented 8 years ago

Hi David,

sorry this not possible out of the box. If your friend is interested, it wouldn’t be too hard to code up a solution. However, I’m unlikely to do this for the official release as I’d need to be confident the code was useful and understandable by 10 year olds.

One thing I might consider is an explicit MIDI function for sending MIDI messages out, although it’s unlikely I’ll be looking at MIDI files in any capacity.

Sam

On 4 Dec 2015, at 17:29, davidashworth notifications@github.com wrote:

Had an interesting conversation with a musician friend recently. I demoed Sonic Pi and he was of course impressed. He said - wouldn't it be nice if you could save the output as a midi file so that you could develop further some elements in a sequencer or notation programme..... Is this possible?

— Reply to this email directly or view it on GitHub.

davidashworth commented 8 years ago

Thanks, Sam

i take your point re 10 year olds - but I think secondary schools might be very interested in having a save as midi option. It would then mean that students could go on to develop their compositions in sequencing/notation programmes.....

BananaNeil commented 7 years ago

I just want to say +1 to this.

I'd be happy to take a stab at implementing this feature, if you could point me in the right direction.

My first inclination is to read the documentation for the midi file format. ( http://cs.fit.edu/~ryan/cse4051/projects/midi/midi.html )

algorev commented 7 years ago

You'll also have to find some documentation for the MIDI protocol, but I don't know where you can find that...

EDIT: fixed typo On 11:09, Sat, Apr 15, 2017 BananaNeil notifications@github.com wrote:

I just want to say +1 to this.

I'd be happy to take a stab at implementing this feature, if you could point me in the right direction.

My first inclination is to read the documentation for the midi file format. ( http://cs.fit.edu/~ryan/cse4051/projects/midi/midi.html )

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/samaaron/sonic-pi/issues/854#issuecomment-294281609, or mute the thread https://github.com/notifications/unsubscribe-auth/AWAUuPQXTzL9N6wVFmzS3AcfSm-hxcu2ks5rwIlVgaJpZM4GvCCs .

awlnx commented 6 years ago

I really think this feature would be helpful to professional and amature musicians. while traditional piano roll midi editing is great for quick edits in traditional DAWs, being able to program out and export sequences would be a big help. Being able to write to midi files, and output midi messages also would not only be useful for experienced musicians, but also for kids as the midi file and be used with other programs for enhanced learning. a child with help from an instructor could write out an arpeggio in the program, and open the midi file in a sheet music program or a piano learning program, allowing them to make connections between the coding of the music and playing music/basic music theory.

I’d need to be confident the code was useful and understandable by 10 year olds. Looking at some arduino mid libraries, it doesn't seem to hard to wrap the api nicely https://github.com/FortySevenEffects/arduino_midi_library/

I need to do some research but if the documentation and difficulty level aren't too bad I am willing to take this up if BananaNeil isn't still working on it.

samaaron commented 6 years ago

Hi, as far as I'm aware there's nobody currently working on exporting MIDI files.

Whilst it's something I'm happy to discuss, I'd have to be absolutely confident any implementation was suitably simple enough to teach to 10 year old kids before I'd consider including it.

My suggestion would be to hook into the existing midi fns and instead of sending MIDI out to hardware, instead send it to a file.