TWL-System NITRO-Composer Revision History

Index

2.1.0

Added and Changed Features

Bug Fixes

2.0.0 RC

Bug Fixes

2008/04/08 Version

Added and Changed Features

2007/11/26 Version

Added and Changed Features

Bug Fixes

2007/03/14 Version

Added and Changed Features

Bug Fixes

2006/05/29 Version

Added and Changed Features

Bug Fixes

2005/09/01 Version

Added and Changed Features

Bug Fixes

2005/06/06 Version

Added and Changed Features

Bug Fixes

2005/03/28 Version

Added and Changed Features

Bug Fixes

2005/01/31 Version

Added and Changed Features

Bug Fixes

2004/12/06 Version

Added and Changed Features

Bug Fixes

2004/11/10 Version

Added and Changed Features

Bug Fixes

2004/10/12 Version

Added and Changed Features

Bug Fixes

2004/09/16 Version

Added and Changed Features

Bug Fixes

2004/09/02 Version

Added and Changed Features

Bug Fixes

2004/08/10 Version

Added and Changed Features

Bug Fixes

2004/07/20 Version

Added and Changed Features

Bug Fixes

2004/06/10 Version

Added and Changed Features

Bug Fixes

Changes in 2.1.0

Note 81-S01: (Converter) Added support for converting data stored in Japanese-language folders

An error would occur when sound data stored in a folder named in Japanese was converted by SoundMaker or other programs. That bug has been fixed.

Note 81-S02: (Documentation) Added description of NNS_SndArcInitOnMemory

Added a cautionary note about destroying Sound archives and loading different Sound archives to the same address.

Note 81-S03: (Library) Updated NNS_SndWaveOutStart function to support IMA-ADPCM

Updated to include IMA-ADPCM among the waveform data formats that can be handled by the NNS_SndWaveOutStart function.

Note 81-S04: (Converter) Fixed bug in data size alignment

The alignment size specified by the --align option in sndarc.exe was not being applied. That has been fixed. There was also an incorrect size value being output to the Sound Map file. That has also been fixed.

Note 81-S05: (Documentation) Added description of NNS_SndArcInit*

Added mention in the references for the NNS_SndArcInit* functions that the sound archive data in NAND archives and SD Card archives cannot be used.

Note 81-S06: (Converter) Added support for invalid loop information during waveform conversion

An error is now output when a waveform file with invalid loop information has been converted by waveconv.exe.

Note 81-S07: (Documentation) Added explanation of SoundPlayer's TWL support

Explained in the Sound Designer Guide that hardware volume is displayed when SoundPlayer is used with the TWL or with IS-TWL-DEBUGGER. Also added an explanation of IS-TWL-MIDI support.

Note 81-S08: (Documentation) Corrected sample data directory path

In the Quick Start Guide and the Sound Designer Guide, an incorrect path was give for directories containing sample data. This problem has been fixed.

Note 81-S09: (Documentation) Added notes about using TWL-SDK's SND, SNDEX, and DSP functions

Added cautionary notes about using the TWL-SDK's SND, SNDEX, and DSP functions to the Sound Programmer Guide.

Changes in 2.0.0 RC

Note 78-S01: (Library) Fixed bug for stream thread stack size

The stream thread stack size was too small, causing memory to be destroyed when a stream callback consumed the stack. That bug has been fixed.

Changes in Version 2008/04/08

Note 76-S01: (Manual) Changed the format of the Revision History and revised the page headers

The Revision History has been changed, and the page headers have been revised in the following PDF manuals.

Changes in Version 2007/11/26

Note 71-S01: (Library) Added a sound archive load block size setting

The following functions were added to set or get the load block size when loading data from a sound archive.

When the amount of data to load is larger than the specified load block size, the data is split into blocks equal to the load block size and loaded over several cycles.

Note 71-S02: (Library) Function arguments converted to constants

Attached const to the following function arguments.

Note 71-S03: (Converter/SoundPlayer) Made MIDI RPN updates

Added support for MIDI RPN. With RPN LSB = 0, MSB = 0, it is possible to set pitch bend sensitivity (bendrange).

Note 71-S04: (Converter/Library) Disabled sequence commands related to envelopes

For the attck, decay, sustain, release, and envelope sequence commands, once an envelope was set for the sequence, it was impossible to return to the bank setting. It is now possible, however, to disable the sequence setting and enable the bank setting by specifying -1 for any of the associated arguments.

Note 71-S05: (Converter) Improved ADPCM encoding

Made improvements to mitigate noise generated during ADPCM encoding when using waveconv and strmconv.

Note 71-S06: (Library) Fixed bug specific to offset for start of stream playback

The offset for the start of playback can be specified in the NNS_SndArcStrmStart function and elsewhere, but there was a problem that caused an overflow during library calculations, preventing the stream from starting at the specified offset. That bug has been fixed.

Note 71-S07: (Converter) Fixed bug specific to alignment of data within sound archives

Changes in the 2007/03/14 version caused the alignment of data in the sound archive to shift. This resulted in a bug that triggered an assert during runs. This bug has been fixed.

However, sound data must be reconverted.

Note 71-S08: (Converter) Fixed bug specific to sound map file data size

A bug was fixed where invalid values were output for the data size given in sound map files (SMAP) generated during sound archive conversion.

Note 71-S09: (Converter) Fixed bug specific to AIFF loading process

Fixed a conversion error bug, despite its being the correct AIFF file, when using waveconv and strmconv.

Changes in Version 2007/03/14

Note 64-S01: (SoundPlayer) Added a feature to SoundPlayer for changing output effects

Functionality allowing output effects to be changed has been added to SoundPlayer.

Note 64-S02: (SoundPlayer) Added a feature to SoundPlayer for displaying stream process loads

