sugarlabs / musicblocks

Music Blocks -- A musical microworld
https://musicblocks.sugarlabs.org/
GNU Affero General Public License v3.0
588 stars 823 forks source link

Record and Generate Lilypond/ABC (Under Play) #2330

Open pikurasa opened 4 years ago

pikurasa commented 4 years ago

Now that I know a little more about computation (thank you @walterbender ), I can better appreciate the original design of generating lilypond output, which was its own block that could be inserted into the code.

I do still like what we have right now. I like just clicking the button and seeing the music notation quicker than listening to all the music every time. Great for debugging.

However, if a user creates an interactive program there is no way to really capture the performed output to lilypond.

Perhaps we have a "record as lilypond" and "record as ABC" as an option, possibly as one of the options when the user does a long press for play. Once initiated, the recording begins until the user clicks the STOP button.

Does this seem logical?

walterbender commented 4 years ago

We used to have these blocks (and one for save SVG too). I suppose there is no reason not to add them to the extras palette.

OjasMaywade commented 1 year ago

@pikurasa In this issue, you want to add a record and generate a lilypond/ABC option to the Webapp.

walterbender commented 1 year ago

We used to have a block you could use for saving SVG, Lilypond, etc. The advantage of that is that you could record an interactive session. The current implementation (of Lilypond, ABC, et al.) only let you record a non-interactive session.

OjasMaywade commented 1 year ago

OK, what needs to be done?

walterbender commented 1 year ago

Follow the logic of runninglilypond and figure out how to enable it without triggering the supressOutput mechanism.

OjasMaywade commented 1 year ago

Ok, thanks. I will look into it.

chimosky commented 1 year ago

Deleted the comment as it's possibly spam, this user seems to open PRs and make comments that seem AI generated and they hardly follow up.

pikurasa commented 1 year ago

@MohitGupta14 This is a doable Lilypond-related task.

Basically, a new block (well, reintroduce a deprecated block) that will save the Lilypond for what has been performed until the block has been initiated.

Benefits are described above.

vaishnavi192 commented 9 months ago

@pikurasa if no one is working then I would like to take up this issue. thanks

Vineet1101 commented 4 days ago

Is this issue still open I would like to work on it

walterbender commented 4 days ago

I think basic idea is that musical output should always be recorded into a buffer and the save to Lilypond (or ABC) button just saves. If nothing is in the buffer, then the Lilypond (or ABC) button runs the program as per the current behavior. The clear button can flush the record buffer. I think that will cover all the use cases. (I'd prefer not to add a new block if we can help it.)

Vineet1101 commented 4 days ago

@walterbender I would like to suggest how can we do it Maintain a record buffer that passively logs all musical output during program execution. Provide buttons to: Save the buffer to LilyPond or ABC notation. Clear the buffer if the user wants to reset it. Ensure the system behaves as it currently does when no buffer exists.

walterbender commented 4 days ago

I think we can add clear the buffer to the action of the existing clear button.