Audio plugin host https://kx.studio/carla
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

595 lines
12KB

  1. /*
  2. * Carla Native Plugins
  3. * Copyright (C) 2012-2018 Filipe Coelho <falktx@falktx.com>
  4. *
  5. * This program is free software; you can redistribute it and/or
  6. * modify it under the terms of the GNU General Public License as
  7. * published by the Free Software Foundation; either version 2 of
  8. * the License, or any later version.
  9. *
  10. * This program is distributed in the hope that it will be useful,
  11. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. * GNU General Public License for more details.
  14. *
  15. * For a full copy of the GNU General Public License see the doc/GPL.txt file.
  16. */
  17. #include "CarlaDefines.h"
  18. #define PLUGINVERSION
  19. #define SOURCE_DIR "/usr/share/zynaddsubfx/examples"
  20. #undef override
  21. // ignore some compiler warnings
  22. #if defined(__clang__)
  23. # pragma clang diagnostic push
  24. # pragma clang diagnostic ignored "-Winconsistent-missing-override"
  25. # pragma clang diagnostic ignored "-Wunused-private-field"
  26. #elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
  27. # pragma GCC diagnostic push
  28. # pragma GCC diagnostic ignored "-Wliteral-suffix"
  29. # if __GNUC__ >= 6
  30. # pragma GCC diagnostic ignored "-Wshift-negative-value"
  31. # pragma GCC diagnostic ignored "-Wmisleading-indentation"
  32. # endif
  33. #endif
  34. // base c-style headers
  35. #include "zynaddsubfx/tlsf/tlsf.h"
  36. #include "zynaddsubfx/rtosc/rtosc.h"
  37. #ifdef SKIP_ZYN_SYNTH
  38. # define PRId64 P_INT64
  39. # define PRIi64 P_INT64
  40. # define PRIx64 P_UINT64
  41. # define PRId32 "%d"
  42. # define PRIi32 "%i"
  43. # define PRIx32 "%x"
  44. #endif
  45. // C-code includes
  46. extern "C" {
  47. #include "zynaddsubfx/tlsf/tlsf.c"
  48. #undef TLSF_64BIT
  49. #undef tlsf_decl
  50. #undef tlsf_fls_sizet
  51. #undef tlsf_cast
  52. #undef tlsf_min
  53. #undef tlsf_max
  54. #undef tlsf_assert
  55. #undef _tlsf_glue2
  56. #undef _tlsf_glue
  57. #undef tlsf_static_assert
  58. #undef tlsf_insist
  59. #include "zynaddsubfx/rtosc/dispatch.c"
  60. #include "zynaddsubfx/rtosc/pretty-format.c"
  61. #include "zynaddsubfx/rtosc/rtosc.c"
  62. }
  63. // rtosc includes
  64. #include "zynaddsubfx/rtosc/cpp/automations.cpp"
  65. #include "zynaddsubfx/rtosc/cpp/midimapper.cpp"
  66. #include "zynaddsubfx/rtosc/cpp/miditable.cpp"
  67. #undef RTOSC_INVALID_MIDI
  68. #undef MAX_UNHANDLED_PATH
  69. #include "zynaddsubfx/rtosc/cpp/ports.cpp"
  70. #undef __builtin_expect
  71. #include "zynaddsubfx/rtosc/cpp/subtree-serialize.cpp"
  72. #include "zynaddsubfx/rtosc/cpp/thread-link.cpp"
  73. #undef off_t
  74. #include "zynaddsubfx/rtosc/cpp/undo-history.cpp"
  75. // zynaddsubfx includes
  76. #include "zynaddsubfx/version.cpp"
  77. #ifndef SKIP_ZYN_SYNTH
  78. #include "zynaddsubfx/Containers/MultiPseudoStack.cpp"
  79. #undef rBegin
  80. #undef rObject
  81. #undef rStdString
  82. #undef rStdStringCb
  83. #undef rChangeCb
  84. #define rChangeCb
  85. #include "zynaddsubfx/Containers/NotePool.cpp"
  86. #undef rBegin
  87. #undef rObject
  88. #undef rStdString
  89. #undef rStdStringCb
  90. #undef rChangeCb
  91. #define rChangeCb
  92. #include "zynaddsubfx/Containers/ScratchString.cpp"
  93. #undef rBegin
  94. #undef rObject
  95. #undef rStdString
  96. #undef rStdStringCb
  97. #undef rChangeCb
  98. #define rChangeCb
  99. #include "zynaddsubfx/Misc/Bank.cpp"
  100. #undef INSTRUMENT_EXTENSION
  101. #undef FORCE_BANK_DIR_FILE
  102. #undef rBegin
  103. #undef rObject
  104. #undef rStdString
  105. #undef rStdStringCb
  106. #undef rChangeCb
  107. #define rChangeCb
  108. #define INSTRUMENT_EXTENSION INSTRUMENT_EXTENSION_DB
  109. #include "zynaddsubfx/Misc/BankDb.cpp"
  110. #undef INSTRUMENT_EXTENSION
  111. #undef rBegin
  112. #undef rObject
  113. #undef rStdString
  114. #undef rStdStringCb
  115. #undef rChangeCb
  116. #define rChangeCb
  117. #include "zynaddsubfx/Misc/CallbackRepeater.cpp"
  118. #undef rBegin
  119. #undef rObject
  120. #undef rStdString
  121. #undef rStdStringCb
  122. #undef rChangeCb
  123. #define rChangeCb
  124. #include "zynaddsubfx/Misc/Config.cpp"
  125. #undef rBegin
  126. #undef rObject
  127. #undef rStdString
  128. #undef rStdStringCb
  129. #undef rChangeCb
  130. #define rChangeCb
  131. #include "zynaddsubfx/Misc/Master.cpp"
  132. #undef rObject
  133. #undef rStdString
  134. #undef rStdStringCb
  135. #undef rChangeCb
  136. #define rChangeCb
  137. #include "zynaddsubfx/Misc/Microtonal.cpp"
  138. #undef MAX_LINE_SIZE
  139. #undef rBegin
  140. #undef rObject
  141. #undef rStdString
  142. #undef rStdStringCb
  143. #undef rChangeCb
  144. #define rChangeCb
  145. #include "zynaddsubfx/Misc/MiddleWare.cpp"
  146. #undef rBegin
  147. #undef rObject
  148. #undef rStdString
  149. #undef rStdStringCb
  150. #undef rChangeCb
  151. #define rChangeCb
  152. #include "zynaddsubfx/Misc/Part.cpp"
  153. #undef CLONE
  154. #undef rBegin
  155. #undef rObject
  156. #undef rStdString
  157. #undef rStdStringCb
  158. #undef rChangeCb
  159. #define rChangeCb
  160. #include "zynaddsubfx/Misc/PresetExtractor.cpp"
  161. #undef rBegin
  162. #undef rObject
  163. #undef rStdString
  164. #undef rStdStringCb
  165. #undef rChangeCb
  166. #define rChangeCb
  167. #include "zynaddsubfx/Misc/Recorder.cpp"
  168. #undef rBegin
  169. #undef rObject
  170. #undef rStdString
  171. #undef rStdStringCb
  172. #undef rChangeCb
  173. #define rChangeCb
  174. #include "zynaddsubfx/Misc/WavFile.cpp"
  175. #undef rBegin
  176. #undef rObject
  177. #undef rStdString
  178. #undef rStdStringCb
  179. #undef rChangeCb
  180. #define rChangeCb
  181. #include "zynaddsubfx/Params/ADnoteParameters.cpp"
  182. #undef EXPAND
  183. #undef rBegin
  184. #undef rObject
  185. #undef rStdString
  186. #undef rStdStringCb
  187. #undef rChangeCb
  188. #define rChangeCb
  189. #include "zynaddsubfx/Params/Controller.cpp"
  190. #undef rBegin
  191. #undef rObject
  192. #undef rStdString
  193. #undef rStdStringCb
  194. #undef rChangeCb
  195. #define rChangeCb
  196. #include "zynaddsubfx/Params/EnvelopeParams.cpp"
  197. #undef rBegin
  198. #undef rObject
  199. #undef rStdString
  200. #undef rStdStringCb
  201. #undef rChangeCb
  202. #define rChangeCb
  203. #include "zynaddsubfx/Params/LFOParams.cpp"
  204. #undef rBegin
  205. #undef rObject
  206. #undef rStdString
  207. #undef rStdStringCb
  208. #undef rChangeCb
  209. #define rChangeCb
  210. #include "zynaddsubfx/Params/PADnoteParameters.cpp"
  211. #undef PC
  212. #undef P_C
  213. #undef rBegin
  214. #undef rObject
  215. #undef rStdString
  216. #undef rStdStringCb
  217. #undef rChangeCb
  218. #define rChangeCb
  219. #include "zynaddsubfx/Params/SUBnoteParameters.cpp"
  220. #undef doPaste
  221. #undef doPPaste
  222. #undef rBegin
  223. #undef rObject
  224. #undef rStdString
  225. #undef rStdStringCb
  226. #undef rChangeCb
  227. #define rChangeCb
  228. #include "zynaddsubfx/Synth/ADnote.cpp"
  229. #undef rBegin
  230. #undef rObject
  231. #undef rStdString
  232. #undef rStdStringCb
  233. #undef rChangeCb
  234. #define rChangeCb
  235. #include "zynaddsubfx/Synth/Envelope.cpp"
  236. #undef rBegin
  237. #undef rObject
  238. #undef rStdString
  239. #undef rStdStringCb
  240. #undef rChangeCb
  241. #define rChangeCb
  242. #include "zynaddsubfx/Synth/LFO.cpp"
  243. #undef rBegin
  244. #undef rObject
  245. #undef rStdString
  246. #undef rStdStringCb
  247. #undef rChangeCb
  248. #define rChangeCb
  249. #include "zynaddsubfx/Synth/ModFilter.cpp"
  250. #undef rBegin
  251. #undef rObject
  252. #undef rStdString
  253. #undef rStdStringCb
  254. #undef rChangeCb
  255. #define rChangeCb
  256. #include "zynaddsubfx/Synth/OscilGen.cpp"
  257. #undef PC
  258. #undef DIFF
  259. #undef PRESERVE
  260. #undef RESTORE
  261. #undef FUNC
  262. #undef FILTER
  263. #undef rBegin
  264. #undef rObject
  265. #undef rStdString
  266. #undef rStdStringCb
  267. #undef rChangeCb
  268. #define rChangeCb
  269. #include "zynaddsubfx/Synth/PADnote.cpp"
  270. #undef rBegin
  271. #undef rObject
  272. #undef rStdString
  273. #undef rStdStringCb
  274. #undef rChangeCb
  275. #define rChangeCb
  276. #include "zynaddsubfx/Synth/Resonance.cpp"
  277. #undef rBegin
  278. #undef rObject
  279. #undef rStdString
  280. #undef rStdStringCb
  281. #undef rChangeCb
  282. #define rChangeCb
  283. #include "zynaddsubfx/Synth/SUBnote.cpp"
  284. #undef rBegin
  285. #undef rObject
  286. #undef rStdString
  287. #undef rStdStringCb
  288. #undef rChangeCb
  289. #define rChangeCb
  290. #include "zynaddsubfx/Synth/SynthNote.cpp"
  291. #undef rBegin
  292. #undef rObject
  293. #undef rStdString
  294. #undef rStdStringCb
  295. #undef rChangeCb
  296. #define rChangeCb
  297. #include "zynaddsubfx/Synth/WatchPoint.cpp"
  298. #undef rBegin
  299. #undef rObject
  300. #undef rStdString
  301. #undef rStdStringCb
  302. #undef rChangeCb
  303. #define rChangeCb
  304. #include "zynaddsubfx/UI/ConnectionDummy.cpp"
  305. #undef rBegin
  306. #undef rObject
  307. #undef rStdString
  308. #undef rStdStringCb
  309. #undef rChangeCb
  310. #define rChangeCb
  311. #include "zynaddsubfx/globals.cpp"
  312. #endif // ! SKIP_ZYN_SYNTH
  313. #include "zynaddsubfx/DSP/AnalogFilter.cpp"
  314. #undef rBegin
  315. #undef rObject
  316. #undef rStdString
  317. #undef rStdStringCb
  318. #undef rChangeCb
  319. #define rChangeCb
  320. #include "zynaddsubfx/DSP/FFTwrapper.cpp"
  321. #undef rBegin
  322. #undef rObject
  323. #undef rStdString
  324. #undef rStdStringCb
  325. #undef rChangeCb
  326. #define rChangeCb
  327. #include "zynaddsubfx/DSP/Filter.cpp"
  328. #undef rBegin
  329. #undef rObject
  330. #undef rStdString
  331. #undef rStdStringCb
  332. #undef rChangeCb
  333. #define rChangeCb
  334. #include "zynaddsubfx/DSP/FormantFilter.cpp"
  335. #undef rBegin
  336. #undef rObject
  337. #undef rStdString
  338. #undef rStdStringCb
  339. #undef rChangeCb
  340. #define rChangeCb
  341. #include "zynaddsubfx/DSP/SVFilter.cpp"
  342. #undef rBegin
  343. #undef rObject
  344. #undef rStdString
  345. #undef rStdStringCb
  346. #undef rChangeCb
  347. #define rChangeCb
  348. #include "zynaddsubfx/DSP/Unison.cpp"
  349. #undef rBegin
  350. #undef rObject
  351. #undef rStdString
  352. #undef rStdStringCb
  353. #undef rChangeCb
  354. #define rChangeCb
  355. #include "zynaddsubfx/Effects/Alienwah.cpp"
  356. #undef rBegin
  357. #undef rObject
  358. #undef rStdString
  359. #undef rStdStringCb
  360. #undef rChangeCb
  361. #define rChangeCb
  362. #include "zynaddsubfx/Effects/Chorus.cpp"
  363. #undef rBegin
  364. #undef rObject
  365. #undef rStdString
  366. #undef rStdStringCb
  367. #undef rChangeCb
  368. #define rChangeCb
  369. #include "zynaddsubfx/Effects/Distorsion.cpp"
  370. #undef rBegin
  371. #undef rObject
  372. #undef rStdString
  373. #undef rStdStringCb
  374. #undef rChangeCb
  375. #define rChangeCb
  376. #include "zynaddsubfx/Effects/DynamicFilter.cpp"
  377. #undef rBegin
  378. #undef rObject
  379. #undef rStdString
  380. #undef rStdStringCb
  381. #undef rChangeCb
  382. #define rChangeCb
  383. #include "zynaddsubfx/Effects/Echo.cpp"
  384. #undef MAX_DELAY
  385. #undef rBegin
  386. #undef rObject
  387. #undef rStdString
  388. #undef rStdStringCb
  389. #undef rChangeCb
  390. #define rChangeCb
  391. #include "zynaddsubfx/Effects/Effect.cpp"
  392. #undef rBegin
  393. #undef rObject
  394. #undef rStdString
  395. #undef rStdStringCb
  396. #undef rChangeCb
  397. #define rChangeCb
  398. #include "zynaddsubfx/Effects/EffectLFO.cpp"
  399. #undef rBegin
  400. #undef rObject
  401. #undef rStdString
  402. #undef rStdStringCb
  403. #undef rChangeCb
  404. #define rChangeCb
  405. #include "zynaddsubfx/Effects/EffectMgr.cpp"
  406. #undef rBegin
  407. #undef rObject
  408. #undef rStdString
  409. #undef rStdStringCb
  410. #undef rChangeCb
  411. #define rChangeCb
  412. #include "zynaddsubfx/Effects/EQ.cpp"
  413. #undef rBegin
  414. #undef rObject
  415. #undef rStdString
  416. #undef rStdStringCb
  417. #undef rChangeCb
  418. #define rChangeCb
  419. #include "zynaddsubfx/Effects/Phaser.cpp"
  420. #undef PHASER_LFO_SHAPE
  421. #undef ONE_
  422. #undef ZERO_
  423. #undef rBegin
  424. #undef rObject
  425. #undef rStdString
  426. #undef rStdStringCb
  427. #undef rChangeCb
  428. #define rChangeCb
  429. #include "zynaddsubfx/Effects/Reverb.cpp"
  430. #undef rBegin
  431. #undef rObject
  432. #undef rStdString
  433. #undef rStdStringCb
  434. #undef rChangeCb
  435. #define rChangeCb
  436. #include "zynaddsubfx/Misc/Allocator.cpp"
  437. #undef rBegin
  438. #undef rObject
  439. #undef rStdString
  440. #undef rStdStringCb
  441. #undef rChangeCb
  442. #define rChangeCb
  443. #include "zynaddsubfx/Misc/Util.cpp"
  444. #undef rBegin
  445. #undef rObject
  446. #undef rStdString
  447. #undef rStdStringCb
  448. #undef rChangeCb
  449. #define rChangeCb
  450. #include "zynaddsubfx/Misc/WaveShapeSmps.cpp"
  451. #undef rBegin
  452. #undef rObject
  453. #undef rStdString
  454. #undef rStdStringCb
  455. #undef rChangeCb
  456. #define rChangeCb
  457. #include "zynaddsubfx/Misc/XMLwrapper.cpp"
  458. #undef rBegin
  459. #undef rObject
  460. #undef rStdString
  461. #undef rStdStringCb
  462. #undef rChangeCb
  463. #define rChangeCb
  464. #include "zynaddsubfx/Params/FilterParams.cpp"
  465. #undef rBegin
  466. #undef rObject
  467. #undef rStdString
  468. #undef rStdStringCb
  469. #undef rChangeCb
  470. #define rChangeCb
  471. #include "zynaddsubfx/Params/Presets.cpp"
  472. #undef rBegin
  473. #undef rObject
  474. #undef rStdString
  475. #undef rStdStringCb
  476. #undef rChangeCb
  477. #define rChangeCb
  478. #include "zynaddsubfx/Params/PresetsArray.cpp"
  479. #undef rBegin
  480. #undef rObject
  481. #undef rStdString
  482. #undef rStdStringCb
  483. #undef rChangeCb
  484. #define rChangeCb
  485. #include "zynaddsubfx/Params/PresetsStore.cpp"
  486. #undef rBegin
  487. #undef rObject
  488. #undef rStdString
  489. #undef rStdStringCb
  490. #undef rChangeCb
  491. #define rChangeCb
  492. #if defined(__clang__)
  493. # pragma clang diagnostic pop
  494. #elif defined(__GNUC__) && (__GNUC__ >= 6)
  495. # pragma GCC diagnostic pop
  496. #endif
  497. #ifndef SKIP_ZYN_SYNTH
  498. // Dummy variables and functions for linking purposes
  499. namespace zyncarla {
  500. class WavFile;
  501. namespace Nio {
  502. void masterSwap(Master*){}
  503. bool setSource(std::string){return true;}
  504. bool setSink(std::string){return true;}
  505. std::set<std::string> getSources(void){return std::set<std::string>();}
  506. std::set<std::string> getSinks(void){return std::set<std::string>();}
  507. std::string getSource(void){return "";}
  508. std::string getSink(void){return "";}
  509. void waveNew(WavFile*){}
  510. void waveStart(){}
  511. void waveStop(){}
  512. }
  513. }
  514. #endif // ! SKIP_ZYN_SYNTH
  515. rtosc_version rtosc_current_version()
  516. {
  517. return ((rtosc_version) { 0, 0, 0 } );
  518. }
  519. void rtosc_version_print_to_12byte_str(const rtosc_version* v,
  520. char* _12bytes)
  521. {
  522. snprintf(_12bytes, 12, "%u.%u.%u",
  523. (unsigned)v->major, (unsigned)v->minor, (unsigned)v->revision);
  524. }