The process load of stream threads during stream playback is now displayed in the SoundPlayer window.

Note 64-S03: (SoundPlayer) Added a feature to SoundPlayer for playing multiple sounds simultaneously

A feature for playing multiple sounds at beginning at the same time has been added to SoundPlayer. For more information, see the Sound Designer's Guide.

Note 64-S04: (Converter) Added a feature for specifying alignment in sound archives

The .align option for specifying the alignment of sound data in an archive has been added to the sound archiver, sndarc. For more information, see the Sound Tool Manual.

Note 64-S05: (Converter) Added a feature for specifying sound archive conversion file types

The .convert option for specifying the file to be converted by file type has been added to the sound archiver, sndarc. For more information, see the Sound Tool Manual.

Note 64-S06: (Library) Added sound archive stream-related functions

The NNS_SndArcStrmGetChannelCount function for getting the number of channels in the stream data being played and the NNS_SndArcStrmSetVolume function for changing the audio volume of the stream have been added.

Note 64-S07: (Converter) Fixed a bug where a conversion error was being generated due to too many command-line arguments

A bug has been fixed where a conversion error from too many command line arguments occurred when the number of files in a bank file, or similar file, increased.

Changes in Version 2006/05/29

Note 59-S01: (Converter/Library) Added the mute sequence command

A mute command for applying mute from within sequence data was added. This command works only with SDK version 3.1 or later. For more information, see the Sequence Data Manual.

Note 59-S02: (Converter) Added functionality to access before and after labels in sound archive definition files

Up until now it was necessary to define labels to be used ahead of time in a sound archive definition file, but now it is possible to use labels defined later.

Note 59-S03: (Converter) Extended the feature for expanding label names with embedded SMF text commands

When using functionality to expland a label name with an embedded SMF text command, it is now possible to expand only the track number without expanding the file name by using "$$" instead of "$". For more information, refer to Sequence Data Manual.

Note 59-S04: (Library) Added the NNS_SndPlayerSetTrackMuteEx function

The NNS_SndPlayerSetTrackMuteEx function for applying mute without stopping the sound being played has been added. This function works only with SDK version 3.1 or later.

Note 59-S05: (Library) Added the NNS_SndCaptureDestroyThread function

The NNS_SndCaptureDestroyThread function for terminating capture threads has been added.

Note 59-S06: (Converter) Fixed a bug where the last wait command was missing during SMF Format 1 conversion

A bug has been fixed where a wait command that should be inserted at the end of tracks was being omitted when converting SMF Format 1 data.

Note 59-S07: (Converter) Fixed a bug where conversion was not being executed correctly for paths that included empty strings

A bug has been fixed where conversion was not being handled properly when using a path that included an empty string.

Note 59-S08: (Converter) Fixed a bug where the layout of the sound map file would break when creating a missing number for the group number

A bug was fixed where the layout of sound map files (SMAP) output during conversion was being destroyed when creating a missing number for a group by directly specifying the group number in a group definition in a sound archive definition file (SARC).

Changes in Version 2005/09/01

Note 50-S01: (Library) Playback of stream data in memory

Although playback of stream data contained in a sound archive initialized by NNS_SndArcInitOnMemory was impossible, the method that initializes the sound archive using NNS_SndArcInit can be used to play back stream data.

Note 50-S02: (Converter) Added an option for specifying an output filename for the sound archiver sndarc

An option has been added that enables you to specify the file type of the output (that is, SDAT, SADL, and SBDL files) from the sound archiver sndarc. For more information, see the Sound Tool Manual.

Note 50-S03: (Converter) Added an option for specifying a pre-process file for the sound archiver sndarc

An option has been added to specify as an argument the preprocess files that are processed before the sound archive definition file for the sound archiver sndarc. For more information, see the Sound Tool Manual.

Note 50-S04: (Library) Added the NNS_SndArcInitWithResult function

Added the NNS_SndArcInitWithResult function to determine if sound-archive initialization was successful in loading a file. Use this function if file loading may fail. Using this function in place of the NNS_SndArcInit function lets you know the success or failure of sound-archive initialization. For more information, see the Function Reference.

Note 50-S05: (Library) Added functions for getting capture status

Added two functions : NNS_SndCaptureIsActive retrieves the execution status of a capture, and NNS_SndCaptureGetCaptureType retrieves the type of the currently executing capture. For more information, see the Function Reference.

Note 50-S06: (Library) Fixed bug resulting in frequent NNS_SndUpdateDriverInfo function failures

Fixed the NNS_SndUpdateDriverInfo function because calling the function failed one out of two times even if called once per frame.

Note 50-S07: (Converter) Fixed bug where file paths not recognized by sndarc and bankconv

Fixed file path misinterpretation in which the sound archiver sndarc and bank converter bankconv would interpret file paths as relative paths not specified with @PATH. This issue lead to other issues such as inappropriate conversion errors.

Changes in Version 2005/06/06

Note 45-S01: (Converter/Library) Added instrument setting to ignore Note Off

Added the ability to define an instrument in the bank definition file that ignores Note Off and plays to the end of the waveform data. In the envelope's release setting, instead of a release value, enter “DISABLE”. This invalidates the release, and the sound plays at the same volume until the end of the waveform data even after the Note Off occurs. For more information, see the Bank Data Manual.

Note 45-S02: (Converter) Added original key value specification in bank definition file

Added the ability to set the original key in the bank definition file using a value instead of key notation. For more information, see the Bank Data Manual.

Note 45-S03: (Documentation) Deleted sound driver (SND) function reference

Included the sound driver (SND) source code and function reference in NITRO-SDK and deleted the sound driver (SND) function reference from the NITRO-System package.

Note 45-S04: (Library) Added function to create thread for stream preparation

