<feed xmlns='http://www.w3.org/2005/Atom'>
<title>applause2/TODO, branch inputstream</title>
<subtitle>Luajit-based synthesizer based on a stream algebra</subtitle>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/applause2/'/>
<entry>
<title>replaced Stream:foreach() with Stream:iter()</title>
<updated>2024-03-27T15:10:30+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2024-03-27T14:56:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/applause2/commit/?id=22f88459f2950eb163a8844badd884b3e1d193cd'/>
<id>22f88459f2950eb163a8844badd884b3e1d193cd</id>
<content type='text'>
* This allows the native syntax `for f in Stream:iter() do ... end` without using lambda
  functions.
  Also you can use `break` and `return` statements.
* On the other hand we cannot exploit the extended xpcall() semantics and had to introduce
  another lambda in Stream:play().
* In general the number of function calls per tick stays the same.
  Stream:gtick() itself could be used as an iterator, but Stream:iter() adds checking for CTRL+C,
  resetting of the sample cache and binding functions.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* This allows the native syntax `for f in Stream:iter() do ... end` without using lambda
  functions.
  Also you can use `break` and `return` statements.
* On the other hand we cannot exploit the extended xpcall() semantics and had to introduce
  another lambda in Stream:play().
* In general the number of function calls per tick stays the same.
  Stream:gtick() itself could be used as an iterator, but Stream:iter() adds checking for CTRL+C,
  resetting of the sample cache and binding functions.
</pre>
</div>
</content>
</entry>
<entry>
<title>ilua-wrapper: FreeBSD compatibility</title>
<updated>2024-02-20T09:12:25+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2024-02-20T09:12:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/applause2/commit/?id=1a12f69466d29721f8fa12c92850096339088f8c'/>
<id>1a12f69466d29721f8fa12c92850096339088f8c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>updated README and TODO</title>
<updated>2024-01-28T22:32:00+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2024-01-28T22:32:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/applause2/commit/?id=9e0da3df9c46cf1825ecf2674cc2ef521d3a8b57'/>
<id>9e0da3df9c46cf1825ecf2674cc2ef521d3a8b57</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>README: mention some useful programs</title>
<updated>2024-01-24T15:13:53+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2024-01-24T15:08:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/applause2/commit/?id=b45726451da90bba61d75f817982d2abdfbb0542'/>
<id>b45726451da90bba61d75f817982d2abdfbb0542</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>README: documented some FreeBSD tweaks</title>
<updated>2024-01-22T15:27:41+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2024-01-22T15:27:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/applause2/commit/?id=22df158af031a5bb0a126ce148e44d7fa4b5ad63'/>
<id>22df158af031a5bb0a126ce148e44d7fa4b5ad63</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Stream:gnuplot() supports plotting into Kitty terminals now</title>
<updated>2024-01-12T18:52:11+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2024-01-12T18:52:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/applause2/commit/?id=189a34d24326d2838c3dcd9ec7e9915c480e8873'/>
<id>189a34d24326d2838c3dcd9ec7e9915c480e8873</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>updated TODO</title>
<updated>2023-12-19T16:39:42+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2023-12-19T16:39:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/applause2/commit/?id=7059fffa6e55cb0fc406307122dd0688f34ee4fc'/>
<id>7059fffa6e55cb0fc406307122dd0688f34ee4fc</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>improved interruption (SIGINT, CTRL+C) support</title>
<updated>2023-11-16T14:50:24+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2023-11-16T14:50:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/applause2/commit/?id=ebd9c3c4ec2cfe2f08b4f700dcc5bcb2a8b4b847'/>
<id>ebd9c3c4ec2cfe2f08b4f700dcc5bcb2a8b4b847</id>
<content type='text'>
* Just like the original LuaJIT interpreter, this will use a hook to automatically
  raise an error from Lua code.
* Unfortunately, as long as Jit compilation is enabled, this cannot reliably work.
  Therefore we still set an `interrupted` flag that must be
  polled from tight loops.
* Instead of polling via applause_push_sample() which gave interruption-support only
  to Stream:play(), we now have a separate checkint() function.
* checkint() should be manually added to all tight loops.
* Stream:foreach() and everthing based on it is now also supporting interruptions
  (via checkint()).
* This internally works via applause_is_interrupted().
  A C function was exposed only because LuaJIT does not support volatile-qualifiers and
  would optimize away reads to the interrupted-flag.
  As a side effect, we can also reset the hook.
* Flags set in signal handlers should be `volatile`.
* Added likely() and unlikely() macros to C code.
* Updated sample.ipynb Jupyter notebook: Everything important is now supported, albeit
  requiring custom ILua patches.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Just like the original LuaJIT interpreter, this will use a hook to automatically
  raise an error from Lua code.
* Unfortunately, as long as Jit compilation is enabled, this cannot reliably work.
  Therefore we still set an `interrupted` flag that must be
  polled from tight loops.
* Instead of polling via applause_push_sample() which gave interruption-support only
  to Stream:play(), we now have a separate checkint() function.
* checkint() should be manually added to all tight loops.
* Stream:foreach() and everthing based on it is now also supporting interruptions
  (via checkint()).
* This internally works via applause_is_interrupted().
  A C function was exposed only because LuaJIT does not support volatile-qualifiers and
  would optimize away reads to the interrupted-flag.
  As a side effect, we can also reset the hook.
* Flags set in signal handlers should be `volatile`.
* Added likely() and unlikely() macros to C code.
* Updated sample.ipynb Jupyter notebook: Everything important is now supported, albeit
  requiring custom ILua patches.
</pre>
</div>
</content>
</entry>
<entry>
<title>Jupyter integration improvements: support $APPLAUSE_OPTS and document how to display graphics and rich text</title>
<updated>2023-11-14T21:00:56+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2023-11-14T19:22:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/applause2/commit/?id=864f19750c3b58c8c09cfd57ef7622f6bdd38b04'/>
<id>864f19750c3b58c8c09cfd57ef7622f6bdd38b04</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>documented how to run Applause in Jupyter Consoles and Notebooks</title>
<updated>2023-11-11T21:44:04+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2023-11-11T21:44:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/applause2/commit/?id=93596df1755400c3eac5686668fd4a5d5728b474'/>
<id>93596df1755400c3eac5686668fd4a5d5728b474</id>
<content type='text'>
* This is at the very least cool to have and will be worthwile to write about in the dissertation.
* Added ilua-wrapper.sh script which can be used as the ILua interpreter and/or can be symlinked to `lua` in PATH,
  so ILua will pick up Applause even in Notebooks without any additional tweaks.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* This is at the very least cool to have and will be worthwile to write about in the dissertation.
* Added ilua-wrapper.sh script which can be used as the ILua interpreter and/or can be symlinked to `lua` in PATH,
  so ILua will pick up Applause even in Notebooks without any additional tweaks.
</pre>
</div>
</content>
</entry>
</feed>
