Solved MIDI question

Hello,

So after some researching i did not find anything useful in handbook or wiki about how can i set up simple MIDI for software synths..
So what i need is very simple i need audio/bristol to work with jack in order to record simple tunes for my project. So far i loaded sndiod module and nothing happened.

Only midi thing i have in /dev is midistat and when i run cat /dev/midistat i got this:
FreeBSD Midi Driver (midi2)
No devices installed.

So JACK is running just fine but MIDI driver option is greyed out.. Does MIDI even work on FreeBSD?

EDIT:
Some screenshots.. I also tried audio/zynaddsubfx but with no luck..
 

Attachments

  • 2021-10-27-232403_1170x543_scrot.png
    2021-10-27-232403_1170x543_scrot.png
    77.9 KB · Views: 117
  • 2021-10-27-232922_804x511_scrot.png
    2021-10-27-232922_804x511_scrot.png
    55.9 KB · Views: 118
I spent a couple minutes and found audio/sndio
That's a good one.

Onward,

Some notes on sndio:
sndio(7) can be used in two ways: a raw mode, i.e. exclusive device access, and the sndiod(8)

sndiod(8) operation:

MIDI thru:
Sending MIDI messages from program A to program B to .... tc.
e.g. DAW (sequencer) ---> VSTi (instrument)

MIDI port:
1.
MIDI Machine Control (MMC):
To send transport (play, stop, etc.) non-synchronised info to a MIDI seqencer for example.

2. MIDI Time Code (MTC):
To synchronise two devices.

3. MIDI master volume message:
To control the volume of a MIDI device.

Features:
* Creating multiple sub-devices to route different programs to each other's.
* Control the buffer size (-b option):

On the fly changing of:
* Sound encoding.
* Routing/channel.
* Master volume and per-channel volume (mixer).
* Monitoring (playback).

Example:
An example for setting an optimal buffer size for a MIDI arrangement:
* If you're using a Midi device, then 5ms-6ms latency is the safe range.
* Typical sample rate for an indie DAW recording is 44.1 kHz.
* Now you can set the buffer size, to reduce the latency, by using this formula:

Formula:
sample rate (Hz) X latency (seconds) = sample

Pluging values in the formula:
(44.1 * 1000) * (5 / 1000) = 44100 * 0.005 = 220.5 samples ==> -b 220

$ sndiod -r 44100 -b 220 -z 110
 
That's a good one.

Onward,

Some notes on sndio:
sndio(7) can be used in two ways: a raw mode, i.e. exclusive device access, and the sndiod(8)

sndiod(8) operation:

MIDI thru:
Sending MIDI messages from program A to program B to .... tc.
e.g. DAW (sequencer) ---> VSTi (instrument)

MIDI port:
1.
MIDI Machine Control (MMC):
To send transport (play, stop, etc.) non-synchronised info to a MIDI seqencer for example.

2. MIDI Time Code (MTC):
To synchronise two devices.

3. MIDI master volume message:
To control the volume of a MIDI device.

Features:
* Creating multiple sub-devices to route different programs to each other's.
* Control the buffer size (-b option):

On the fly changing of:
* Sound encoding.
* Routing/channel.
* Master volume and per-channel volume (mixer).
* Monitoring (playback).

Example:
An example for setting an optimal buffer size for a MIDI arrangement:
* If you're using a Midi device, then 5ms-6ms latency is the safe range.
* Typical sample rate for an indie DAW recording is 44.1 kHz.
* Now you can set the buffer size, to reduce the latency, by using this formula:

Formula:
sample rate (Hz) X latency (seconds) = sample

Pluging values in the formula:
(44.1 * 1000) * (5 / 1000) = 44100 * 0.005 = 220.5 samples ==> -b 220

$ sndiod -r 44100 -b 220 -z 110
I tried sndio, that program doesn't create any midi device in /dev, it doesn't work, what am i doing wrong?

I spent a couple minutes and found audio/sndio
I know, but that doesn't work...
 
Define doesn't work: What's the command, what's the expected results, what are the actual results?
I ran sndiod -r 44100 -b 220 -z 110. Programs that needs software MIDI need to have /dev/midiX devices in order to function, but the devices are not present.
 
I managed to get this working with JACK, i will use it for MIDI because it works out of the box.
I had problems with audio/bristol port detecting JACK header files while configuring itself, i added this to its Makefile:
CFLAGS+= -fcommon \
-I/usr/local/include -I/usr/include

LDFLAGS+= -L/usr/local/lib -L/usr/lib


After configuration and installation were complete, the port did not copy libB11.so to /usr/local/lib and for that reason bristol did not run in GUI mode, i copied three libraries with libB11.so* to /usr/local/lib and now everything works fine. I also have contacted the port maintainer regarding these issues.
 
Back
Top