Added the NNS_SndArcStrmCreatePrepareThread function, which starts a thread that performs stream preparation. For more information, see the Reference Manual.

Note 45-S05: (Library) Fixed bug resulting in minor noise generation

If a sequence was started and the volume was changed or another sequence was played immediately thereafter, minor noise was generated in some cases. This was fixed. This bug occurred when a series of sound functions was called and execution occurred during different sound frames, causing partially ready sounds to be played for an instant. To avoid this bug, the actual processing of sequence data is delayed until the invocation of the series of sound functions is complete.

Note 45-S06: (SoundPlayer) Fixed bug in SoundPlayer real-time MIDI portamento

When playing a real-time MIDI with the SoundPlayer and using portamento, the pitch change started at the wrong position. This was fixed.

Note 45-S07: (Converter) Corrected case-sensitivity problem with the bankconv drive letter

In the bank converter (bankconv), differences in the case of the drive letter caused the wrong file to be recognized. This was fixed.

Changes in Version 2005/03/28

Note 43-S01: (Library) Added functionality to individually load waveform data to the player heap

Revisions were made so the waveform data individual load feature now works when loading to the player heap.

Note 43-S02: (Library) Added functionality to use player heap when playing sequence archives

Revisions were made so bank data and waveform data can be loaded to the player heap when playing a sequence archive. However, the sequence archive cannot load to the player heap. The data must be loaded to the sound heap in advance.

Note 43-S03: (Converter) Changed the sound map file (SMAP) format

A part of the sound map file (SMAP) format was changed, and the heap size consumed when loading data can be output. For more information, see the Sound Archive Manual.

Note 43-S04: (Converter) Expanded numeric value notation in text files

The sound archive definition file, the bank definition file, and the text sequence file were expanded to allow binary and bit notation as numeric value notation for parameters.

With binary notation, prepend “0b”, as in 0b001001.

Bit notation is useful for describing a numeric value that carries a meaning that a specific bit is 0 or 1, such as a bit flag, and is written in the format { 1,3,6-8 }. The example indicates that the lower bits 1, 3, and the bits from 6 to 8 have a value of 1, or 0b111001010. The lowest bit will be 0.

For more information, see the Sound Archive Manual, the Bank Data Manual, and the Sequence Data Manual. (The contents of each are identical.)

Note 43-S05: (Converter) Added a NULL type instrument

Made it possible to define a NULL type instrument in the bank definition file. A NULL type instrument does not play any sound. For example, this can be used to create an instrument that does not play any sound for a given split by combining with a key split. For more information, see the Bank Data Manual.

Note 43-S06: (Library) Added a function to set the volume for each player

The NNS_SndPlayerSetPlayerVolume function was added to allow the volume value to be configured for each player. For more information, see the Function Reference Manual.

Note 43-S07: (Library) Added function to set the track pan range

The NNS_SndPlayerSetTrackPanRange function was added to allow the track pan range to be configured. The track pan range is a parameter that designates the variation range for the track pan configured in the sequence data. By changing the track pan range, the variation range for the track pan configured in the sequence data can be decreased.

Note 43-S08: (Library) Added function to get stream data time length

The NNS_SndArcStrmGetTimeLength function was added to get the time length for the entire stream data. For more information, see the Function Reference Manual.

Note 43-S09: (Library) Added functions to get sound driver information

Added functions to get information about the sound driver. These functions are listed below:

Also added the driverInfo demo, which displays the sound driver information onscreen using these functions.

Note 43-S10: (Library) Added the SND_COMMAND_IMMEDIATE flag for the SND_FlushCommand function

Made it possible to specify SND_COMMAND_IMMEDIATE for the argument flag in the SND_FlushCommand function. When SND_COMMAND_IMMEDIATE is specified, issued commands are processed without waiting for the next sound frame.

Note 43-S11: (Library) Added SNDINST_NULL to SNDInstType

Added SND_INST_NULL to the values that can be taken by the type member of the SNDInstData structure used by functions such as SND_ReadInstData. Instrument data set to SND_INST_NULL does not make any sound.

Note 43-S12: (Library) Fixed a bug where channels playing sounds with a portamento command were being released

There was a bug that released all channels playing on corresponding tracks when the portamento commands porta, porta_on, and porta_off were executed in the sequence data. This bug was fixed. Also fixed the problem caused by this bug that caused sounds to be generated improperly when portamento commands were executed in tie mode.

Note 43-S13: (SoundPlayer) Fixed a bug where data load could not be selected in during manual load mode when using SoundPlayer

Fixed the bug that prevented data from being loaded because the cursor could not move to the data load menu item while in the SoundPlayer manual load mode.

Note 43-S14: (Converter) Fixed a bug where an unnecessary wait was being inserted at the end of tracks when using smfconv

Fixed the bug that caused an unnecessary wait command to be inserted at the end of each track in the SMFT file created when converting an SMF file.

Note 43-S15: (Converter) Fixed a bug where an invalid wait time was being output when using smfconv

Fixed the bug that output an invalid wait time when there are multiple time signature events of the same timing in an SMF file.

Note 43-S16: (Converter) Fixed a bug where an error would mistakenly occur when using bankconv

Fixed the bug that caused a false error when both an instrument label and an index number were specified in the bank definition file.

Changes in Version 2005/01/31

Note 39-S01: (Converter/Library) Added a feature for individually loading waveform data

Added a feature that allows the individual loading of waveform data in the waveform archive. If multiple banks are using common waveform data, this feature allows for a simple way of using memory more efficiently without having to use the waveform data group management feature. For more information, see the Sound Archive Manual.

Note 39-S02: (Converter/Library) Added a feature that limits the channels used by a sequence

