Hi all,
I have been playing around a bit with midi support and was pretty delighted that you can actually synthesize inputs from a midi keyboard using MidiInputMorph! Out of curiosity, here are a few short questions:
1. As far as I could find out, there is currently no support for recording midi in the Trunk, is it? There are MIDISynth and MidiInputMorph, but there seems not to exist any connection to the PianoKeyboardMorph or the Piano Roll yet? Imagine you could press Record in a score player and add another track by playing it on your physical midi keyboard ... 2. Also, there is not yet any file-out for midi, right? This would also be cool: Store the events from an input midi port, add them as a new track to a score, and serialize the score to a .mid file later. 3. Last but not least: Should the MIDIPlugin be fully functional on Linux? On my Ubuntu machine, I can use the output port but primitiveMidiRead always fails. On Windows, everything is fine.
Have a nice weekend!
Best,
Christoph
On Sun, Aug 28, 2022 at 4:42 PM Thiede, Christoph < Christoph.Thiede@student.hpi.uni-potsdam.de> wrote:
Hi all,
I have been playing around a bit with midi support and was pretty delighted that you can actually synthesize inputs from a midi keyboard using MidiInputMorph! Out of curiosity, here are a few short questions:
- As far as I could find out, there is currently no support for
recording midi in the Trunk, is it? There are MIDISynth and MidiInputMorph, but there seems not to exist any connection to the PianoKeyboardMorph or the Piano Roll yet? Imagine you could press Record in a score player and add another track by playing it on your physical midi keyboard ... 2. Also, there is not yet any file-out for midi, right? This would also be cool: Store the events from an input midi port, add them as a new track to a score, and serialize the score to a .mid file later.
There is a start for midifilewriter here:
http://wiki.squeak.org/squeak/1406 There could be licensing issues with it though.
Best, Karl
- Last but not least: Should the MIDIPlugin be fully functional on
Linux? On my Ubuntu machine, I can use the output port but primitiveMidiRead always fails. On Windows, everything is fine.
Have a nice weekend!
Best,
Christoph http://www.hpi.de/
On 2022-08-28, at 9:17 AM, karl ramberg karlramberg@gmail.com wrote:
There is a start for midifilewriter here: http://wiki.squeak.org/squeak/1406
My goodness, there's a page that is in need of some updating! And so many interesting projects that still need finishing/harvesting/re-doing...
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim There are no stupid questions. But, there are a lot of inquisitive idiots.
...or simply having their outdated page deleted because they were adopted into Trunk. http://wiki.squeak.org/squeak/2975
Am So., 28. Aug. 2022 um 19:22 Uhr schrieb tim Rowledge tim@rowledge.org:
On 2022-08-28, at 9:17 AM, karl ramberg karlramberg@gmail.com wrote:
There is a start for midifilewriter here: http://wiki.squeak.org/squeak/1406
My goodness, there's a page that is in need of some updating! And so many interesting projects that still need finishing/harvesting/re-doing...
tim
tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim There are no stupid questions. But, there are a lot of inquisitive idiots.
...or maybe just be updated in case somebody will be wondering "where did this page go?" :-) Am 28.08.2022 21:20:08 schrieb Jakob Reschke jakres+squeak@gmail.com: ...or simply having their outdated page deleted because they were adopted into Trunk. http://wiki.squeak.org/squeak/2975 [http://wiki.squeak.org/squeak/2975]
Am So., 28. Aug. 2022 um 19:22 Uhr schrieb tim Rowledge <tim@rowledge.org [mailto:tim@rowledge.org]>:
On 2022-08-28, at 9:17 AM, karl ramberg <karlramberg@gmail.com [mailto:karlramberg@gmail.com]> wrote:
There is a start for midifilewriter here: http://wiki.squeak.org/squeak/1406 [http://wiki.squeak.org/squeak/1406]
My goodness, there's a page that is in need of some updating! And so many interesting projects that still need finishing/harvesting/re-doing...
tim -- tim Rowledge; tim@rowledge.org [mailto:tim@rowledge.org]; http://www.rowledge.org/tim [http://www.rowledge.org/tim] There are no stupid questions. But, there are a lot of inquisitive idiots.
Did that this time. ;-) Also fixed the instructions to Cmd+d instead of Cmd+f and added the hint about using Cmd+I to reduce the list more quickly.
Am Mo., 29. Aug. 2022 um 09:24 Uhr schrieb Marcel Taeumel < marcel.taeumel@hpi.de>:
...or maybe just be updated in case somebody will be wondering "where did this page go?" :-)
Am 28.08.2022 21:20:08 schrieb Jakob Reschke jakres+squeak@gmail.com: ...or simply having their outdated page deleted because they were adopted into Trunk. http://wiki.squeak.org/squeak/2975
Am So., 28. Aug. 2022 um 19:22 Uhr schrieb tim Rowledge <tim@rowledge.org
:
On 2022-08-28, at 9:17 AM, karl ramberg karlramberg@gmail.com wrote:
There is a start for midifilewriter here: http://wiki.squeak.org/squeak/1406
My goodness, there's a page that is in need of some updating! And so many interesting projects that still need finishing/harvesting/re-doing...
tim
tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim There are no stupid questions. But, there are a lot of inquisitive idiots.
On 2022-09-02, at 12:03 PM, Jakob Reschke jakres+squeak@gmail.com wrote:
Did that this time. ;-) Also fixed the instructions to Cmd+d instead of Cmd+f and added the hint about using Cmd+I to reduce the list more quickly.
I added link to this from the Basic Squeak Development Tools page (http://wiki.squeak.org/squeak/4) BUT I notice that the screenshot seems to be wrong; it doesn't really have anything to do with the tracing browser.
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Strange OpCodes: HCF: Halt and Catch Fire
Am Fr., 2. Sept. 2022 um 21:28 Uhr schrieb tim Rowledge tim@rowledge.org:
BUT I notice that the screenshot seems to be wrong; it doesn't really have anything to do with the tracing browser.
And of course it is not representative of what Squeak looks like nowadays, and you can only abstract this away if you already know what you are looking for. There is a tracing browser in the top right quarter of the screenshot, but the screenshot is really about demonstrating a particular color scheme for the world, haha.
So a new screenshot would be in order. What is the most inspiring message trace that we would like to share?
I put this on Squeaksource a few years ago also. The comment gives example of use.
MCHttpRepository location: 'http://www.squeaksource.com/MIDIFileWriter' user: '' password: ''
Best,
Karl
On Sun, Aug 28, 2022 at 6:17 PM karl ramberg karlramberg@gmail.com wrote:
On Sun, Aug 28, 2022 at 4:42 PM Thiede, Christoph < Christoph.Thiede@student.hpi.uni-potsdam.de> wrote:
Hi all,
I have been playing around a bit with midi support and was pretty delighted that you can actually synthesize inputs from a midi keyboard using MidiInputMorph! Out of curiosity, here are a few short questions:
- As far as I could find out, there is currently no support for
recording midi in the Trunk, is it? There are MIDISynth and MidiInputMorph, but there seems not to exist any connection to the PianoKeyboardMorph or the Piano Roll yet? Imagine you could press Record in a score player and add another track by playing it on your physical midi keyboard ... 2. Also, there is not yet any file-out for midi, right? This would also be cool: Store the events from an input midi port, add them as a new track to a score, and serialize the score to a .mid file later.
There is a start for midifilewriter here:
http://wiki.squeak.org/squeak/1406 There could be licensing issues with it though.
Best, Karl
- Last but not least: Should the MIDIPlugin be fully functional on
Linux? On my Ubuntu machine, I can use the output port but primitiveMidiRead always fails. On Windows, everything is fine.
Have a nice weekend!
Best,
Christoph http://www.hpi.de/
- As far as I could find out, there is currently no support for recording midi in the Trunk, is it? There are MIDISynth and MidiInputMorph, but there seems not to exist any connection to the PianoKeyboardMorph or the Piano Roll yet? Imagine you could press Record in a score player and add another track by playing it on your physical midi keyboard ...
- Also, there is not yet any file-out for midi, right? This would also be cool: Store the events from an input midi port, add them as a new track to a score, and serialize the score to a .mid file later.
You can do all that (and more) with muO. Feel free to grab any code you need there...
Stef
About MIDI.
Just in case I have not been clear enough about what I did, or in case I have not screamed it loud enough, let me say it again:
*all music* introduced in
http://www.zogotounga.net/comp/squeak/sqgeo.htm
that is:
http://www.zogotounga.net/zik/Tout%20va%20bien%20(merci).ogg http://www.zogotounga.net/zik/brontosaure.ogg http://www.zogotounga.net/zik/Pentaxoyothol.ogg http://www.zogotounga.net/zik/Rauquosph%C3%A8re.ogg http://www.zogotounga.net/zik/Bulle%20qui%20rulle.ogg http://www.zogotounga.net/zik/lithorale.ogg http://www.zogotounga.net/zik/Blue%20glue.ogg http://www.zogotounga.net/zik/I%27ll%20get%20there,%20again.ogg http://www.zogotounga.net/zik/Day%20one.ogg http://www.zogotounga.net/zik/Busy%20Claude%20is%20late%20again.ogg http://www.zogotounga.net/zik/lava%20me%20baby.ogg http://www.zogotounga.net/zik/Tannit.ogg http://www.zogotounga.net/zik/noumenal%20blues.ogg
and the vast majority of the music from
http://www.zogotounga.net/zik/index.html
has been made *exclusively in Squeak*, and *exclusively in MIDI*.
muO has all the tools you need to record, edit, destructure, compose, visualize, inspect, analyse, arrange, export and play MIDI tracks.
I made a simple standalone MIDI sequencer built upon muO, illustrating how it can be used as a library for custom music applications:
http://www.zogotounga.net/comp/boadebui.htm
with which I composed the following demo pieces, for which you can get the scores in custom format plus the corresponding MIDI scores:
http://www.zogotounga.net/zik/Boltzmann%20Half-Baked%20Pizzas.ogg http://www.zogotounga.net/zik/sacred%20cow.ogg http://www.zogotounga.net/zik/The%20way%20of%20the%20chicken.ogg http://www.zogotounga.net/zik/brontosaure.ogg http://www.zogotounga.net/zik/de%20nada.ogg http://www.zogotounga.net/zik/quatre%20marabouts.ogg http://www.zogotounga.net/zik/69.ogg
So my point here is the following:
Improving MIDI support in Squeak without first having a look at what is implemented in muO seems to me an extreme example of reinventing the wheel.
Please do investigate what I did for music composition in Squeak.
If you can write things like "Imagine you could press Record in a score player..." then you will just not believe what you will see.
Stef
On Sun, Aug 28, 2022 at 11:00:57PM +0200, St??phane Rollandin wrote:
Improving MIDI support in Squeak without first having a look at what is implemented in muO seems to me an extreme example of reinventing the wheel.
Please do investigate what I did for music composition in Squeak.
+1000
Dave
On Sun, Aug 28, 2022 at 11:00 PM Stéphane Rollandin lecteur@zogotounga.net wrote:
About MIDI.
Just in case I have not been clear enough about what I did, or in case I have not screamed it loud enough, let me say it again:
*all music* introduced in
http://www.zogotounga.net/comp/squeak/sqgeo.htm
that is:
http://www.zogotounga.net/zik/Tout%20va%20bien%20(merci).ogg http://www.zogotounga.net/zik/brontosaure.ogg http://www.zogotounga.net/zik/Pentaxoyothol.ogg http://www.zogotounga.net/zik/Rauquosph%C3%A8re.ogg http://www.zogotounga.net/zik/Bulle%20qui%20rulle.ogg http://www.zogotounga.net/zik/lithorale.ogg http://www.zogotounga.net/zik/Blue%20glue.ogg http://www.zogotounga.net/zik/I%27ll%20get%20there,%20again.ogg http://www.zogotounga.net/zik/Day%20one.ogg http://www.zogotounga.net/zik/Busy%20Claude%20is%20late%20again.ogg http://www.zogotounga.net/zik/lava%20me%20baby.ogg http://www.zogotounga.net/zik/Tannit.ogg http://www.zogotounga.net/zik/noumenal%20blues.ogg
and the vast majority of the music from
http://www.zogotounga.net/zik/index.html
has been made *exclusively in Squeak*, and *exclusively in MIDI*.
muO has all the tools you need to record, edit, destructure, compose, visualize, inspect, analyse, arrange, export and play MIDI tracks.
I made a simple standalone MIDI sequencer built upon muO, illustrating how it can be used as a library for custom music applications:
I have used this a few times. I have trouble connecting midi keyboards to Squeak and I'm not sure what is going wrong. So I used Boadebui (Badboy ?) with just clicking in some notes and sound via midi out to Microsoft midi.
with which I composed the following demo pieces, for which you can get
the scores in custom format plus the corresponding MIDI scores:
http://www.zogotounga.net/zik/Boltzmann%20Half-Baked%20Pizzas.ogg http://www.zogotounga.net/zik/sacred%20cow.ogg http://www.zogotounga.net/zik/The%20way%20of%20the%20chicken.ogg http://www.zogotounga.net/zik/brontosaure.ogg http://www.zogotounga.net/zik/de%20nada.ogg http://www.zogotounga.net/zik/quatre%20marabouts.ogg http://www.zogotounga.net/zik/69.ogg
So my point here is the following:
Improving MIDI support in Squeak without first having a look at what is implemented in muO seems to me an extreme example of reinventing the wheel.
I think it's worth fixing the stuff in the image so it is not broken and bitrotten. Like for example the MidiInputMorph. [image: bild.png]
I'm not much of a musician and not really a developer, I just enjoy reading code, fixing small bugs and learn a little in the process.
Please do investigate what I did for music composition in Squeak.
I have looked at your music projects, game projects and L-System also :-) It is very impressive. muO is intimidating. It is so extensive and complex I don't know where to start.
I have played the games a bit. I really like your L-System with the ability to zoom in on the canvas.
If you can write things like "Imagine you could press Record in a score player..." then you will just not believe what you will see.
I agree with you here, muO is almost unbelievable. In a good way :-)
Best, Karl
Stef
I think it's worth fixing the stuff in the image so it is not broken and bitrotten. Like for example the MidiInputMorph.
Oh yes, it is definitely worth it - and getting back the MIDIFileWriter too.
I have looked at your music projects, game projects and L-System also :-) It is very impressive. muO is intimidating. It is so extensive and complex I don't know where to start.
I tried to make things easy to start with in the tutorials section of the help browser. I should of course make many more of them.
Now it's no wonder that many things in muO may seem unintuitive to a non-musician. Musical representations is in itself very specific as a technical domain, and there are several original takes on different issues in muO, and lots of different entry points.
I tried to outline them in the help pages, again.
I really like your L-System with the ability to zoom in on the canvas.
Yes, this is something I did not emphasize when introducing my work here on the list, because it is an orthogonal (sub)project: all graphical editors, both in muO and in my game engine, are instances of the same kind of morph, the zoomable field. This makes them very capable in handling both tiny details and large structures, with a simple gesture for interactive zooming and in-place "floating" submorphs.
I should at some point modularize muO to make the zoomablefields available by themselves.
Actually, that's also a reason why I would like people to somewhat investigate muO (and Roguerrants): there are several classes of tools there that are interesting by themselves and could be used in different contexts, for example notebooks, zoomable fields, reactive tables, menu destructuring, modular agencies, lambda message sends.
I would be much more motivated to undertake the tedious work of making some or all of them separately available, if there was a manifest interest for that - but at the moment most people are not even aware of their existence.
I agree with you here, muO is almost unbelievable. In a good way :-)
Thanks! In fact it is equivalent in scope to other serious frameworks for computer-assisted musical composition, and in my (no so humble, in that case) opinion, even superior to some of them.
In a sense, muO is the work I would have done if I had followed an (ideal) academic career (I studied physics for research, but did not pursue) - it is a long-term research endeavor.
Now that, after twenty years or so, I got most of the results I was trying to achieve, and that I am somewhat moving towards another domain with Roguerrants, I would very much like to share what I did.
To me it would also be a way to illustrate the amazing power for experimentation and liveness we get from Smalltalk and Morphic, and show the world what a marvelous tool we have with Squeak.
Best,
Stef
On Thu, Sep 1, 2022 at 4:01 PM Stéphane Rollandin lecteur@zogotounga.net wrote:
I think it's worth fixing the stuff in the image so it is not broken and bitrotten. Like for example the MidiInputMorph.
Oh yes, it is definitely worth it - and getting back the MIDIFileWriter too.
I have looked at your music projects, game projects and L-System also :-) It is very impressive. muO is intimidating. It is so extensive and complex I don't know where to start.
I tried to make things easy to start with in the tutorials section of the help browser. I should of course make many more of them.
Now it's no wonder that many things in muO may seem unintuitive to a non-musician. Musical representations is in itself very specific as a technical domain, and there are several original takes on different issues in muO, and lots of different entry points.
I tried to outline them in the help pages, again.
I really like your L-System with the ability to zoom in on the canvas.
Yes, this is something I did not emphasize when introducing my work here on the list, because it is an orthogonal (sub)project: all graphical editors, both in muO and in my game engine, are instances of the same kind of morph, the zoomable field. This makes them very capable in handling both tiny details and large structures, with a simple gesture for interactive zooming and in-place "floating" submorphs.
I should at some point modularize muO to make the zoomablefields available by themselves.
Actually, that's also a reason why I would like people to somewhat investigate muO (and Roguerrants): there are several classes of tools there that are interesting by themselves and could be used in different contexts, for example notebooks, zoomable fields, reactive tables, menu destructuring, modular agencies, lambda message sends.
+1
I would be much more motivated to undertake the tedious work of making some or all of them separately available, if there was a manifest interest for that - but at the moment most people are not even aware of their existence.
Getting other people interested is really hard. I don't know how to do that. In my small project I tend to focus on what I am interested in and want to do. Since I'm doing programming as a hobby, I don't cater to other people unless I absolutely have to. Big decisions are left to experts and people with deep interest in the issue. The rest of us will do the bike shedding.
[image: bild.png]
I agree with you here, muO is almost unbelievable. In a good way :-)
Thanks! In fact it is equivalent in scope to other serious frameworks for computer-assisted musical composition, and in my (no so humble, in that case) opinion, even superior to some of them.
In a sense, muO is the work I would have done if I had followed an (ideal) academic career (I studied physics for research, but did not pursue) - it is a long-term research endeavor.
Now that, after twenty years or so, I got most of the results I was trying to achieve, and that I am somewhat moving towards another domain with Roguerrants, I would very much like to share what I did.
To me it would also be a way to illustrate the amazing power for experimentation and liveness we get from Smalltalk and Morphic, and show the world what a marvelous tool we have with Squeak.
I think several tools can be extracted from your work. But it will be a little daunting for someone not familiar with the code. The codebase is so big.
I can only speak from my own experience. I find inheritance and polymorphism to be really great ways to model and extend code. It's literally standing on the shoulders of giants. But it is a double edged sword. If I don't understand the base model, it is also hard to understand the extension to that model and so forth. It makes it quite challenging to get a grasp of what is going on. When I try to read polymorphic code it's like everything is defined somewhere else. Good tools can help with that, but it takes me a long time to get familiar with a codebase.
This is not a critique of your code, more a general reflection :-)
Best, Karl
Best,
Stef
squeak-dev@lists.squeakfoundation.org