[GH-ISSUE #15] linux lv2 possible? #10

Open
opened 2026-05-05 22:01:24 -06:00 by gitea-mirror · 28 comments
Owner

Originally created by @ajboni on GitHub (Jun 16, 2020).
Original GitHub issue: https://github.com/airwindows/airwindows/issues/15

hello! is it possible to make the plug-ins available as lv2 plug-ins?

Originally created by @ajboni on GitHub (Jun 16, 2020). Original GitHub issue: https://github.com/airwindows/airwindows/issues/15 hello! is it possible to make the plug-ins available as lv2 plug-ins?
Author
Owner

@snake66 commented on GitHub (Jul 15, 2020):

I'll be happy to have a go at this, if nobody else already has something working.

<!-- gh-comment-id:658618456 --> @snake66 commented on GitHub (Jul 15, 2020): I'll be happy to have a go at this, if nobody else already has something working.
Author
Owner

@magnetophon commented on GitHub (Jul 17, 2020):

@snake66 That would be fantastic!!

<!-- gh-comment-id:660153543 --> @magnetophon commented on GitHub (Jul 17, 2020): @snake66 That would be fantastic!!
Author
Owner

@trebmuh commented on GitHub (Jul 17, 2020):

agreed, it'd be very nice to have a LV2 version

<!-- gh-comment-id:660215480 --> @trebmuh commented on GitHub (Jul 17, 2020): agreed, it'd be very nice to have a LV2 version
Author
Owner

@snake66 commented on GitHub (Jul 17, 2020):

Cool, I've begun looking at it and hope I can open a PR sometime during the weekend.

<!-- gh-comment-id:660245891 --> @snake66 commented on GitHub (Jul 17, 2020): Cool, I've begun looking at it and hope I can open a PR sometime during the weekend.
Author
Owner

@airwindows commented on GitHub (Jul 17, 2020):

You should not be looking here for pull requests, you should be forking if you need to expand the scope of what's here. I'm already flat out developing the plugins and keeping the YouTube/music side of things moving, have nobody to help me, and am not competent to debug other people's more sophisticated porting code. So you should be looking at the plugins repository more as read-only and fork-bait rather than as, say, Linux where a programming genius increasingly just passes judgement over a world of brilliant contributors and understands all they bring. I'm not competent to do that :)
It's MIT licensed for a reason, there's very little asked of you if you choose to run with this stuff. I'm getting old and will die at some point so I restrict things as little as possible and expect people to be off and running, each in their own ways :)

<!-- gh-comment-id:660254532 --> @airwindows commented on GitHub (Jul 17, 2020): You should not be looking here for pull requests, you should be forking if you need to expand the scope of what's here. I'm already flat out developing the plugins and keeping the YouTube/music side of things moving, have nobody to help me, and am not competent to debug other people's more sophisticated porting code. So you should be looking at the plugins repository more as read-only and fork-bait rather than as, say, Linux where a programming genius increasingly just passes judgement over a world of brilliant contributors and understands all they bring. I'm not competent to do that :) It's MIT licensed for a reason, there's very little asked of you if you choose to run with this stuff. I'm getting old and will die at some point so I restrict things as little as possible and expect people to be off and running, each in their own ways :)
Author
Owner

@magnetophon commented on GitHub (Jul 18, 2020):

@airwindows Thanks for being this clear and upfront. 👍
Maybe you should put that info in the readme.

@snake66 Maybe https://github.com/laserbat/airwindows is a good place to collaborate on linux airwindows.
@laserbat Do you agree?

<!-- gh-comment-id:660523576 --> @magnetophon commented on GitHub (Jul 18, 2020): @airwindows Thanks for being this clear and upfront. :+1: Maybe you should put that info in the readme. @snake66 Maybe https://github.com/laserbat/airwindows is a good place to collaborate on linux airwindows. @laserbat Do you agree?
Author
Owner

@snake66 commented on GitHub (Jul 19, 2020):

@airwindows Thanks for your response, and clarifying your position. I understand completely, so instead of a PR I've made a repo on my own server for now. Let me know if you think that is an ok arrangement for you. If you have any objections on branding, referring to you or Airwindows, please let me know!

My aim is to use your existing unmodified processReplacing functions directly from the LinuxVST directory, and just make a thin wrapper so that it can be called from an LV2 host. I make no changes to the original plugin code.

