139 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			139 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# samples
 | 
						|
 | 
						|
In the context of Furnace, a sound sample (usually just referred to as a sample) is a string of numbers that represent sampled PCM audio.
 | 
						|
 | 
						|
In Furnace, these samples can be generated by importing a .wav (think of it as an higher quality MP3) file.
 | 
						|
 | 
						|
## supported chips
 | 
						|
 | 
						|
the following sound chips have sample support:
 | 
						|
 | 
						|
- NES/Ricoh 2A03 (with DPCM support and only on channel 5)
 | 
						|
- Sega Genesis/YM2612 (channel 6 only)
 | 
						|
- PC Engine/TurboGrafx-16/HuC6280
 | 
						|
- Amiga/Paula
 | 
						|
- SegaPCM
 | 
						|
- NEC PC-9801/YM2608 (ADPCM channel only)
 | 
						|
- Neo Geo/Neo Geo CD/YM2610 (ADPCM channels only)
 | 
						|
- Seta/Allumer X1-010
 | 
						|
- Atari Lynx
 | 
						|
- MSM6258 and MSM6295
 | 
						|
- YMU759/MA-2 (last channel only)
 | 
						|
- QSound
 | 
						|
- ZX Spectrum 48k (1-bit)
 | 
						|
- RF5C68
 | 
						|
- SNES/S-DSP
 | 
						|
- WonderSwan (second channel only)
 | 
						|
- tildearrow Sound Unit
 | 
						|
- VERA (last channel only)
 | 
						|
- Y8950 (last channel only)
 | 
						|
- Konami K007232
 | 
						|
- Irem GA20
 | 
						|
- Ensoniq OTTO/ES5506
 | 
						|
- Yamaha PCMD8/YMZ280B
 | 
						|
- MMC5 (last channel only)
 | 
						|
- SNES/S-DSP
 | 
						|
 | 
						|
## compatible sample mode
 | 
						|
 | 
						|
effect `17xx` enables/disables compatible sample mode whether supported (e.g. on Sega Genesis or PC Engine).
 | 
						|
 | 
						|
in this mode, samples are mapped to notes in an octave from C to B, allowing you to use up to 12 samples.
 | 
						|
if you need to use more samples, you may change the sample bank using effect `EBxx`.
 | 
						|
 | 
						|
use of this mode is discouraged in favor of Sample type instruments.
 | 
						|
 | 
						|
## notes
 | 
						|
 | 
						|
due to limitations in some of those sound chips, some restrictions exist:
 | 
						|
 | 
						|
- Amiga: sample lengths and loop will be set to an even number, and your sample can't be longer than 131070.
 | 
						|
- NES: if on DPCM mode, only a limited selection of frequencies is available, and loop position isn't supported (only entire sample).
 | 
						|
- SegaPCM: your sample can't be longer than 65535, and the maximum frequency is 31.25KHz.
 | 
						|
- QSound: your sample can't be longer than 65535, and the loop length shall not be greater than 32767.
 | 
						|
- Neo Geo (ADPCM-A): no looping supported. your samples will play at 18.518KHz.
 | 
						|
- Neo Geo (ADPCM-B): no loop position supported (only entire sample), and the maximum frequency is 55.555KHz.
 | 
						|
- YM2608: the maximum frequency is 55.555KHz.
 | 
						|
- MSM6258/MSM6295: no arbitrary frequency.
 | 
						|
- ZX Spectrum Beeper: your sample can't be longer than 2048, and it always plays at ~55KHz.
 | 
						|
- Seta/Allumer X1-010: frequency resolution is terrible in the lower end. your sample can't be longer than 131072.
 | 
						|
 | 
						|
furthermore, many of these chips have a limited amount of sample memory. check memory usage in window > statistics.
 | 
						|
 | 
						|
# the sample editor
 | 
						|
 | 
						|
you can actually tweak your samples in Furnace's sample editor, which can be accessed by clicking on `window` (at the top of the screen) then clicking on `sample editor`.
 | 
						|
 | 
						|
the changes you make will be applied as soon as you've committed them to your sample, but they can be undone and redone, just like text.
 | 
						|
 | 
						|
in there, you can modify certain data pertaining to your sample, such as the:
 | 
						|
 - volume of the sample in percentage, where 100% is the current level of the sample (note that you can distort it if you put it too high)
 | 
						|
 - the sample rate.
 | 
						|
 - what frequencies to filter, along with filter level/sweep and resonance options (much like the C64)
 | 
						|
 - and many more.
 | 
						|
 | 
						|

 | 
						|
 | 
						|
