# gtkiostream

> The gtkiostream WASM modules for nodejs and the browser

Latest version **1.9.21** (published 2023-11-27) · GPL-2.0 license · 0 weekly downloads

## Install

```sh
npm install gtkiostream
pnpm add gtkiostream
yarn add gtkiostream
bun add gtkiostream
```

## Health

**Score 20/100 (F)** — status: abandoned.

Positive: esm support; no vulnerabilities.

Warnings: low downloads; no types.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.9.21 |
| Published | 2023-11-27 |
| First published | 2019-05-09 |
| Weekly downloads | 0 |
| License | GPL-2.0 |
| TypeScript types | none |
| Module format | ESM + CommonJS |
| Dependencies | 1 |
| Unpacked size | 2.6 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 15 |
| Author | Matt Flax |
| Maintainers | mattflax |

## Links

- npm: https://www.npmjs.com/package/gtkiostream
- Repository: https://github.com/flatmax/gtkiostream
- Homepage: http://shop.audioinjector.net
- Issues: https://github.com/flatmax/gtkiostream/issues
- npm.io page: https://npm.io/package/gtkiostream

## Dependencies (1)

- [lit](https://npm.io/package/lit.md) ^2.0.2

## Recent versions

- 1.9.21 (latest) — 2023-11-27
- 1.9.20 — 2023-09-28
- 1.9.19 — 2023-09-28
- 1.9.18 — 2022-04-13
- 1.9.17 — 2022-02-14
- 1.9.16 — 2022-02-10
- 1.9.15 — 2022-02-10
- 1.9.14 — 2022-02-10
- 1.9.13 — 2022-02-10
- 1.9.12 — 2022-02-10
- 1.9.11 — 2021-09-22
- 1.9.10 — 2021-09-22
- 1.9.9 — 2021-08-27
- 1.9.8 — 2021-08-16
- 1.9.7 — 2021-05-26
- … 17 more at https://npm.io/package/gtkiostream/versions

## README

# gtkIOStream

[Support this project by purchasing our hardware.](http://www.audioinjector.net/)

Trivialised Threading, GTK GUIs, Signal Processing, Neural Networks, Audio Processing, Octave interfacing ... and more !

## Description

Elements of DSP. Neural Network computations.

```
FIR<double> fir;
fir.loadTimeDomainCoefficients(h);
for (int m=0; m<M; i++){ // apply the filter
  // get a new input x, then filter it
  fir.filter(x, y);
  // output or save y
}
```

A complete ALSA stack. 

```
const string deviceName="default";
ALSA::Playback playBack(deviceName.c_str());
Eigen::Array<int, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor> buffer;
while (1){
    creatAudioData(buffer);
    playBack<<buffer; // play the audio data
}

```

Simplistic threading and locking classes.

```
ThreadedMethodClass threadedMethodClass;
res=threadedMethodClass.run();
cout<<"Waiting for the second thread to exit"<<endl;
cout<<threadedMethodClass.meetThread()<<endl;
```

Other features like creating GTK+ interfaces using IOStream style code.
Its simple and quick!

You can create GTK+ GUIs in a few lines of code.

Labels<<"Thanks for reading";
(HBox<<Labels).show();

or even one line :
(HBox() << (Labels()<<"Thanks for reading")).show();

Inline code destructs the classes, but leaves the widgets/callbacks operating. This is great for embedded memory saving code.

You can also plot like so :
Plot figure; figure.plot(x, y, x.size());

## Some only depend on headers

For example if you only want to use the ALSA or GTK GUI stuff, then no need to build the project, simply include the header files in your project.

If you want to make and install, then like so :

install some prerequisites : g++ make automake libtool pkg-config

For Debian based systems,

    sudo apt install libeigen3-dev libfftw3-dev libsox-dev libasound2-dev libtool #libjack-dev liboctave-dev

For Fedora Linux, you might want to do, in addition:

    sudo dnf install eigen3-devel sox-devel jack-audio-connection-kit-devel gl2ps-devel suitesparse-devel arpack-devel qrupdate-devel

Then:

./configure
make
make install

If you wish to start, try this :
g++ `pkg-config --cflags gtk+-2.0` LabelsTest.C -o LabelsTest `pkg-config --libs gtk+-2.0`
./LabelsTest

For Unix/Linux etc. Users :

Run the auto conf script :
./tools/autotools.sh

Run configure  : ./configure --prefix=/usr/local
Run make : make
Run make install : make install

That should install it in a suitable directory.

## The obsolete repo (before git) lives on sf

https://sourceforge.net/projects/gtkiostream/

Matt R. Flax <flatmax@>

---
_Source: https://npm.io/package/gtkiostream · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
