midibox_sd_card_sample_player
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
midibox_sd_card_sample_player [2011/12/06 23:32] – leeby5 | midibox_sd_card_sample_player [2012/05/29 21:14] (current) – leeby5 | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== MIDIbox SD Card Polyphonic Sample Player ====== | ====== MIDIbox SD Card Polyphonic Sample Player ====== | ||
- | This is a brief description of a project | + | This is a brief description of a project to play back samples in real time from an SD card to an I2S based DAC on the Midibox. It will play a number of samples simultaneously, |
===== Hardware ===== | ===== Hardware ===== | ||
You will need: | You will need: | ||
- | * Midibox LPC1769 core - see http:// | + | * Midibox LPC1769 core (or STM32 now, but that has limited polyphony due to core speed) |
- | * I2C DAC (ie TDA1543) - see http:// | + | * I2C DAC (ie TDA1543 |
* SD card interface - see http:// | * SD card interface - see http:// | ||
* SD card formatted as FAT (NOT FAT32 - important as FAT32 performance currently isn't fast enough) - this limits you typically to cards <=2GB | * SD card formatted as FAT (NOT FAT32 - important as FAT32 performance currently isn't fast enough) - this limits you typically to cards <=2GB | ||
* MIDI data via USB or the standard Midi in | * MIDI data via USB or the standard Midi in | ||
- | I have currently only tested this on the LPC1769 | + | It has now been run on both LPC1769 |
===== Creating files on SD card ===== | ===== Creating files on SD card ===== | ||
- | The system currently looks for a file called ' | + | As of rev 1371 on the SVN, it now reads a file called ' |
+ | |||
+ | midichannel 1 | ||
+ | lee_hw 1 | ||
+ | |||
+ | The first one (obviously) sets the midi channel for the player. The second value is to enable my simple rotary bank switch on J10 (you probably want this set to zero if you have a real midibox core, and want to use MIDI program change to select the bank). | ||
+ | |||
+ | The system currently looks for a file called ' | ||
0x39 0 0031 c_a.raw | 0x39 0 0031 c_a.raw | ||
Line 23: | Line 30: | ||
It looks for the samples in the root of the SD card. | It looks for the samples in the root of the SD card. | ||
- | The sample format is fixed as: monophonic (1 channel) 44.1kHz 16 bit RAW little endian. Quite a mouthful. Basically use Audacity, Soundforge etc to convert whatever samples you have into this format. | + | The sample format is fixed as: monophonic (1 channel) 44.1kHz 16 bit RAW signed |
Currently you have to provide a note mapping for each note you want to sound, and usually therefore you will need to generate a sample of the right pitch for each note. This is a lot of samples for a full key range, but hey hopefully you only have to do this once! | Currently you have to provide a note mapping for each note you want to sound, and usually therefore you will need to generate a sample of the right pitch for each note. This is a lot of samples for a full key range, but hey hopefully you only have to do this once! | ||
Line 34: | Line 41: | ||
===== Latest features ===== | ===== Latest features ===== | ||
+ | * Now supports a config file on the SD card | ||
* Now supports MIDI program change to load banks from the SD card (eg for patch 1 it will load bank.1, patch 2 it will load bank.2 etc) | * Now supports MIDI program change to load banks from the SD card (eg for patch 1 it will load bank.1, patch 2 it will load bank.2 etc) | ||
* Envelope filtering and voice assignment now runs as a seperate MIOS task (increasing time available for sample read/ | * Envelope filtering and voice assignment now runs as a seperate MIOS task (increasing time available for sample read/ | ||
Line 39: | Line 47: | ||
* You can do sample hold per sample, eg have a bank where drum sounds are on some notes, and other non-hold samples such as bass are on other notes | * You can do sample hold per sample, eg have a bank where drum sounds are on some notes, and other non-hold samples such as bass are on other notes | ||
* It now supports velocity sensitivity, | * It now supports velocity sensitivity, | ||
- | * Bank switching is supported on the fly (ie without a reboot) | + | * Bank switching |
* Thanks to TK the sector positions on the SD card are cached leading to much better stability with multiple notes sounding | * Thanks to TK the sector positions on the SD card are cached leading to much better stability with multiple notes sounding | ||
Line 49: | Line 57: | ||
* Now uploaded to the MIOS32 SVN at: | * Now uploaded to the MIOS32 SVN at: | ||
* [[http:// | * [[http:// | ||
+ | |||
+ | ===== More info ===== | ||
+ | * A write up and more info on my site at [[http:// |
midibox_sd_card_sample_player.1323214364.txt.gz · Last modified: 2011/12/06 23:32 by leeby5