- top-left drop-down box: sample slot.
 | 
						|
- **Open**: replaces current sample.
 | 
						|
- **Save**: saves current sample to disk.
 | 
						|
- **Name**: name in sample list.
 | 
						|
- button to left of **Info**: collapses and expands the info bar.
 | 
						|
- **Type**: sample format. only 8-bit and 16-bit PCM samples are editable. selecting a format converts the sample data.
 | 
						|
- **BRR emphasis**: boosts higher frequencies to compensate for the SNES low-pass filter. should not be enabled for BRR-type samples.
 | 
						|
 | 
						|
- **Rate**: switches to normal rate values.
 | 
						|
- **Compat Rate**: switches to DefleMask-compatible rate values for sample mapping.
 | 
						|
- **Hz**: base frequency of sample played at `C-4`.
 | 
						|
- **Note**: note corresponding to Hz.
 | 
						|
- **Fine**: fine tuning. ranges from -64 to 63, which maps to -1 to almost +1 semitone.
 | 
						|
 | 
						|
- **Loop**: enable or disable sample loop. only on supported chips.
 | 
						|
- **Mode**: direction of loop. backward and ping pong loops are only natively available on some chips; on others, loop will be automatically unrolled as needed.
 | 
						|
- **Start**: start of loop.
 | 
						|
- **End**: end of loop.
 | 
						|
 | 
						|
- **Chips:** set assignment to chips and sample banks.
 | 
						|
  - sample will only be uploaded to selected chips.
 | 
						|
  - columns correspond to chips in use.
 | 
						|
  - rows correspond to sample banks.
 | 
						|
 | 
						|

 | 
						|
 | 
						|
- **Edit mode: Select**: cursor selects portion of sample.
 | 
						|
- **Edit mode: Draw**: cursor draws over wave.
 | 
						|
- **Resize**: stretches sample. pops up a dialog to type new length.
 | 
						|
- **Resample**: stretches sample. pops up a dialog box:
 | 
						|
  - **Rate**: new sample rate.
 | 
						|
  - **0.5x**: halves sample rate.
 | 
						|
  - **==**: returns to original sample rate.
 | 
						|
  - **2.0x**: doubles sample rate.
 | 
						|
  - **Factor**: multiplier of original sample rate.
 | 
						|
  - **Filter**: selects interpolation filter for resampling.
 | 
						|
- **Undo**: undoes previous edit.
 | 
						|
- **Redo**: redoes undone edit.
 | 
						|
- **Amplify**: changes amplitude of selection. pops up a dialog to type amount.
 | 
						|
- **Normalize**: adjusts amplitude of selection to maximum without clipping.
 | 
						|
- **Fade in**: ramp amplitude of selection from 0 to original.
 | 
						|
- **Fade in**: ramp amplitude of selection from original to 0.
 | 
						|
- **Insert silence**: inserts silence. pops up a dialog to type length.
 | 
						|
- **Apply silence**: reduces amplitude of selection to 0.
 | 
						|
- **Delete**: removes selection.
 | 
						|
- **Trim**: removes all but selection.
 | 
						|
- **Reverse**: reverses direction of selection.
 | 
						|
- **Invert**: flips selection "vertically".
 | 
						|
- **Signed/unsigned exchange**: reinterprets selection data as being of the opposite sign. if a sample sounds fine elsewhere but is distorted on import, it may have been interpreted as signed when it should be unsigned, or vice versa; this will correct that.
 | 
						|
- **Apply filter**: filters the selection. pops up a dialog box:
 | 
						|
  - **From**: filter cutoff frequency at start of selection.
 | 
						|
  - **To**: filter cutoff frequency at end of selection.
 | 
						|
  - **Resonance**: emphasizes frequencies around filter cutoff.
 | 
						|
  - **Power**: number of times resonance is applied.
 | 
						|
  - **Low-pass**: amount to attenuate everything above cutoff.
 | 
						|
  - **Band-pass**: amount to attenuate everything outside cutoff.
 | 
						|
  - **High-pass**: amount to attenuate everything below cutoff.
 | 
						|
- **Preview sample**: plays sample at base frequency.
 | 
						|
- **Stop sample preview**: stops preview.
 | 
						|
- **Create instrument from sample**: creates a new instrument with its initial sample set to the current sample.
 | 
						|
- **Zoom**: shows and sets sample view zoom level.
 | 
						|
- **Zoom mode**: switches between "Auto" (entire sample fits in window) and "100%" (each horizontal pixel represents one sample point).
 |