Recent

Author Topic: Alsapas  (Read 2825 times)

MarkMLl

  • Hero Member
  • *****
  • Posts: 6686
Alsapas
« on: January 03, 2020, 01:15:45 pm »
A very brief status report. I'm currently taking a look at Alsapas, 1.0.27.1_RC.tar.bz2 from https://sourceforge.net/projects/alsapas/ as an update to a version I was using in about 2013.

In order to use it with recent FPC you need to define NO_LIBC which causes it to pick up definitions from its own .inc file.

In most cases you will also need to run a supplied script file which recompiles some of the library stuff using gcc, the test program run as the last stage of that will fail harmlessly because of the above issue.

I'm using it to drive MIDI output, they've changed some of the types etc. so it's not a drop-in replacement for older versions. I'll report further if I come across anything else interesting.

MarkMLl
MT+86 & Turbo Pascal v1 on CCP/M-86, multitasking with LAN & graphics in 128Kb.
Pet hate: people who boast about the size and sophistication of their computer.
GitHub repositories: https://github.com/MarkMLl?tab=repositories

Leledumbo

  • Hero Member
  • *****
  • Posts: 8757
  • Programming + Glam Metal + Tae Kwon Do = Me
Re: Alsapas
« Reply #1 on: January 04, 2020, 12:28:16 pm »
I use fpalsa instead, it's still updated fairly recently. Still behind current ALSA, but the API seems compatible. At least my GUI for Zita-ajbridge still works fine.

MarkMLl

  • Hero Member
  • *****
  • Posts: 6686
Re: Alsapas
« Reply #2 on: January 04, 2020, 12:31:28 pm »
I use fpalsa instead, it's still updated fairly recently. Still behind current ALSA, but the API seems compatible.

Although the bulk of the files are still from about 2014, which is roughly the same age as those of Alsapas.

I'm trying to wade through descriptions of the API- again- to see how to drive the MIDI stuff I need, and not much enjoying it.

MarkMLl
MT+86 & Turbo Pascal v1 on CCP/M-86, multitasking with LAN & graphics in 128Kb.
Pet hate: people who boast about the size and sophistication of their computer.
GitHub repositories: https://github.com/MarkMLl?tab=repositories

bobby100

  • Full Member
  • ***
  • Posts: 164
    • Malzilla
Re: Alsapas
« Reply #3 on: November 01, 2022, 11:00:21 am »
Hi MarkMLI, hi Leledumbo,

I wrote some voice bank editor for MiniDexed (Dexed on Baremetal RPi) on Windows.
Now, the people are asking for Linux port.
So, I need to send SysEx messages over MIDI. Could you give me some pointers where to start?
https://gitlab.com/bobby100 - my Lazarus components and units
https://sourceforge.net/u/boban_spasic/profile/ - my open source apps

https://malzilla.org/ - remainder at my previous life as a web security expert

MarkMLl

  • Hero Member
  • *****
  • Posts: 6686
Re: Alsapas
« Reply #4 on: November 01, 2022, 12:16:44 pm »
Well, since you've decided to necropost you could always look at the project in my GitHub repository, the URL of which is in the sig immediately above.

You won't find the layout particularly straightforward, but it does solve the problem of static vs dynamic linkage fairly thoroughly. You'll need to add sysex entry points (or ask me extremely politely to add them, but I don't relish it since I've already got a great deal of work on my plate) after which- IIRC- the parsing is fairly simple.

MarkMLl
MT+86 & Turbo Pascal v1 on CCP/M-86, multitasking with LAN & graphics in 128Kb.
Pet hate: people who boast about the size and sophistication of their computer.
GitHub repositories: https://github.com/MarkMLl?tab=repositories

MarkMLl

  • Hero Member
  • *****
  • Posts: 6686
Re: Alsapas
« Reply #5 on: November 21, 2022, 05:48:35 pm »
Revisiting this briefly: when I've looked at sysex messages in the past I was basically filtering events as they arrived and using that to modify the state of the program's UI. using snd_seq_event_input(), snd_seq_event_output_direct() and so on called from a background (i.e. non-GUI) thread.

I'd be interested to know what you (@bobby100) think you need, since if it was basically the same set of functions I could add them to my shim comparatively easily.

MarkMLl
MT+86 & Turbo Pascal v1 on CCP/M-86, multitasking with LAN & graphics in 128Kb.
Pet hate: people who boast about the size and sophistication of their computer.
GitHub repositories: https://github.com/MarkMLl?tab=repositories

bobby100

  • Full Member
  • ***
  • Posts: 164
    • Malzilla
Re: Alsapas
« Reply #6 on: November 21, 2022, 10:09:08 pm »
I am porting my MiniDexed Control Center to Linux:
https://github.com/BobanSpasic/MiniDexedLibrarian
I need to send and receive SysEx dumps, and also send CC-messages.
I have it working on Windows.

I've picked PortMidi, because it seems not so complicated. The bindings from HuMuS are not working on Windows (external floating point error), but are working on Linux.
At the moment, I am writing a layer for Portmidi, to make a direct substitute for midi.pas (Windows MMS) from Breakoutbox.
So, I'll IFDEF between my layer for Portmidi on Linux and midi.pas from Breakoutbox on Windows in uses section.
https://gitlab.com/bobby100 - my Lazarus components and units
https://sourceforge.net/u/boban_spasic/profile/ - my open source apps

https://malzilla.org/ - remainder at my previous life as a web security expert

MarkMLl

  • Hero Member
  • *****
  • Posts: 6686
Re: Alsapas
« Reply #7 on: November 21, 2022, 10:19:36 pm »
I've picked PortMidi, because it seems not so complicated.

Which is hardly my problem, since what I've done is (intentionally) a very thin shim around the ALSA functions.

When I've been looking at this I've been very much focusing on monitoring events (including sysexes) and either passing them on or discarding them; in the case of sysexes this was typically some sort of function key (term used loosely) on a MIDI keyboard.

I've not really had cause to generate unsolicited MIDI events, although I presume that sysexes aren't that different from note press/release events.

MarkMLl
MT+86 & Turbo Pascal v1 on CCP/M-86, multitasking with LAN & graphics in 128Kb.
Pet hate: people who boast about the size and sophistication of their computer.
GitHub repositories: https://github.com/MarkMLl?tab=repositories

 

TinyPortal © 2005-2018