I once did a MIDI extension for SpeechBasic to program a real time MIDI
sound sampler on BASIC for the C64, for example
$1810 LDA $DEO6
$1813 LSR
$1814 BCC $1810
$1816 LDA $DE07; read MIDI event byte, usually followed by RTS
This are 6 bytes of code, to get a MIDI data byte from the UART.
I did an experiment by the signature that makes Adrian going wild.
Some lines for a signature are spam and I do agree.
How many lines of code are used by ALSA MIDI to do the same? Lets say
not per USB, but PCI.
I wonder if MIDI on Linux could become better and if audio could need
less resources when for Linux audio and MIDI, the concept might vary to
the usual Linux concept.
Some very elaborate Mac and Win audio apps do not need much resources or
much bytes.
I hope at least one person would understand that I'm not nagging. I try
to understand Linux code, but it's very long and hard to understand, not
comparable with the 4 lines above or even not comparable to longer code
for professional Atari sequencers.
Is there really a reason, I might not understand, to make Linux audio
that complicated?
Please, I guess some will write that I'm the only one having issues with
ALSA MIDI and JACK, but c'mon ;) ...
Cheers!
Ralf
PS: Latest ALSA MIDI latency tests fortunately did show that USB most
times is useless, see also the 64 Studio lists archives, but PCI MIDI
most times seems to be very good. Perhaps, if you should agree, there
could be an advice on Linux audio web sides to prefer PCI MIDI.
On Mon, 2010-07-05 at 10:15 +0200, Ralf Mardorf wrote:
> -------- Forwarded Message --------
> From: Ralf Mardorf <ralf.mardorf(a)alice-dsl.net>
> To: Clemens Ladisch <clemens(a)ladisch.de>
> Cc: Linux Audio Developers <linux-audio-dev(a)lists.linuxaudio.org>
> Subject: MIDI jitter - Today for 4 of 4 tests my USB device did pass all
> tests with success
> Date: Mon, 05 Jul 2010 10:14:21 +0200
> I'm very sceptic regarding to the ALSA MIDI latency test, OTOH the PATA
> might have caused 7 ms and IIRC 19 ms too and visually interpretation
> might mistake because it's hard to find the start of waveforms in the
> noise.
I guess (don't know), that 7 ms and 19 ms are caused by a broken HDD,
but when I did the visually test the HDD wasn't broken, I did it a long
time ago.
So the visually test around 4 ms and ALSA MIDI latency test around 4 ms
from today might be correct results for my computer and at least when I
got 4 ms for the visually test, the audible result was unusable for
music, anyway, I still have got some hope.
To be continued ASAP.
On Sun, 2010-07-04 at 22:14 +0100, Dan Mills wrote:
> You could probably hack a multi serial port card to do multiple midi
> ports (Change the rock to give a suitable divider for 31250 baud
> (4MHz?), add current loop interfaces)...
If one is fine with programming on Linux ;).
Hi!
I am trying to fix a problem in beast, where an algorithm (subnormal
cancellation and the associated unit test) will work on "normal" computers, but
not on AMD64, because denormals are treated as zero on this platform with the
compiler options we are using (-ffast-math and others).
So ideally I need a snippet of code (maybe assembler) that will just return
whether the processor/platform will have subnormals, like on x86, or not,
like on AMD64, by querying the processor status registers.
Is there some code around for this?
Cu... Stefan
--
Stefan Westerfeld, Hamburg/Germany, http://space.twc.de/~stefan
Hello all,
A few days ago someone posted a pointer to some
python/numpy audio related code. I wanted to keep
this message and have a look at it later, but my
fingers were too quick... And I don't find that
message in the archives (it could be on LAU as
well).
If anyone still has that message, please send me
a copy !
TIA,
--
FA
O tu, che porte, correndo si ?
E guerra e morte !
Cheers for the reply & the commit!
Its a help anyway, I was at 12 errors, now down to 6 errors. (+ 5 warnings).
All the errors seem to be of the same kind. (Something due to accessing
array[2] ?)
I've never written a .vapi and dont really understand all the fancy tricks
you do...
So best job is probably to post the error output after running the command..
command: valac --pkg jack main.vala // my main.vala is just a single
printf statement, no JACK code
jack.vapi:48.36-48.44: error: syntax error, no expression allowed between
array brackets
public int get_aliases(ref string[2] aliases);
^^^^^^^^^
jack.vapi:48.36-48.44: error: syntax error, no expression allowed between
array brackets
public int get_aliases(ref string[2] aliases);
^^^^^^^^^
jack.vapi:270.41-270.47: error: syntax error, no expression allowed between
array brackets
public void get_read_vector(ref Data[2] vec);
^^^^^^^
jack.vapi:270.41-270.47: error: syntax error, no expression allowed between
array brackets
public void get_read_vector(ref Data[2] vec);
^^^^^^^
jack.vapi:271.42-271.48: error: syntax error, no expression allowed between
array brackets
public void get_write_vector(ref Data[2] vec);
^^^^^^^
jack.vapi:271.42-271.48: error: syntax error, no expression allowed between
array brackets
public void get_write_vector(ref Data[2] vec);
^^^^^^^
On Sat, Jun 26, 2010 at 10:25 PM, alberto colombo <vala(a)albx79.it> wrote:
> Hello,
>
> I created a bug to track progress on Jack bindings:
> https://bugzilla.gnome.org/show_bug.cgi?id=576777. I have just committed
> the latest version I had on my HD (dated November 2009), which should
> fix quite a few bugs compared to the version in that email.
>
> Please note that I didn't have the means or the time to test all the
> bindings, therefore expect some memory errors on some functions I
> haven't used. It gives plenty of warning now (it should be updated for
> vala 0.9), but it should compile.
>
> Also, the binding are for version 0.116. If you need features from
> 0.118, they'll have to be added.
>
> Regards
> Alberto
>
> On Sat, 2010-06-26 at 16:04 +0100, Harry Van Haaren wrote:
> > Hey all,
> >
> > I'm learning Vala at the moment, primarily with the intention to develop
> > apps
> > which support JACK audio output. I'm gonna work towards GStreamer based
> > audio routing, and JACK Transport to Start/Stop my app.
> >
> > For the while, I hope to have a play around with JACK using Vala. So I
> went
> > looking for bindings and found the following:
> > http://www.mail-archive.com/vala-list@gnome.org/msg02266.html
> >
> > I've read the replies, installed Jack.vapi into /usr/share/vala/vapi
> > but I cant seem to get rid of some certain errors whenever I compile.
> >
> > Are others using this binding successfully?
> > Any tips / info I should know about when using Jack & Vala?
> > Cheers, -Harry
> > _______________________________________________
> > vala-list mailing list
> > vala-list(a)gnome.org
> > http://mail.gnome.org/mailman/listinfo/vala-list
>
>
>
Hey all,
I'm learning Vala at the moment, primarily with the intention to develop
apps
which support JACK audio output. I'm gonna work towards GStreamer based
audio routing, and JACK Transport to Start/Stop my app.
For the while, I hope to have a play around with JACK using Vala. So I went
looking for bindings and found the following:
http://www.mail-archive.com/vala-list@gnome.org/msg02266.html
I've read the replies, installed Jack.vapi into /usr/share/vala/vapi
but I cant seem to get rid of some certain errors whenever I compile.
Are others using this binding successfully?
Any tips / info I should know about when using Jack & Vala?
Cheers, -Harry
Hi,
I keep getting surprised at some of the most basic problems I run
into... This time, processing order.
1) Notes of zero duration?
Are these legal MIDI? Do I send a note-on with simultaneous note-off?
Or should they simply be ignored?
2) note x ending simultaneously with note y beginning
For example, a sequence of eighth notes, each an eighth in duration.
As far as processing of these events goes, which should be processed first?
Cheers,
James.
Robin Gareus:
> >
> > 0.49 has this feature implemented. Use the "-jt" option.
> >
> > It should be sample sync,
>
> Almost. It does not yet compensate for port-latency. It is important for
> both effects that introduce latency as well as to keep physical I/O in
> sync with apps.
>
> see jack_port_get_latency() and jack_port_get_total_latency()
> at http://jackaudio.org/files/docs/html/group__PortFunctions.html
>
Thanks for the info! I also wonder, does jack compansate for
latency when it mixes the outputs from ports (i.e. when several
output ports are connected to a jack_capture port), so that
the sound is in sync?
> > but I'm not sure whether the last
> > block (the one that received a stop message from jack transport)
> > should be recorded? For now it's recorded. If that's wrong,
> > I'll fix it in the next release.
>
> While it's safe to just record it, i don't think it should be.
> http://jackaudio.org/files/docs/html/group__TransportControl.html reads:
>
> jack_transport_stop() [..] takes effect on the _next_ process cycle.
>
> jack_transport_query() [..] If called from the process thread, pos
> corresponds to the first frame of the _current_ cycle and the state
> returned is valid for the entire cycle.
>
> IOW: As soon as the app sees a stopped transport in the process loop it
> is exactly at, or already a bit later than the actual end.
>
Thank you very much. This also confirms what I though was most likely.
On Wed, 23 Jun 2010, Kjetil S. Matheussen wrote:
>
> Andrew C:
>>
>> Wow, thanks for the replies guys!
>>
>> Of the software mentioned here, my biggest wish is for syncability with
>> JACK
>> transport, so I can send the output of one of the linuxsampler instruments
>> to the recording software, hit the play button from inside Rosegarden and
>> have a perfectly synced audio copy of one particular instrument output
>> which
>> I can then drop back into the sequencer timeline and continue with another
>> section of the song, thereby freeing up system resources.
>>
>> Of course, this rules out jack_capture I'm afraid!
>>
>
> Sorry, I got this feature request about 4 years ago, but haven't
> implemented it. It should only be about 10-20 extra lines of
> code. I'll do it very soon.
>
0.49 has this feature implemented. Use the "-jt" option.
It should be sample sync, but I'm not sure whether the last
block (the one that received a stop message from jack transport)
should be recorded? For now it's recorded. If that's wrong,
I'll fix it in the next release.