Thanks a lot for your work, and making it available!

<!-- gh-comment-id:660631236 --> @snake66 commented on GitHub (Jul 19, 2020): @airwindows Thanks for your response, and clarifying your position. I understand completely, so instead of a PR I've made a [repo on my own server](https://code.volse.net/audio/plugins/airwindows-lv2-port.git/) for now. Let me know if you think that is an ok arrangement for you. If you have any objections on branding, referring to you or Airwindows, please let me know! My aim is to use your existing unmodified `processReplacing` functions directly from the LinuxVST directory, and just make a thin wrapper so that it can be called from an LV2 host. I make no changes to the original plugin code. Thanks a lot for your work, and making it available!
Author
Owner

@snake66 commented on GitHub (Jul 19, 2020):

@magnetophon @laserbat Cool, I'll be happy to contribute the LV2 wrappers to that repo too if you're interested.

<!-- gh-comment-id:660631712 --> @snake66 commented on GitHub (Jul 19, 2020): @magnetophon @laserbat Cool, I'll be happy to contribute the LV2 wrappers to that repo too if you're interested.
Author
Owner

@magnetophon commented on GitHub (Jul 22, 2020):

@snake66 I've been following your progress. Thanks a lot for doing this!

<!-- gh-comment-id:662417116 --> @magnetophon commented on GitHub (Jul 22, 2020): @snake66 I've been following your progress. Thanks a lot for doing this!
Author
Owner

@ajboni commented on GitHub (Jul 22, 2020):

@snake66 Indeed, thanks for your work!! Here is some metadata that might be useful for the .ttl (plugin type, comments, and description)
https://github.com/ajboni/airwindows-cheatsheet/blob/master/src/database.js

<!-- gh-comment-id:662443223 --> @ajboni commented on GitHub (Jul 22, 2020): @snake66 Indeed, thanks for your work!! Here is some metadata that might be useful for the .ttl (plugin type, comments, and description) https://github.com/ajboni/airwindows-cheatsheet/blob/master/src/database.js
Author
Owner

@magnetophon commented on GitHub (Jul 22, 2020):

@ajboni Wow, very handy! Great search functionality, thanks!

<!-- gh-comment-id:662468913 --> @magnetophon commented on GitHub (Jul 22, 2020): @ajboni Wow, very handy! Great search functionality, thanks!
Author
Owner

@snake66 commented on GitHub (Jul 22, 2020):

@ajboni Thanks, that will definitely be useful!

<!-- gh-comment-id:662469260 --> @snake66 commented on GitHub (Jul 22, 2020): @ajboni Thanks, that will definitely be useful!
Author
Owner

@fpesari commented on GitHub (Jul 30, 2020):

@snake66 I wanted to say thanks first of all, your efforts are much appreciated!

<!-- gh-comment-id:666523828 --> @fpesari commented on GitHub (Jul 30, 2020): @snake66 I wanted to say thanks first of all, your efforts are much appreciated!
Author
Owner

@snake66 commented on GitHub (Aug 2, 2020):

I'm sorry I haven't had much time to work on this for the past week and a half, but I'm not stalling :) I've made a mailing list where I will post updates and status as I go a long, and that's also a good place to discuss, submit issues, patches or anything else around the LV2 port. Hope that's cool with everyone.