Added a feature that can limit the usable channels for a sequence on each player. It is now possible to specify bit flags for channels that can be allocated in the @PLAYER section inside a sound archive definition file. (May be omitted.) For more information, see the Sound Archive Manual.

Note 39-S03: (Converter) Updated for the UNC format path notation

Revisions were made so that a UNC format path notation such as //server-1/path/dir can be used in @PATH and #include.

Note 39-S04: (Converter) Added syntax for the #include<filename> format

Added an #include<filename> format that has the same feature as the #include “filename” in the text data file. If the #include<filename> format is used, it becomes the relative path from the sound archive definition file (SARC) rather than the relative path from the current file. For more information, see the Sound Tool Manual.

Note 39-S05: (Converter/Library) Added the printvar sequence command

The sequence command printvar was added, which is used to debug output sequence variable values. When a sequence is played back with NITRO-Player or SoundPlayer, the sequence variable value can be displayed on the MCS server or the IS-NITRO-DEBUGGER output window. For more information, see the Sequence Data Manual.

Note 39-S06: (Converter) Eliminated case sensitivity in key notation

Changes were made so that descriptions can be made in either capital or small letters for cn4 format key notation. For example, notations such as Cn4 or CN4 are both possible.

Note 39-S07: (SoundPlayer) Improved the channel meter

Changes were made so that the channel meter that had been displayed on the upper screen with SoundPlayer is displayed on the lower screen to allow the display of detailed information.

Note 39-S08: (Library) Added the NNS_SndCaptureSetPostOutputEffectCallback function

Added the NNS_SndCaptureSetPostOutputEffectCallback function, which registers the callback functions called as output effect postprocessors.

Note 39-S09: (Library) Added a feature that limits the channels used by a sequence

Added a feature that can limit the channels that a sequence can use. Use the NNS_SndPlayerSetAllocatableChannel function when configuring each player. Use the NNS_SndPlayerSetTrackAllocatableChannel function when configuring each sequence playback. Specification for each track is also possible with this function. For more information, see the Sound System Manual or Function Reference.

Note 39-S10: (Library) Added the micThrough demo

Added the micThrough demo, which plays back microphone input in real time by using the low-level stream library NNS_SndStrm.

Note 39-S11: (Converter) Fixed a bug with SMF converter

There was a bug with an abnormal wait command being output if there were many MIDI events within one bar. This bug has been fixed.

Note 39-S12: (Library) Fixed bug where allocated channels were deallocated with NNS_SndArcStrmStopAll

There was a bug where allocated channels were deallocated if the NNS_SndArcStrmStopAll or NNS_SndStopSoundAll function was called after allocating a channel with the NNS_SndArcStrmAllocChannel function. This bug has been fixed.

Changes in Version 2004/12/06

Note 34-S01: (Converter/Library) Two-channel playback for monaural streams

An optional feature was added to allow the use of two channels for playing mono stream data with stereo player so that the volume becomes louder. This feature becomes available if the option is specified when registering stream data in the sound archive definition file. For more information, see the Sound Archive Manual.

Note 34-S02: (Library) Added the NNS_SndArcStrmStartEx2 function

The NNS_SndArcStrmStartEx2 and NNS_SndArcStrmPrepareEx2 functions were added. With these functions, two callback functions can be registered in addition to the existing stream playback function feature. One of the callback functions that can be registered can put multiple stream data sets together in real time and play them. This demo is in $NitroSystem/build/demos/snd/stream-2. The other callback function applies effects to a specific stream playback. This demo is in $NitroSystem/build/demos/snd/stream-3. For more information, see the Function Reference.

Note 34-S03: (Library) Made the sound driver thread–safe

Made all of the sound driver (SND) functions thread–safe.

Note 34-S04: (Library) Call to the NNS_SndArcStrmAllocChannel function for the stream player playing back

Made changes so that the function fails when the NNS_SndArcStrmAllocChannel function was called for the stream player that is playing.

Note 34-S05: (Documentation) Added a caution regarding output effects

Added a caution regarding the output effects in the Sound System Manual.

Note 34-S06: (Library) Fixed a bug that prevented the generation of the note after tieon

If the command is defined in the order of note command, tieon, and note command in the sequence data, the sound of the second note was not generated. This bug was fixed.

Changes in Version 2004/11/10

Note 31-S01: (Library) Added resource management functions

Added a function that manages resources to avoid conflict with the NITRO-System library when using the sound driver (SND) function directly. The new functions are listed below.

See the Reference Manual for function details.

Note 31-S02: (Library) Sample of stream playback without loop

When playing stream data without loops, the last several hundred samples did not play. We have fixed this bug so that all samples now play correctly.

Note 31-S03: (Library) Fixed a bug regarding switching the current sound archive during stream playback

The stream did not playback correctly when the current sound archive was switched with the NNS_SndArcSetCurrent function during stream play. This bug has been fixed.

Note 31-S04: (Library) Fixed a bug with the NNS_SndArcStrmSetChannelVolume function

There was a bug where the volume setting in the NNS_SndArcStrmSetChannelVolume function was not reflected correctly. This has been fixed.

Note 31-S05: (Converter) Fixed a bug with the sequence converter seqconv command analysis

With sequence data, such as cn4_r_if, when attaching random and conditional assignments for note command, an error occurred during conversion. This bug has been fixed.

Changes in Version 2004/10/12

Note 26-S01: (SoundPlayer) Added support for IS-AGB-MIDI

Real-time MIDI playback can be performed using IS-AGB-MIDI instead of IS-NITRO-UIC MIDI. For more information on real-time MIDI playback, see the Sound Designer Guide.

Note 26-S02: (Library) Added an output effect feature

