
 * @ingroup SoundCreation
 */
enum dlsynth_transf {
  DLSYNTH_TRN_LINEAR = 0,
  DLSYNTH_TRN_CONCAVE = 1,
  DLSYNTH_TRN_CONVEX = 2,
  DLSYNTH_TRN_SWITCH = 3
};

/// Creates a new blocklist
/**
 * @ingroup SoundCreation
 * @return Zero on success, nonzero on failure
 */
enum dlsynth_error DLSYNTH_EXPORT dlsynth_new_blocklist(
 struct dlsynth_blocklist **blocklist ///< [out] The new blocklist
);

/// Adds a connection block to a blocklist
/**
 * @ingroup SoundCreation
 * @return Zero on success, nonzero on failure
 */
enum dlsynth_error DLSYNTH_EXPORT dlsynth_blocklist_add(
 struct dlsynth_blocklist *
  blocklist, ///< [in] The blocklist to which the connection block will be added
 enum dlsynth_source source,  ///< [in] The source node of the connection block
 enum dlsynth_source control, ///< [in] The control node of the connection block
 enum dlsynth_dest
  destination,      ///< [in] The destination node of the connection block
 int32_t scale,     ///< [in] Scaling factor of the connection
 int sourceInvert,  ///< [in] Whether the source node should be inverted
 int sourceBipolar, ///< [in] Whether the source node is bipolar
 enum dlsynth_transf
  sourceTransform,   ///< [in] Transform to use for the source node
 int controlInvert,  ///< [in] Whether the control node should be inverted
 int controlBipolar, ///< [in] Whether the control node is bipolar
 enum dlsynth_transf
  controlTransform ///< [in] Transform to use for the control node
);

/// Releases the resources associated with a blocklist
/**
 * @ingroup SoundCreation
 * @return Zero on success, nonzero on failure
 */
enum dlsynth_error DLSYNTH_EXPORT dlsynth_free_blocklist(
 struct dlsynth_blocklist *blocklist ///< [in] Blocklist to free
);

/// A list of regions
/**
 * @ingroup SoundCreation
 */
struct dlsynth_regionlist;

/// Creates a new regionlist
/**
 * @ingroup SoundCreation
 * @return Zero on success, nonzero on failure
 */
enum dlsynth_error DLSYNTH_EXPORT dlsynth_new_regionlist(
 struct dlsynth_regionlist **regionlist ///< [in] The new regionlist
);

/// Adds a region to a regionlist
/**
 * @ingroup SoundCreation
 * @return Zero on success, nonzero on failure
 */
enum dlsynth_error DLSYNTH_EXPORT dlsynth_add_region(
 struct dlsynth_regionlist
  *regionlist,         ///< [in] The list to which the new region will be added
 uint16_t minKey,      ///< [in] Bottom key in the region
 uint16_t maxKey,      ///< [in] Top key in the region
 uint16_t minVelocity, ///< [in] Lowest velocity in the region
 uint16_t maxVelocity, ///< [in] Greates velocity in the region
 const struct dlsynth_blocklist
  *blocklist,         ///< [in] List of connection blocks for the region
 uint32_t waveIndex,  ///< [in] Index in the wavepool of the sound collection
                      ///< that will be used as a sample
 int selfNonExclusive ///< [in] Whether playing the same note repeatedly should
                      ///< first stop the already playing voices or not
);

/// Adds a region to a regionlist with a wavesample that overrides the one
/// specified in the WAV
/**
 * @ingroup SoundCreation
 * @return Zero on success, nonzero on failure
 */
enum dlsynth_error DLSYNTH_EXPORT dlsynth_add_region_wavesample(
 struct dlsynth_regionlist
  *regionlist,         ///< [in] The list to which the new region will be added
 uint16_t minKey,      ///< [in] Bottom key in the region
 uint16_t maxKey,      ///< [in] Top key in the region
 uint16_t minVelocity, ///< [in] Lowest velocity in the region
 uint16_t maxVelocity, ///< [in] Greates velocity in the region
 const struct dlsynth_blocklist
  *blocklist,          ///< [in] List of connection blocks for the region
 uint32_t waveIndex,   ///< [in] Index in the wavepool of the sound collection
                       ///< that will be used as a sample
 int selfNonExclusive, ///< [in] Whether playing the same note repeatedly should
                       ///< first stop the already playing voices or not
 const struct dlsynth_wavesample
  *wavesample ///< [in] The wavesample to use in this region
);

/// Releases the resources associated with a regionlist
/**
 * @ingroup SoundCreation
 * @return Zero on success, nonzero on failure
 */
enum dlsynth_error DLSYNTH_EXPORT dlsynth_free_regionlist(
 struct dlsynth_regionlist *regionlist ///< [in] Regionlist to release
);

/// A list of instruments
/**
 * @ingroup SoundCreation
 */
struct dlsynth_instrlist;

/// Creates a new list of instruments
/**
 * @ingroup SoundCreation
 * @return Zero on success, nonzero on failure
 */
enum dlsynth_error DLSYNTH_EXPORT dlsynth_new_instrlist(
 struct dlsynth_instrlist **list ///< [out] The created instrument list
);

/// Adds an instrument to a list of instruments
/**
 * @ingroup SoundCreation
 * @return Zero on success, nonzero on failure
 */
enum dlsynth_error DLSYNTH_EXPORT dlsynth_add_instrument(
 struct dlsynth_instrlist
  *list,            ///< [in] The list to which the new instrument will be added
 uint32_t midiBank, ///< [in] The MIDI bank associated with the instrument
 uint32_t
  midiInstrument, ///< [in] The MIDI instrument associated with the instrument
 int isDrumInstrument, ///< [in] Whether this is a drum instrument or not
 const struct dlsynth_blocklist
  *blocklist, ///< [in] The list of connection blocks for this instrument
 const struct dlsynth_regionlist
  *regions ///< [in] The list of regions in this instrument
);

/// Releases the resources associated with a list of instruments
/**
 * @ingroup SoundCreation
 * @return Zero on success, nonzero on failure
 */
enum dlsynth_error DLSYNTH_EXPORT dlsynth_free_instrlist(
 struct dlsynth_instrlist *list ///< [in] The instrument list to free
);

/// Creates a new sound collection
/**
 * @ingroup SoundCreation
 * @return Zero on success, nonzero on failure
 */
enum dlsynth_error DLSYNTH_EXPORT dlsynth_new_sound(
 struct dlsynth_sound **sound, ///< [out] The created sound collection
 const struct dlsynth_instrlist *instruments, ///< [in] The instrument list
 const struct dlsynth_wavepool
  *wavepool ///< [in] Wavepool for the sound collection
);

#ifdef __cplusplus
}
#endif
#endifFeel this deeply. A handful of my friends drifted away or were cut from my life because of the drama and chaos they brought. It was all easier and hell, entertaining, when I was drunk. Now I want to chill. My group is small but meaningful. 

Whatever you like to do, go do it and meet people there. I'm really into sound baths in recovery, and I hope to find my sound bath person soon enough. Filling the void comes through finding healthy hobbies. I found it useful to return to my youth, and do what I did then to make me happy. I then added some mindfulness work and a lot of my time was used up. On restless nights, I listen to audio books and podcasts. The ability to remember all the stuff is rad. 

You got this! Explore your joy quest!﻿using Windows.UI.Xaml.Controls;

namespace WCTDataTreeTabSample
{
	public sealed partial class ExpanderPage : Page
	{
		public ExpanderPage()
		{
			this.InitializeComponent();
		}
	}