<!-- gh-comment-id:667702165 --> @snake66 commented on GitHub (Aug 2, 2020): I'm sorry I haven't had much time to work on this for the past week and a half, but I'm not stalling :) I've made a [mailing list](https://listserv.volse.net/info/audioplugins) where I will post updates and status as I go a long, and that's also a good place to discuss, submit issues, patches or anything else around the LV2 port. Hope that's cool with everyone.
Author
Owner

@magnetophon commented on GitHub (Aug 2, 2020):

@snake66 Don't be sorry!
I subscribed to the list.

<!-- gh-comment-id:667705145 --> @magnetophon commented on GitHub (Aug 2, 2020): @snake66 Don't be sorry! I subscribed to the list.
Author
Owner

@dromer commented on GitHub (Feb 21, 2021):

Good busy @snake66 !
Since your repo uses cgit I'll just make my comment here:

It would be nice to have the plugins into one big lv2 bundle, this way you can just have an Airwindows.lv2 dir with all the plugins inside (this will make my ~/.lv2 much more manageable :D).

<!-- gh-comment-id:782776775 --> @dromer commented on GitHub (Feb 21, 2021): Good busy @snake66 ! Since your repo uses cgit I'll just make my comment here: It would be nice to have the plugins into one big lv2 bundle, this way you can just have an `Airwindows.lv2` dir with all the plugins inside (this will make my `~/.lv2` much more manageable :D).
Author
Owner

@dromer commented on GitHub (Feb 21, 2021):

Like this:

dreamer@auditorium:~/.lv2/airwindows.lv2$ tree
.
├── Acceleration.so
├── Acceleration.ttl
├── ADClip7.so
├── ADClip7.ttl
├── ADT.so
├── ADT.ttl
├── Air.so
├── Air.ttl
├── Apicolypse.so
├── Apicolypse.ttl
├── AQuickVoiceClip.so
├── AQuickVoiceClip.ttl
├── AtmosphereBuss.so
├── AtmosphereBuss.ttl
├── AtmosphereChannel.so
├── AtmosphereChannel.ttl
├── Aura.so
├── Aura.ttl
├── Average.so
├── Average.ttl
├── AverMatrix.so
├── AverMatrix.ttl
├── BassDrive.so
├── BassDrive.ttl
├── BassKit.so
├── BassKit.ttl
└── manifest.ttl
dreamer@auditorium:~/.lv2/airwindows.lv2$ cat manifest.ttl
@prefix airwindows: <https://www.airwindows.com/> .
@prefix doap:  <http://usefulinc.com/ns/doap#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .


airwindows:
    a doap:Project ;
    lv2:symbol "airwindows" ;
    doap:name "Airwindows LV2" ;
    doap:shortdesc "An LV2 port of the Airwindows plugins." ;
    doap:homepage <https://code.volse.net/audio/plugins/airwindows-lv2-port.git> ;
    doap:license <http://opensource.org/licenses/MIT> ;
    doap:developer [
        a foaf:Person ;
        foaf:name "Chris Johnson" ;
        foaf:mbox <chrisj@airwidnows.com>
    ] .


airwindows:acceleration
    a lv2:Plugin ;
    doap:name "Airwindows Acceleration Limiter" ;
    doap:license <http://opensource.org/licenses/mit> ;
    lv2:binary <Acceleration.so> ;
    rdfs:seeAlso <Acceleration.ttl> .

airwindows:aquickvoiceclip
    a lv2:Plugin ;
    doap:name "Airwindows AQuickVoiceClip" ;
    doap:license <http://opensource.org/licenses/mit> ;
    lv2:binary <AQuickVoiceClip.so> ;
    rdfs:seeAlso <AQuickVoiceClip.ttl> .

airwindows:atmospherebuss
    a lv2:Plugin ;
    doap:name "Airwindows AtmosphereBuss" ;
    doap:license <http://opensource.org/licenses/mit> ;
    lv2:binary <AtmosphereBuss.so> ;
    rdfs:seeAlso <AtmosphereBuss.ttl> .

airwindows:atmospherechannel
    a lv2:Plugin ;
    doap:name "Airwindows AtmosphereChannel" ;
    doap:license <http://opensource.org/licenses/mit> ;
    lv2:binary <AtmosphereChannel.so> ;
    rdfs:seeAlso <AtmosphereChannel.ttl> .

airwindows:aura
    a lv2:Plugin ;
    doap:name "Airwindows Aura" ;
    doap:license <http://opensource.org/licenses/mit> ;
    lv2:binary <Aura.so> ;
    rdfs:seeAlso <Aura.ttl> .

airwindows:average
    a lv2:Plugin ;
    doap:name "Airwindows Average" ;
    doap:license <http://opensource.org/licenses/mit> ;
    lv2:binary <Average.so> ;
    rdfs:seeAlso <Average.ttl> .

airwindows:avermatrix
    a lv2:Plugin ;
    doap:name "Airwindows AverMatrix" ;
    doap:license <http://opensource.org/licenses/mit> ;
    lv2:binary <AverMatrix.so> ;
    rdfs:seeAlso <AverMatrix.ttl> .

airwindows:bassdrive
    a lv2:Plugin ;
    doap:name "Airwindows BassDrive" ;
    doap:license <http://opensource.org/licenses/mit> ;
    lv2:binary <BassDrive.so> ;
    rdfs:seeAlso <BassDrive.ttl> .

airwindows:basskit
    a lv2:Plugin ;
    doap:name "Airwindows BassKit" ;
    doap:license <http://opensource.org/licenses/mit> ;
    lv2:binary <BassKit.so> ;
    rdfs:seeAlso <BassKit.ttl> .
dreamer@auditorium:~$ lv2ls | grep -i airwindows
https://www.airwindows.com/acceleration
https://www.airwindows.com/aquickvoiceclip
https://www.airwindows.com/atmospherebuss
https://www.airwindows.com/atmospherechannel
https://www.airwindows.com/aura
https://www.airwindows.com/average
https://www.airwindows.com/avermatrix
https://www.airwindows.com/bassdrive
https://www.airwindows.com/basskit
<!-- gh-comment-id:782829517 --> @dromer commented on GitHub (Feb 21, 2021): Like this: ```bash dreamer@auditorium:~/.lv2/airwindows.lv2$ tree . ├── Acceleration.so ├── Acceleration.ttl ├── ADClip7.so ├── ADClip7.ttl ├── ADT.so ├── ADT.ttl ├── Air.so ├── Air.ttl ├── Apicolypse.so ├── Apicolypse.ttl ├── AQuickVoiceClip.so ├── AQuickVoiceClip.ttl ├── AtmosphereBuss.so ├── AtmosphereBuss.ttl ├── AtmosphereChannel.so ├── AtmosphereChannel.ttl ├── Aura.so ├── Aura.ttl ├── Average.so ├── Average.ttl ├── AverMatrix.so ├── AverMatrix.ttl ├── BassDrive.so ├── BassDrive.ttl ├── BassKit.so ├── BassKit.ttl └── manifest.ttl ``` ```bash dreamer@auditorium:~/.lv2/airwindows.lv2$ cat manifest.ttl ``` ```turtle @prefix airwindows: <https://www.airwindows.com/> . @prefix doap: <http://usefulinc.com/ns/doap#> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix lv2: <http://lv2plug.in/ns/lv2core#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . airwindows: a doap:Project ; lv2:symbol "airwindows" ; doap:name "Airwindows LV2" ; doap:shortdesc "An LV2 port of the Airwindows plugins." ; doap:homepage <https://code.volse.net/audio/plugins/airwindows-lv2-port.git> ; doap:license <http://opensource.org/licenses/MIT> ; doap:developer [ a foaf:Person ; foaf:name "Chris Johnson" ; foaf:mbox <chrisj@airwidnows.com> ] . airwindows:acceleration a lv2:Plugin ; doap:name "Airwindows Acceleration Limiter" ; doap:license <http://opensource.org/licenses/mit> ; lv2:binary <Acceleration.so> ; rdfs:seeAlso <Acceleration.ttl> . airwindows:aquickvoiceclip a lv2:Plugin ; doap:name "Airwindows AQuickVoiceClip" ; doap:license <http://opensource.org/licenses/mit> ; lv2:binary <AQuickVoiceClip.so> ; rdfs:seeAlso <AQuickVoiceClip.ttl> . airwindows:atmospherebuss a lv2:Plugin ; doap:name "Airwindows AtmosphereBuss" ; doap:license <http://opensource.org/licenses/mit> ; lv2:binary <AtmosphereBuss.so> ; rdfs:seeAlso <AtmosphereBuss.ttl> . airwindows:atmospherechannel a lv2:Plugin ; doap:name "Airwindows AtmosphereChannel" ; doap:license <http://opensource.org/licenses/mit> ; lv2:binary <AtmosphereChannel.so> ; rdfs:seeAlso <AtmosphereChannel.ttl> . airwindows:aura a lv2:Plugin ; doap:name "Airwindows Aura" ; doap:license <http://opensource.org/licenses/mit> ; lv2:binary <Aura.so> ; rdfs:seeAlso <Aura.ttl> . airwindows:average a lv2:Plugin ; doap:name "Airwindows Average" ; doap:license <http://opensource.org/licenses/mit> ; lv2:binary <Average.so> ; rdfs:seeAlso <Average.ttl> . airwindows:avermatrix a lv2:Plugin ; doap:name "Airwindows AverMatrix" ; doap:license <http://opensource.org/licenses/mit> ; lv2:binary <AverMatrix.so> ; rdfs:seeAlso <AverMatrix.ttl> . airwindows:bassdrive a lv2:Plugin ; doap:name "Airwindows BassDrive" ; doap:license <http://opensource.org/licenses/mit> ; lv2:binary <BassDrive.so> ; rdfs:seeAlso <BassDrive.ttl> . airwindows:basskit a lv2:Plugin ; doap:name "Airwindows BassKit" ; doap:license <http://opensource.org/licenses/mit> ; lv2:binary <BassKit.so> ; rdfs:seeAlso <BassKit.ttl> . ``` ```bash dreamer@auditorium:~$ lv2ls | grep -i airwindows https://www.airwindows.com/acceleration https://www.airwindows.com/aquickvoiceclip https://www.airwindows.com/atmospherebuss https://www.airwindows.com/atmospherechannel https://www.airwindows.com/aura https://www.airwindows.com/average https://www.airwindows.com/avermatrix https://www.airwindows.com/bassdrive https://www.airwindows.com/basskit ```
Author
Owner

@dromer commented on GitHub (Feb 21, 2021):

You can then add yourself as the maintainer, like so: https://gitlab.com/drobilla/blop-lv2/-/blob/master/blop.lv2/manifest.ttl.in#L7

<!-- gh-comment-id:782830941 --> @dromer commented on GitHub (Feb 21, 2021): You can then add yourself as the maintainer, like so: https://gitlab.com/drobilla/blop-lv2/-/blob/master/blop.lv2/manifest.ttl.in#L7
Author
Owner

@snake66 commented on GitHub (Feb 21, 2021):

Good busy @snake66 !

Yeah, sorry about that. I'll get back to it soon I hope!.
Feel free to fork or send patches or do whatever of course.

It would be nice to have the plugins into one big lv2 bundle, this way you can just have an Airwindows.lv2 dir with all the plugins inside (this will make my ~/.lv2 much more manageable :D).

That's a great idea, I'll definitely go that way.

<!-- gh-comment-id:782851754 --> @snake66 commented on GitHub (Feb 21, 2021): > Good busy @snake66 ! Yeah, sorry about that. I'll get back to it soon I hope!. Feel free to fork or send patches or do whatever of course. > It would be nice to have the plugins into one big lv2 bundle, this way you can just have an `Airwindows.lv2` dir with all the plugins inside (this will make my `~/.lv2` much more manageable :D). That's a great idea, I'll definitely go that way.
Author
Owner

@dromer commented on GitHub (Apr 27, 2021):

@snake66 I noticed you did quite some updates over the past months, however I'm unable to compile DustBunny:

In file included from /home/dreamer/Sources/_audio/_plugins/airwindows-lv2-port/plugins/LV2/src/DustBunny/DustBunny.cpp:42:
/home/dreamer/Sources/_audio/_plugins/airwindows-lv2-port/plugins/LV2/src/DustBunny/../../../LinuxVST/src/DustBunny/DustBunnyProc.cpp: In member function ‘void DustBunny::processReplacing(float**, float**, VstInt32)’:
/home/dreamer/Sources/_audio/_plugins/airwindows-lv2-port/plugins/LV2/src/DustBunny/../../../LinuxVST/src/DustBunny/DustBunnyProc.cpp:74:10: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
   if (((*(unsigned int*)&LataHalfwaySample)&bunny)==0) LataHalfwaySample=0.0;
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dreamer/Sources/_audio/_plugins/airwindows-lv2-port/plugins/LV2/src/DustBunny/../../../LinuxVST/src/DustBunny/DustBunnyProc.cpp:85:10: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
   if (((*(unsigned int*)&inputSampleL)&bunny)==0) inputSampleL=0.0;
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dreamer/Sources/_audio/_plugins/airwindows-lv2-port/plugins/LV2/src/DustBunny/../../../LinuxVST/src/DustBunny/DustBunnyProc.cpp:103:10: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
   if (((*(unsigned int*)&RataHalfwaySample)&bunny)==0) RataHalfwaySample=0.0;
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dreamer/Sources/_audio/_plugins/airwindows-lv2-port/plugins/LV2/src/DustBunny/../../../LinuxVST/src/DustBunny/DustBunnyProc.cpp:114:10: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
   if (((*(unsigned int*)&inputSampleR)&bunny)==0) inputSampleR=0.0;
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dreamer/Sources/_audio/_plugins/airwindows-lv2-port/plugins/LV2/src/DustBunny/../../../LinuxVST/src/DustBunny/DustBunnyProc.cpp: In member function ‘void DustBunny::processDoubleReplacing(double**, double**, VstInt32)’:
/home/dreamer/Sources/_audio/_plugins/airwindows-lv2-port/plugins/LV2/src/DustBunny/../../../LinuxVST/src/DustBunny/DustBunnyProc.cpp:201:10: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
   if (((*(unsigned int*)&LataHalfwaySample)&bunny)==0) LataHalfwaySample=0.0;
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dreamer/Sources/_audio/_plugins/airwindows-lv2-port/plugins/LV2/src/DustBunny/../../../LinuxVST/src/DustBunny/DustBunnyProc.cpp:212:10: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
   if (((*(unsigned int*)&inputSampleL)&bunny)==0) inputSampleL=0.0;
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dreamer/Sources/_audio/_plugins/airwindows-lv2-port/plugins/LV2/src/DustBunny/../../../LinuxVST/src/DustBunny/DustBunnyProc.cpp:230:10: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
   if (((*(unsigned int*)&RataHalfwaySample)&bunny)==0) RataHalfwaySample=0.0;
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dreamer/Sources/_audio/_plugins/airwindows-lv2-port/plugins/LV2/src/DustBunny/../../../LinuxVST/src/DustBunny/DustBunnyProc.cpp:241:10: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
   if (((*(unsigned int*)&inputSampleR)&bunny)==0) inputSampleR=0.0;
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
<!-- gh-comment-id:827924200 --> @dromer commented on GitHub (Apr 27, 2021): @snake66 I noticed you did quite some updates over the past months, however I'm unable to compile DustBunny: ``` In file included from /home/dreamer/Sources/_audio/_plugins/airwindows-lv2-port/plugins/LV2/src/DustBunny/DustBunny.cpp:42: /home/dreamer/Sources/_audio/_plugins/airwindows-lv2-port/plugins/LV2/src/DustBunny/../../../LinuxVST/src/DustBunny/DustBunnyProc.cpp: In member function ‘void DustBunny::processReplacing(float**, float**, VstInt32)’: /home/dreamer/Sources/_audio/_plugins/airwindows-lv2-port/plugins/LV2/src/DustBunny/../../../LinuxVST/src/DustBunny/DustBunnyProc.cpp:74:10: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] if (((*(unsigned int*)&LataHalfwaySample)&bunny)==0) LataHalfwaySample=0.0; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/dreamer/Sources/_audio/_plugins/airwindows-lv2-port/plugins/LV2/src/DustBunny/../../../LinuxVST/src/DustBunny/DustBunnyProc.cpp:85:10: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] if (((*(unsigned int*)&inputSampleL)&bunny)==0) inputSampleL=0.0; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/dreamer/Sources/_audio/_plugins/airwindows-lv2-port/plugins/LV2/src/DustBunny/../../../LinuxVST/src/DustBunny/DustBunnyProc.cpp:103:10: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] if (((*(unsigned int*)&RataHalfwaySample)&bunny)==0) RataHalfwaySample=0.0; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/dreamer/Sources/_audio/_plugins/airwindows-lv2-port/plugins/LV2/src/DustBunny/../../../LinuxVST/src/DustBunny/DustBunnyProc.cpp:114:10: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] if (((*(unsigned int*)&inputSampleR)&bunny)==0) inputSampleR=0.0; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/dreamer/Sources/_audio/_plugins/airwindows-lv2-port/plugins/LV2/src/DustBunny/../../../LinuxVST/src/DustBunny/DustBunnyProc.cpp: In member function ‘void DustBunny::processDoubleReplacing(double**, double**, VstInt32)’: /home/dreamer/Sources/_audio/_plugins/airwindows-lv2-port/plugins/LV2/src/DustBunny/../../../LinuxVST/src/DustBunny/DustBunnyProc.cpp:201:10: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] if (((*(unsigned int*)&LataHalfwaySample)&bunny)==0) LataHalfwaySample=0.0; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/dreamer/Sources/_audio/_plugins/airwindows-lv2-port/plugins/LV2/src/DustBunny/../../../LinuxVST/src/DustBunny/DustBunnyProc.cpp:212:10: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] if (((*(unsigned int*)&inputSampleL)&bunny)==0) inputSampleL=0.0; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/dreamer/Sources/_audio/_plugins/airwindows-lv2-port/plugins/LV2/src/DustBunny/../../../LinuxVST/src/DustBunny/DustBunnyProc.cpp:230:10: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] if (((*(unsigned int*)&RataHalfwaySample)&bunny)==0) RataHalfwaySample=0.0; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/dreamer/Sources/_audio/_plugins/airwindows-lv2-port/plugins/LV2/src/DustBunny/../../../LinuxVST/src/DustBunny/DustBunnyProc.cpp:241:10: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] if (((*(unsigned int*)&inputSampleR)&bunny)==0) inputSampleR=0.0; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ ```
Author
Owner

@snake66 commented on GitHub (Apr 28, 2021):

@dromer Thanks for the heads up. I'll have a look at it this weekend. Strange that this error did not show up for me. Which compiler (and version) are you using?

<!-- gh-comment-id:828758607 --> @snake66 commented on GitHub (Apr 28, 2021): @dromer Thanks for the heads up. I'll have a look at it this weekend. Strange that this error did not show up for me. Which compiler (and version) are you using?
Author
Owner

@dromer commented on GitHub (Apr 28, 2021):

@snake66 this is gcc 8.3.0-6 on debian stable

<!-- gh-comment-id:828770258 --> @dromer commented on GitHub (Apr 28, 2021): @snake66 this is `gcc 8.3.0-6` on debian stable
Author
Owner

@snake66 commented on GitHub (Apr 29, 2021):

@dromer Thanks! I'll have a look at it.

<!-- gh-comment-id:829080531 --> @snake66 commented on GitHub (Apr 29, 2021): @dromer Thanks! I'll have a look at it.
Author
Owner

@snake66 commented on GitHub (May 2, 2021):

@dromer I've pushed another revision, that I hope will fix this issue. I wasn't able to reproduce tyring to build with gcc 8.3 in a debian docker image, so please let me know if it works for you or not.

Technically this code triggers undefined behaviour, so it's a miracle that it works as intended in any case. I'm still hoping to make as little changes to the upstream code as possible, but let's see how far that will get us :)

<!-- gh-comment-id:830809012 --> @snake66 commented on GitHub (May 2, 2021): @dromer I've pushed another revision, that I _hope_ will fix this issue. I wasn't able to reproduce tyring to build with gcc 8.3 in a debian docker image, so please let me know if it works for you or not. Technically this code triggers undefined behaviour, so it's a miracle that it works as intended in any case. I'm still hoping to make as little changes to the upstream code as possible, but let's see how far that will get us :)
Author
Owner

@dromer commented on GitHub (May 2, 2021):

@snake66 success!

<!-- gh-comment-id:830810669 --> @dromer commented on GitHub (May 2, 2021): @snake66 success!
Author
Owner

@dromer commented on GitHub (May 2, 2021):

@snake66 btw we started to try and build these for MOD and they do work, but man is the cpu load high for most of them.

<!-- gh-comment-id:830860303 --> @dromer commented on GitHub (May 2, 2021): @snake66 btw we started to try and build these for MOD and they do work, but man is the cpu load high for most of them.
Author
Owner

@snake66 commented on GitHub (May 6, 2021):

@dromer Cool! But yeah, the dithering stage seems to be very CPU intensive. It could be worth trying to strip it out from each plugin like was done for the soundpipe port of the verbity plugin.

<!-- gh-comment-id:833336260 --> @snake66 commented on GitHub (May 6, 2021): @dromer Cool! But yeah, the dithering stage seems to be very CPU intensive. It could be worth trying to strip it out from each plugin like was done for the [soundpipe port](https://git.sr.ht/~pbatch/soundpipe/tree/master/item/modules/verbity.c) of the verbity plugin.
Author
Owner

@mxmilkiib commented on GitHub (Apr 22, 2022):

FYIs, found this today https://github.com/hannesbraun/airwindows-lv2

Edit; I guess generally that decoupling shared aspects of the code to make it easier to manage has been considered? Maybe I missed or forgot a reply on that though!

<!-- gh-comment-id:1106361548 --> @mxmilkiib commented on GitHub (Apr 22, 2022): FYIs, found this today https://github.com/hannesbraun/airwindows-lv2 Edit; I guess generally that [decoupling](https://linuxmusicians.com/viewtopic.php?f=44&t=24386&p=143510) shared aspects of the code to make it easier to manage has been considered? Maybe I missed or forgot a reply on that though!
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/airwindows#10
No description provided.