Made it possible to apply Surround mode processing, Headphone mode processing, and Mono mode processing to the overall sound output using the NNS_SndCaptureStartOutputEffect function. The Surround mode makes the sound seem more spacious than the location of the speakers when sound is output from the speakers of the Nintendo DS system. The Headphone mode reduces the load on the ears when headphones are used. A sample demo has been added to the following location: $NitroSystem/build/demos/snd/outputEffect. See the Reference Manual for function details.

Note 26-S03: (Library) Automated the sleep process

It is no longer necessary to call the functions that must be called before and after the sleep process: NNS_SndBeginSleep, NNS_SndEndSleep, NNS_SndStrmBeginSleep, and NNS_SndStrmEndSleep. These processes are performed automatically in the library.

Note 26-S04: (Library) Added functions to specify stream player

Added functions for specifying the stream player number from the program: NNS_SndArcStrmStartEx and NNS_SndArcStrmPrepareEx.

Note 26-S05: (Library) Added functions to set monaural flags

Added the NNS_SndSetMonoFlag function for ignoring the pan setting of each channel and producing all sounds at a central location. The SND_SetMasterPan and SND_ResetMasterPan functions were added to the sound driver to allow for the implementation of the NNS_SndSetMonoFlag function.

Note 26-S06: (Converter) Added a player label specification

In the sound archive definition file, the player label that is defined by the @PLAYER section can be used instead of the player number that is specified by the @SEQ section. This applies only when the @PLAYER section is specified before the @SEQ section. You can also use the stream player label in the same way as is defined by the @STRM_PLAYER section of the @STRM section. When you want to use the player label in the @SEQ_TABLE section of a sequence archive, this can be done by getting the sound archive label (SBDL) file using #include in the same way as a bank label is used. Revised to use sound_data.sarc and mus/se.mus of the $NitroSystem/tools/nitro/SoundPlayer/data sample. Use these as references.

Note 26-S07: (Documentation) Added cautions regarding transition to Sleep Mode

Added cautions to the Sound Programmer Guide for use when changing to the Sleep mode.

Note 26-S08: (Documentation) Added explanation for not interrupting stream

Added an explanation to the Sound Programmer Guide for how to avoid interrupting stream play.

Note 26-S09: (Documentation) Added an introductory description of output effects

Added an introduction to the Overview about output effects.

Note 26-S10: (Library) Fixed an infinite loop bug during sequence fadeout

Fixed the infinite loop bug that occurs when a sequence is faded out using the following functions:

Note 26-S11: (Converter) Fixed a mistake in parsing the @PATH command

There were mistakes in the parsing of the @PATH command in the sound archive definition file and the bank definition file. When #include is used to include a file in another directory and if the @PATH command is used in the file in the include statement, the path was parsed as a relative path from the original directory. It was changed to parse as a relative path from the directory file that has the included file. Because of this fix, sound data that was converted successfully in previous conversions may have errors when they are converted. If this occurs, fix the @PATH specification so that it is a relative path from the directory where that file is.

Note 26-S12: (Library) Release channel process during sequence fadeout

Fixed the bug where the volume of the channel being released did not attenuate during the sequence fadeout.

Note 26-S13: (Converter) Distinction between upper- and lowercase in filenames

When registering bank definition files, if you specified multiple file names that only differ in case (upper or lower), each file was registered as separate data. This has been fixed so that the bank definition files are collected as a single set of data.

Note 26-S14: (Converter) Waveconv loop start location check

An error message is now output if you attempt to convert a loop start when the loop start position is too far back to play the loop because of a hardware limitation. The threshold information has been included in the Sound Tool Manual.

Changes in Version 2004/09/16

Note 21-S01: (Converter/Library) Extended the loop_start sequence command.

You can now assign a value of 0 as the number of times that the loop_start sequence command must loop. If a value of 0 is assigned, the loop will be infinite.

Note 21-S02: (Converter/Library) Loop specification at the SMF track level

If MIDI control changes 89 and 90 are used, loops can be made for individual tracks. For more information, see the Sequence Data Manual.

Note 21-S03: (Converter) SMF loop specification

To specify all tracks to loop in SMF, markers "[" and "]" were used, but "loop_start" and "loop_end" can also be used. (The actual functionality has not changed.)

Note 21-S04: (Converter) Extended SBDL files and changed names

Previously, only bank labels were defined in SBDL files. Now, labels that are defined in SARC sound archive definition files can also made to output. In addition, SBDL files, which were previously called bank list files, are now sound archive label files.

Note 21-S05: (Documentation) Standardized the naming of SADL files

SADL files, which were previously called sound label lists, sound label list files, and sound label files, are now called sound label files.

Note 21-S06: (Library) Added the NNS_SndCaptureCreateThread function

The NNS_SndCaptureCreateThread function, which starts up a capture thread, was added. When a capture thread is started, effect callback functions can be called from the capture thread rather than the IRQ handlers.

Note 21-S07: (Library) Added the NNS_SndCaptureStartSampling function

The NNS_SndCaptureStartSampling function, which samples audio output, was added. Sampled data can be obtained with a callback function.

Note 21-S08: (Library) Added the NNS_SndArcGetSeqArcSeqCount function

The NNS_SndArcGetSeqArcSeqCount function, which gets the number of sequences in a sequence archive, was added.

Note 21-S09: (Library) Fixed bug with NNS_SndPLayerMoveVolume function

Fixed bug that caused the volume to become 0 or remain unchanged when a value of 0 was specified as the change frame count in the NNS_SndPlayerMoveVolume function.

Note 21-S10: (Library) Uncontrollable sequence bug

Fixed the bug that caused the sequence that is being played to become unresponsive to control in extremely rare cases.

Note 21-S11: (SoundPlayer) Incorrect error message in SoundPlayer

The message “Too Large Data” appeared when a sequence that has an invalid bank number is played. This message has been changed to “Invalid Bank No.”

