MIDI, audio interfaces, etc.

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

MIDI, audio interfaces, etc.

Casey Ransberger-2
I got my hands on a MIDI controller, but to get full use of it you need some proprietary / permissions-managed software. I have licenses, but they won't help me when the device is inevitably taken off of long term support and I really like it.

It has a built in audio interface which is really nice.

A few questions:

1) What's the best way to get MIDI in and out of Squeak on a Mac (or if there's a platform independent approach, that's going to be ideal for me.)

2) I'm a newb when it comes to (digital) recording. Tascam 4-track tape is more my experience. Is it realistic to use Squeak to capture the raw audio (WAV I guess?) that comes in through the external sound card?

3) Other than Siren and MuO, are there any other great facilities for making music in Squeak? (I do know that Etoys and Scratch can be used for this, but I'm interested in being able to do stuff in Smalltalk directly.)

--
Casey Ransberger


Reply | Threaded
Open this post in threaded view
|

Re: MIDI, audio interfaces, etc.

Stéphane Rollandin
> 1) What's the best way to get MIDI in and out of Squeak on a Mac (or if
> there's a platform independent approach, that's going to be ideal for me.)

Class SimpleMIDIPort does the job; it's platform independent.

Stef

Reply | Threaded
Open this post in threaded view
|

Re: MIDI, audio interfaces, etc.

timrowledge

On 13-06-2013, at 1:06 PM, Stéphane Rollandin <[hidden email]> wrote:

>> 1) What's the best way to get MIDI in and out of Squeak on a Mac (or if
>> there's a platform independent approach, that's going to be ideal for me.)
>
> Class SimpleMIDIPort does the job; it's platform independent.

Works ok on Macs, appear not to work so well on unices. At least, the standard MIDI instrument parts don't. And the code seems to have some internal inconsistencies. If anyone is familiar with making ALSA MIDI work, I'd be very happy to hear about it.

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
"How many Kzin does it take to change a lightbulb?" "None. You can scream and leap in the dark."



Reply | Threaded
Open this post in threaded view
|

Re: MIDI, audio interfaces, etc.

Stéphane Rollandin
>> Class SimpleMIDIPort does the job; it's platform independent.
>
> Works ok on Macs, appear not to work so well on unices.

Yes, it's been broken for a long time in Linux.

Stef

Reply | Threaded
Open this post in threaded view
|

Re: MIDI, audio interfaces, etc.

Karl Ramberg
http://wiki.squeak.org/squeak/476


Some music info here

Karl


On Fri, Jun 14, 2013 at 1:27 AM, Stéphane Rollandin <[hidden email]> wrote:
Class SimpleMIDIPort does the job; it's platform independent.

Works ok on Macs, appear not to work so well on unices.

Yes, it's been broken for a long time in Linux.

Stef




Reply | Threaded
Open this post in threaded view
|

Re: MIDI, audio interfaces, etc.

timrowledge

On 14-06-2013, at 1:18 AM, karl ramberg <[hidden email]> wrote:

> http://wiki.squeak.org/squeak/476
>
>
> Some music info here

Thanks - that's one of the better swiki pages that I've seen recently; we need a lot of work to clean up!

I haven't spotted anything yet that helps me understand the problems with unix MIDI though. Is there really no one here with any experience?

Just looking at the code without any prior knowledge of how MIDI is supposed to work, I'm puzzled by (in platforms/unix/plugins/MIDIPlugin/sqUnixMIDIALSA.inc)  

int sqMIDIGetPortCount(void)
{
  debugf("sqMIDIGetPortCount\n");
  success(true);
  return 1;
}

/* Return an integer indicating the directionality of the given
   port where: 1 = input, 2 = output, 3 = bidirectional.  Fail if
   there is no port of the given number.
*/
int sqMIDIGetPortDirectionality(int portNum)
{
  switch (portNum)
    {
    case 0: return 2;
    case 1: return 1;
    }
  return interpreterProxy->success(false);
}

Note how the getcount returns 1, which appears to result in a single port known as port *0* and yet getportdirectionality expects to answer for port 0 and port 1. getportname also appears to expect port 0 or port 1 and further confsed me by in use returning sometihng like 'tN1in' as a port name and I can't see how the code would produce that…

It gets more confusing after that.


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Strange OpCodes: GLV: Ground the Line Voltage