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.

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