Note 21-S12: (Library) Mute off operation when mute is off

There was a problem that caused the sound being played to be stopped if Mute Off operation was performed when the sound was not muted, but this problem was fixed.

Note 21-S13: (Converter) Updated bank list file

Fixed bug that updated the bank list files (SBDL) that were generated by the sound archiver sndarc even when the sound data was not modified. Now, these files are updated only when necessary.

Note 21-S14: (Converter) Sequence converter seqconv error check

Previously, no error occurred when 32 was specified as the variable number that was used with variable commands. Now, an error will be registered.

Changes in Version 2004/09/02

Note 20-S01: (SoundPlayer) Real-time MIDI playback

It is now possible to use IS-NITRO-UIC MIDI for real-time MIDI playback. Because playback is done in real time using MIDI signals, the sequence data can be checked without converting the data. For more information, see the Sound Designer Guide.

For real-time MIDI playback, IS-NITRO-UIC MIDI is required.

Note 20-S02: (Converter) Bank list file output

Changes were made to output bank list files (SBDL) when the sound archive sndarc is executed. The bank label that is defined in the sound archive definition file (SARC) is output by using #define. By using #include in the sequence archive text file and loading this file, a bank label can be used to specify the bank in @SEQ_TABLE. Also see mus/se.mus in the $NitroSystem/tools/nitro/SoundPlayer/data sample because the same mechanism has been applied.

Note 20-S03: (Converter) Embedded SMF text commands

When text commands are embedded in SMF as markers, these text commands are output in the SMFT file when the file is converted. This allows you to use text commands in some parts of the file when using SMF. For more information, see the Sequence Data Manual.

Note 20-S04: (Converter) Multiple definitions of the same label in sequence archives

Changes were made so that an error does not occur if the index numbers are the same when the same label is defined in different archives.

Note 20-S05: (Library) Sleep recovery feature

Before and after the PM_GoSleepMode function that changes to the Sleep mode, call the NNS_SndBeginSleep and NNS_SndEndSleep functions to allow the system to return to the previous state when it awakes from the Sleep mode.

Note 20-S06: (Library) Clearing of the sound heap

The sound archive management region and the sound heap region that includes the stream buffer can be released safely. To make the regions usable again, it is necessary to call various setup functions such as NNS_SndArcSetup and NNS_SndArcStrmSetupPlayer.

Note 20-S07: (Library) Added the NNS_SndArcSetup function

Added the NNS_SndArcSetup function, which makes the sound archive that has released the sound archive management region usable again.

Note 20-S08: (Library) Added the NNS_SndArcStrmSetupPlayer function

Added the NNS_SndArcStrmSetupPlayer function that makes the stream player that released the stream buffer usable again.

Note 20-S09: (Library) Player heap deallocation bug

There was a bug that caused problems when releasing the region in the sound heap in which the player heap was allocated. This bug was fixed.

Note 20-S10: (Converter) Track output error of SMF converter smfconv

Fixed the bug that output only the data in the first track when using one MIDI channel on multiple tracks. Also fixed the bug that output the data in the track that was not being used.

Note 20-S11: (Converter) Drifting loop start point in SMF converter smfconv

Fixed the bug that caused the loop starting point to shift to the location of the note command when the loop start point was placed before the note command.

Note 20-S12: (Converter) Path parsing error for bank converter bankconv

Fixed the bug that caused an error when @WAVEARC path was @PATH “.” in the sound archive definition (SARC) file.

Note 20-S13: (Converter) #define multiple definition error

When the same symbol was defined twice with #define in text data files such as sound archive definition file and bank definition file, it became a multiple definition error even when the content was exactly the same. Changes were made so that it will be ignored if the contents are the same.

Changes in Version 2004/08/10

Note 16-S01: (General) Updated for stream playback

Stream playback is now possible. For details on features, see the Sound System Manual.

Note 16-S02: (Converter) Made changes to the sound archive definition file

The stream data section, which registers the stream data, and the stream player information section, which registers the stream player, were added. For more information, see the Sound Designer Guide and the Sound Archive Manual.

Note 16-S03: (SoundPlayer) Updated for stream playback

The SoundPlayer can now play stream data. For more information, see the Sound Designer Guide.

Note 16-S04: (Library) Added a sound archive stream library

The Sound Archive Stream library, which plays stream data, was added. This is a group of functions that start with NNS_SndArcStrm. For more information, see the Sound Programmer Guide and the Reference Manual.

Note 16-S05: (Library) Added a stream library

The Stream library, which is a lower-level library than the Sound Archive Stream library, was added. This is a group of functions that start with NNS_SndStrm. For more information, see the Reference Manual.

Note 16-S06: (Library) Added the NNS_SndStopSoundAll function

The NNS_SndStopSoundAll function, which stops all sounds, was added. Before changing into sleep mode or turning off power to the sound circuitry, make sure to stop all sounds with this function.

Note 16-S07: (Library) Added the NNS_SndHeapDestroy function

The NNS_SndHeapDestroy function, which destroys the sound heap, was added.

Note 16-S08: (Converter) Changed the name of SMF converter smfconv output label

smfconv now adds the SMF filename to the beginning of the labels used in the SMFT file. For example, the file sample.smft, which results from converting sample.mid, previously contained the label Track_0. Now it contains the label SMF_sample_Track_0.

Note 16-S09: (Converter) Sound Archiver sndarc abnormal termination

Previously, the sound archiver would terminate with an error when conversion was attempted using a sound archive definition file in which registration numbers of sequence data and so on were specified directly and some numbers contained no data. This bug is fixed.

Note 16-S10: (Converter) Bank converter bankconv abnormal error

There was a bug that caused an error during bank conversion due to a mistake in the path interpretation when the directory trees of bank files and waveform list files are in certain state. This bug was fixed.

