Giter Site home page Giter Site logo

blumia / pineapplesynth Goto Github PK

View Code? Open in Web Editor NEW
17.0 6.0 2.0 2.05 MB

A too simple vsti synth made with wdl-ol

License: MIT License

C++ 88.35% C 2.10% Objective-C++ 0.17% Inno Setup 2.29% Shell 4.05% Batchfile 1.21% Python 1.85%
synthesizer vsti vst2-vst3 wdl-ol

pineapplesynth's Introduction

About this repo

This is a synthesizer. Inspired by Syntorial and i wish to build a plugins that easy and free to use.

Since this is my first attempt to make a vsti, it may works very slow.

Special Thanks

  • Thanks this tutorial, this is a really great tutorial for developer who want to make an audio plugin with wdl-ol.
  • Thanks wdl-ol because this repo is based on this.
  • Thanks Knobman for makes creating knobs easily.
  • Thanks SAVIHost for makes testing vsti easily.
  • Thanks @UN1C0DE for help me debugging and thanks @Chris for the advices.

How to build

You need to clone wdl-ol (VS2015 branch) to your disk, then clone this repo to /IPlugExamples/ folder, then use visual studio 2015 to open the Visual Studio .sln, then you can build.

If you want to build a vst2 or vst3 target, you should download the sdk and follow the instruction in "wdl-ol/XXXX_SDK/readme.txt" to place some header file to the right place.

I've also prepared the Code::Block project (.cbp) for user who want to build with that IDE. no Mac support right now, because i don't have Mac.

Licence

MIT =D

关于这个Repo

想写合成器有很久了,于是经常有搜一些资料来看,偶然间看到了这个教程,感觉甚好于是就跟着做了,目前根着教程然后做些符合我期望的改动,基本可用之后,我的合成器坑大概就要正式开工了。(大概....吧)

目前这个合成器还是非常简单的合成器,截至目前(commit 0905d43)的功能基本根据上面提到的教程并稍微动点脑子写一点代码就可以达到。后续复杂的功能大概得慢慢啃DSP了。(先把简单功能完善了再说233)

还是非常感谢那个教程把我拉入了DSP坑,当然我也把@UN1C0DE入了坑。蛤蛤蛤蛤蛤蛤

受到了Syntorial的影响,PineappleSynth的初衷(开坑前设想)是做一个合成器和一系列教程,供需要和现在的我一样的小白点技能树使用。于是计划内会有基于 Web Audio API 的网页版和一个程序版共两个版本的大菠萝合成器出现。并具有类似 Syntorial 的帮助学习功能。

目前出于试水探坑底,于是现阶段会先做一个稳定可用的普通合成器,而不是有很多复杂功能的合成器。

感谢

  • 此教程 所赐,没有这个教程,大概这个repo也不会存在了吧。
  • 感谢 wdl-ol ,整个项目基于此项目,虽然我做了一些微小的工作使之符合我的需求,这些改动待完善后也会放出。
  • Knobman 是个做旋钮的不错的小工具,非常好用。
  • 调试使用了 SAVIHost 作为vst2和vst3的宿主程序。
  • 额外感谢 @UN1C0DE 帮我抓虫子和 @Chris 的好点子 :D

如何构建项目

你需要先去克隆 wdl-ol (VS2015 分支) 到你的硬盘,然后把这个repo克隆到/IPlugExamples/文件夹,最后用VS2015打开里面的sln即可。

如果你想要构建vst2或者vst3,在你构建之前,你需要去准备好VST的SDK,然后根据 "wdl-ol/XXXX_SDK/readme.txt" 的引导放置需要的头文件即可。

我额外准备了code::block的cbp供这个IDE的用户编译需要的版本。需要注意的是,目前只能编译vst2版和app版。Mac AU版本暂不提供,因为我没苹果电脑。

许可协议

MIT~

pineapplesynth's People

Contributors

blumia avatar chirs241097 avatar jimmybenklieve avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

xokbuz anylee2021

pineapplesynth's Issues

Architecture revamp request

The current polyphony architecture is lack of flexibility. It should be improved to make accessing properties of voices and adding new attributes easier.
Several points that should be taken into consideration:

  • The full list of attributes is still determined at compile time. There's no need to be completely dynamic.
  • Avoid using std::map or anything like that in audio processing. They can be used to bind UI elements with attributes, however.
  • For the sake of performance, consider setting up a union for all attributes, store them in an array and access with predefined attribute-name-to-subscript mapping macros. (?)
  • Make sure the new design is friendly to the implementation of LFOs.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.