Note 16-S11: (Converter) Irregular order of SMF converter smfconv meta event

If multiple meta-events occurred during the same tick, the output order would become irregular. This was corrected so that the output is now in the order stored in SMF.

Changes in Version 2004/07/20

Note 13-S01: (Converter/Library) Changed the binary data format

The binary format for the sound data has changed. Now, you must reconvert the sound data with ReMakeSound.bat. The bank data has grown slightly in size. If there is not enough memory, the data load may fail.

Note 13-S02: (SoundPlayer) Changed the name of the executable file

The name of the executable file has changed from SoundPlayer.bin to SoundPlayer.srl.

Note 13-S03: (General) Changed the default platform

Previously, the TEG executable file was created by default. Now, a TS executable file is created by default. To create a TEG executable file, set the NITRO_PLATFORM environment variable to TEG.

Note 13-S04: (SoundPlayer) Sequence type selection feature

Previously, no more than two sequences and two sequence archives could be played at the same time. Now, you can select between playing any combination of sequences and sequence archives. For example, you can play up to four sequences simultaneously. To select the sequence type, move the +Control Pad up and down while pressing the L Button.

Note 13-S05: (Library) Added a waveform playback library

Added a waveform playback library with function names that start with NNS_SndWaveOut. This waveform playback library allows you to directly play waveform data that is in memory, such as samples taken with the microphone. The demo program is in $NitroSystem/build/demos/snd/waveout.

Note 13-S06: (Library) Added an effect feature

Added effects functionality that uses sound capture. By processing effects using a callback function, you can create effects such as low-pass filter can be applied on all sounds. The demo program is in $NitroSystem/build/demos/snd/effect.

Note 13-S07: (Library) Changed the arguments of the NNS_SndCaptureStartReverb function

The type of the format argument of the NNS_SndCaptureStartReverb function was changed from SNDCaptureFormat to NNSSndCaptureFormat. For more information, see the Reference Manual.

Note 13-S08: (Library) Changed the NNSSndArcBankInfo structure

The waveArcNo member of the NNSSndArcBankInfo structure was changed from u16 to u16[4] type. The previous value is stored in waveArcNo[0].

Note 13-S09: (Library) Deleted functions

The following deprecated functions were deleted.

Note 13-S10: (Converter/Library) Added the ability to use multiple waveform archives with a single bank

You can now associate multiple waveform archives (a maximum of four) with a single bank. For more information, see the Bank Data Manual or the Sound Archive Manual.

Note 13-S11: (Converter) Option to delete sound archive symbol data

If you use the -b option with the sndarc sound archiver, the sound archive that is created will not include symbol data.

Note 13-S12: (Converter) Mistake in the value for the maximum number of simultaneous sequence playback

Fixed the problem that caused an error when the value for the maximum number of simultaneous sequence playback in the sound archive definition file was specified as 16.

Changes in Version 2004/06/10

Note 09-S01: (General) Migration from previous environment

Copy the MakeSound.bat and ReMakeSound.bat files in the $NitroSystem/tools/nitro/SoundPlayer/data directory to the directory with the sound_data.sarc file. Then double-click ReMakeSound.bat to execute. This creates sound_data.o. Link it to the program as before. Thereafter, it can be used as it was in previous versions. However, this version offers support for a file system. Sound data management using the file system is recommended.

Note 09-S02: (General) Updated for file system

Rather than linking to the program, sound data can now be stored in ROM and loaded.

Note 09-S03: (General) Changed the method of embedding sound data

The sound_data.o file is no longer linked. Instead, sound_data.sdat is stored in ROM. Sound designers must provide programmers with a sound_data.sdat file rather than a sound_data.o file. Note that the sound_data.sdat format has changed. Be sure to use a properly converted sound_data.sdat file.

The programmer must store the sound_data.sdat file in ROM. For more information, see the Sound Programmer Guide.

Note 09-S04: (General) Added memory management mechanism

Memory management is required for sound data. For more information, see the Sound System Manual, the Sound Designer Guide, and the Sound Programmer Guide.

Note 09-S05: (Library) Sound library initialization

The sound library initialization process has changed. For more information, see the Sound Programmer Guide.

Note 09-S06: (Library) Changed the ARM7 component

The name of the ARM7 component was changed from "prototype" to "ferret." For more information, see the Sound Programmer Guide.

Note 09-S07: (Converter) Changed the conversion command

Previously, a make command was used for conversion. Now MakeSound.bat is used. MakeSound.bat can be executed by double-clicking it from Windows Explorer. To reconvert, use ReMakeSound.bat instead of make rebuild.

Note 09-S08: (SoundPlayer) Label name display

Sequence label names can now be displayed on the SoundPlayer screen. When the X Button is pressed, the parameters are displayed as in the previous version.

Note 09-S09: (SoundPlayer) Added a manual load mode

A manual loading mode was added to allow you to confirm the data size. For more information, see the Sound Programming Guide.

Note 09-S10: (Converter/Library) Multiple sequence playback

A single player can now play multiple sequence files. The number of sequences that can be played simultaneously can be set individually for each player. (The default is 1.)

@PLAYER
3 : 3       ; Player 3 can play up to three sequences
4 : 2       ; Player 4 can play up to two

Note 09-S11: (Converter/Library) Changed the upper limit on the number of players

The number of players was increased from 16 to 32. However, the number of sequences that can be played simultaneously by the system is still 16.

Note 09-S12: (Converter/Library) Specification of the number of simultaneous sequence playbacks

The sound archive can specify the number of sequences that can be played simultaneously on each player. If no number is specified, the default value is 1. Also, the number can be set in the program using the NNS_SndPlayerSetPlayableSeqCount function.

Note 09-S13: (Library) Player priority during fadeout

Player priority was changed to 0 (lowest) during fadeout.

Note 09-S14: (Library) Adjusted release/delay

The release and decay of the envelope were slightly modified so that faster release or decay is possible. Be aware that noise can be generated due to the rapid release if the release value is set to 127. The relationship between the previous values and the new values is as follows.

Old Value     |   New Value   Correspondence
51 - 127       |  Correspond to 49-125, respectively.
47 - 50       |  Correspond to the same value minus 1 or 2, respectively.
0 - 46          | No change.

Note 09-S15: (Converter) Sound map file output

A sound map file is now saved when a sound archive is created. A sound map file is a text file that contains information about the data in the sound archive, such as the sound data size. The sound map file is in the same directory as the sound archive definition file, but has the .smap extension.

Note 09-S16: (Converter) Index number specification

Sequence and bank numbers in the sound archive were previously assigned in order. Now, you can assign them yourself. Also, you can now assign index numbers to sequence tables for sequence archives. The format is as follows.

* Specify only a label (the previous one)
SEQ_TITLE_BGM: SMF, "title.mid" , ...

* Specify both a label and a number
SEQ_TITLE_BGM = 2: SMF, "title.mid" , ...

* Specify only a number
2: SMF, "title.mid" , ...

Previously each instrument in the bank definition file was assigned a number, but now you can also assign labels using the syntax above. If you assign labels, you can use the program number list file, which is explained below.

Note 09-S17: (Converter) Program number list output

If you assign labels to the program numbers in the bank definition file, you can use the program number list file. This file allows you to replace program numbers with labels. An example is shown below.

#define PRG_PIANO
#define PRG_GUITAR 1
#define PRG_HARP

This file is found in the same directory as the bank definition file, but uses the extension .spdl. By including this file in the text sequence archive, labels can be used instead of program numbers.

#include "../bnk/se.spdl"

test:
    prg PRG_PIANO
    cn4 64, 48
    fin

Note 09-S18: (Converter/Library) Added expressions

MIDI control change 11 (“expression”) was converted to the volume2 command. The volume2 command functions just like the volume command, but generates its own individual effects.

Note 09-S19: (Converter) Added ability to use sweep_pitch from MIDI

Previously, MIDI control change 28 was used for the sweep_pitch command, but MIDI control change 29 was converted to the sweep_pitch command, with 24 times its previous value. Using this control change, the pitch can be changed by ±2 octaves.

Note 09-S20: (Converter) Changed the maximum values for the prg and mod_delay commands

The maximum value for the sequence commands prg and mod_delay was reduced from 65,535 to 32,767.

Note 09-S21: (Converter/Library) Added the random command

You can now specify random numbers in some sequence commands.

pitchbend_r -12, 12
pan_r 64 - 32, 64 + 32
Once the minimum and maximum values are specified, a random value is set within that range.
The commands that permit the use of random numbers are listed in the Sequence Data Manual.

Note 09-S22: (Converter/Library) Added the variable command

Variables can now be manipulated in a sequence. Using variables, you can easily create a sequence that rises in pitch with each iteration. For more information, see the Sequence Data Manual.

Note 09-S23: (Converter/Library) Added the control command

Using variables, you can now control whether or not a sequence command is executed. For more information, see the Sequence Data Manual.

Note 09-S24: (Library) Deleted the NNS_SndArcPlayerInit function

The NNS_SndArcPlayerInit function will be deleted. See the Function Reference for functions that replace it. This function remains for now, but will be completely deleted in the next release.

Note 09-S25: (Library) Deleted the NNS_SndArcPlayerStartSeqWithPlayerNo function

The NNS_SndArcPlayerStartSeqEx and NNS_SndArcPlayerStartSeqArcEx functions were added. Because these functions can replace the NNS_SndArcPlayerStartSeqWithPlayerNo and NNS_SndArcPlayerStartSeqArcWithPlayerNo functions, the latter two functions will be deleted. These functions remain for now, but will be completely deleted in the next release.

Note 09-S26: (Library) Changed function names

The names of the following functions were changed. The old function names remain, but they will be completely deleted in the next release.

Deleted Function Names                  New Function Names
NNS_SndHandleReleasePlayer              NNS_SndHandleReleaseSeq
NNS_SndPlayerStopSeqByNumber            NNS_SndPlayerStopSeqByPlayerNo
NNS_SndPlayerPauseSeqByNumber           NNS_SndPlayerPauseSeqByPlayerNo
NNS_SndPlayerCountPlayingSeqByNumber    NNS_SndPlayerCountPlayingSeqByPlayerNo

Note 09-S27: (Library) Added sequence variable functions

The NNS_SndPlayerReadVariable and NNS_SndPlayerWriteVariable functions can be used to read the variables set by the sequence data or to write to the variable in the sequence data. With these functions, you can view the status of a sequence being played back and alter its processing flow.

Note 09-S28: (Library) Added functions for getting the number of ticks

With the NNS_SndPlayerGetTick function, you can view the tick count of the sequence being played.

Note 09-S29: (Library) Added other functions

Many other functions were added. For more information, see the Function Reference.

Note 09-S30: (Library) Fixed bug where sound priority setting was not applied

There was a bug that caused the voice priority setting in the sound data to be reflected incorrectly. This was fixed.

Note 09-S31: (Library) Fixed a bug related to assert of the NNS_SndPlayerSetTrackPan function

Previously, an assert was generated when the pan argument was from -64 to 63. An assert is now generated when the value is from -128 to 127, as the specification requires.

Note 09-S32: (Library) Fixed a bug related to release when using the NNS_SndPlayerStopSeq function

A bug caused sequences with long release values to stop abruptly when halted from the application. This was fixed.


CONFIDENTIAL