SoundSystem::SetBiquadFilterCallbacksnd_WaveSound.hFxDelay memory.cinl file containing invalid instrument included in text sequenceSoundSystem::SetSrcType function.function argument of SoundActor::ForEachSoundA bug was fixed where execution would stop on an assert when playing a stream sound if a buffer larger than that obtained using the SoundArchivePlayer::GetRequiredStreamBufferSize function was passed to SoundArchivePlayer::Initialize.
StreamBuffer can be set to a size up to four times the size obtained using the SoundArchivePlayer::GetRequiredStreamBufferSize function.
The possibility of stream sounds skipping can be alleviated by increasing the size of the stream buffer.
In addition, the size of memory obtained using the SoundArchivePlayer::GetRequiredMemSize function has been slightly increased compared to NW4C V1.3.2. (The amount of increase depends on the number of stream channels configured using SoundMaker.)
If a sound stream was playing in the system core, or if it was playing in the application core but the priority was sound thread > sound data loading thread, then on rare occasions the processing would stop on the following assertion when the stream sound was stopped:
snd_Task.cpp:34 Panic:NW:Failed assertion m_Status != STATUS_APPEND && m_Status != STATUS_EXECUTE
That problem has been fixed.
SoundSystem::SetBiquadFilterCallbackAdded mention that in the functions listed below, the callback functions that are set are called from the sound thread. Also added mention about synchronous processing.
SoundSystem::SetBiquadFilterCallback
SoundArchivePlayer::SetSequenceUserprocCallback
From NW4C-1.3.0 there were many problems with the reference manual to the SoundDataManager class, including a lack of functions. Those problems have been corrected.
Up to this version, if a sound or bank that references a wave archive with separate loading turned on was registered in a group whose output format is "link," all wave data in the corresponding wave archive would be loaded regardless of the fact that separate load was turned on. This bug was fixed.
For example, consider loading GROUP_SE in a form such as given below:
Up to this version, among WARC_COMMON, waves related to WSDSET_SE were loaded, but starting from this version only waves related to BANK_SE are loaded.
You must re-convert sound archives to use this feature.
Up to this version, only sequence data could be loaded in to the player heap, but features have been added to allow the loading of wave sound data, bank data, and wave archive data as well.
The demos/snd/playerHeap demo and demo documentation were revised accordingly. For details, click here.
The warning message used when an instrument has been disabled during sequence sound playback, or when no wave form has been assigned to the sample map region has been changed.
Examples of the warning message before and after modification can be seen below.
The HioSoundArchive class used to implement HioSoundPlayer has been publicly disclosed. For more details, see the following items.
Although a 3D filter could be set for each sound when using soundmaker, functions have been added for setting and getting the filter type being applied when this column is ON.
For more details, see the following items.
A bug was fixed where execution would stop on an assert if an attempt was made to play a sound by loading its group when a wave archive for which separate loading is on has been loaded into that group and the group's output format is "embedded."
Re-conversion of the sound archive is required when using this fix.
A bug has been fixed where parameters would not convert even if the FxReverb::SetParam function was called after enabling FxReverb using SoundSystem::AppendEffect.
A feature has been added for allowing playback of a given instrument by pressing the space key on the parameter panel.
The following 3D parameters can now be set.
A bug was fixed where the sustain value would change to match the same value as the release if the level at which instrument envelopes are applied is changed from the instrument level to the region level.
A bug was fixed where SoundMaker would crash if a "redo" operation was performed after having performed "Copy cell" on checkbox cells other than Front bypass and then pasting to front bypass cells two or more times.
There was a bug where the same device could be selected for both "MIDI keyboard input" and "MIDI sequencer input" under Options > MIDI. This was changed so that any device selected for "MIDI keyboard input" cannot be selected for "MIDI sequencer input."
When using "Copy cell" and "Paste" on sequence sound banks, adding the copied content resulted in a multibank where original status could not be restored using "undo." This bug was fixed.
Although CC (control change) 93 would be converted by the fxsend_c command when converting SMF files using SoundMaker, this has been changed so that this is ignored and no conversion is performed.
A bug would occur where no conversion error would result even if the fxsend_c, fxsend_c_r, or fxsend_c_v commands were written to a text sequence, but this has been fixed so that an error now results.
Descriptions of the SoundSystem::SoundThreadScopedLock class constructor and destructor have been added.
For more details, see the function reference manual for this class.
The SoundDataManager::SetFileAddress function is used in the demos/snd/externalFiledemo, but up until now there was no description in the Reference Manual. A description of the function has been added.
Added the fact that soundThreadCoreNo is ignored if autoCreateSoundThread is set to false in the SoundSystem::SoundSystemParam data structure and that sound threads created by the user must run in the application core.
Added the following note to the HioSoundPlayer page of the SoundMaker User's Guide regarding the execution of HioSoundPlayer.
setup.wsf of NW4C has been executed.)
The following information about SoundPlayer has been added to the SoundMaker User's Guide.
nw::snd::SoundHeap::Create function) must be 12MB
Corrected mistakes in the explanation about voices allocated independently by the nn::snd::AllocVoice function in Section 7.1.2 Synchronous Processing of the Sound Programmer's Guide.
The following are the main points of revision.
Descriptions that might lead to misunderstanidng were revised in the descriptions of the Automatic (Shared) and Automatic (Individual) settings used with wave sound sets and bank wave archives in the SoundMaker User's Guide.
Specifically, because the term "owned" was used, the user might take it to mean that data is shared at the wave level, so the description was changed to read that they are "collected together".
A description of behavior was added to the section on groups in the SoundMaker User's Guide, regarding the relationship between the output format of a group and the Automatic (Shared) and Automatic (Individual) settings for wave sound sets and bank waveform archives.
The following items already estabished as known issues with the sound development environment on the NintendoWare for CTR Windows 7 (64-bit) operational check information ($NW4C_ROOT\documents\ReleaseNotes\Windows7.html) page have been moved to known issues with the NintendoWare for CTR overall sound development environment due to problems even with environments other than Windows 7.
(SoundMaker) The Browse dialog for the Restore Project folder only shows expanded tree the first time (SoundMaker) Checked selections are cleared from the HTML Sound List's Output List (SoundMaker) HTML Sound List is output with different settings from named settings (SoundMaker) When a numerically named item is created without a prefix, it displays with an underscore at the start of the name (SoundMaker) Application error occurs when deleting item not in focus due to sort
n addition, the following items were deleted because the bugs do not occur in the current version:
(SoundMaker) Application error occurs when pasting selected item (SoundMaker) Application error occurs on copy of Playback Button or Playback Time cells
There was a bug where subsequent operations would not be accepted if an attempt was made to play a stream sound using HioSoundPlayer. This bug no longer appears since revision was made to the SDK following CTR_SDK_0.14.
There was a bug that caused failure to load data and inability to play sounds. It occurred under the condition described in (A) for banks and wave sounds when they were only registered to groups that met the condition described in (B). The problem has been fixed.
You must re-convert sound archives in order to apply this bug fix.
There was a bug where nn::fs would be accessed regardless of whether the system was sleeping if sleep was entered while playing a stream sound or loading data into the player heap. This has been fixed by making fs inaccessible by calling the following API functions.
For details, see Chapter 9, Processing During Sleep in the Sound Programmer's Guide.
A bug has been fixed where, If a sound thread is run in the system core and operations are perfomed on an instance of nn::snd::Voice class obtained directly, abnormal playback by nn::snd::Voice would occassionally be made using the wrong pitch.
In relation to this, notes given in Section 7.1.2 Synchronous Processing in Chapter 7 Notes on in the Sound Programmer's Guide have been updated.
Fixed a bug that on rare occasions caused execution to stop within a Sound library function when a sound thread was running in the system core.
When any of the following functions were called, there was a possibility of the process falling into an infinite loop. That problem has been corrected.
SoundSystem::SetMasterVolume function (only if called when fadeTimes = 0 )
SoundSystem::SetSrcType function.
SoundSystem::SetOutputMode function
snd_WaveSound.h.The include guard of nw/snd/snd_WaveSound.h was wrong, so it was corrected.
SoundArchivePlayer::GetSoundPlayer functionFor the SoundArchivePlayer::GetSoundPlayer function with the const char*argument, the process stopped on assert no matter what label string was passed. That problem has been corrected.
When the player's label string is passed normally a SoundPlayer instance can be acquired. If the passed label string does not match any player, the process stops on assert.
The master volume was not applied to sounds that started playing at their true volume. The problem was corrected.
FxDelay memoryExecution would stop on an assert when the FxDelay destructor was called after a call to FxDelay::ReleaseWorkBuffer. That problem has been fixed.
Execution would stop on an exception when the attempt was made to play a stereo waveform with the lowest channel priority during the playback of up to the maximum number of waveforms. The problem has been fixed.
There where sound drop-outs when a sound thread was running in the system core. That problem has been corrected.
.cinl file containing invalid instrument included in text sequenceIf an invalid instrument was defined in C++ comment syntax in a .cinl file, any text sequence that included this file would invariably fail to be converted. That problem has been corrected.
Henceforth from this version, definitions of invalid instruments are no longer exported to the .cinl file.
Added mention that when operating in the system core, nn::snd::VOICE_PRIORITY_NODROP must be specified when independently calling the nn::snd::AllocVoicefunction.
The following additions, deletions and changed were made:
The interpolation type can now be selected in instrument lists and percussion lists on SoundMaker. For details, read about interpolation types in the Instrument List or Percussion List section of the Bank Tab part of the Practical Guide of the SoundMaker User's manual.
In previous versions, the interpolation type as set using the nw::snd::SoundSystem::SetSrcType function only affected stream sounds and wave sounds. With the addition of the feature for selecting the interpolation type for instruments, sequence sounds are now also affected.
The demos/snd/effect demo used to only include an implementation of nw::snd::FxReverb, but examples of the following implementations have been added.
Features have been added so that when a sound thread is running in the system core associated effects can be processed in the system core by registering nn::snd::FxReverb and nn::snd::FxDelay using the SoundSystem::AppendEffect function.
For details, see the following API entries in the function reference manual.
SoundSystem Class
The Sound3DManager::Finalize function for destroying instances of Sound3DManager has been added. For details, see the reference manual entry for this function.
Support has been added for biquad filters that can work with SoundHandle and sequence data. For details, see the documents, demos, and samples listed below.
Biquad filters can also be easily configured using SoundPlayer.
Support has been added for low-pass filters (LPF) that can work with SoundHandle and sequence data. For details, see the documents, demos, and samples listed below.
Biquad filters can also be easily configured using SoundPlayer.
In past versions, use of the default values for FxDelay::Param resulted only in a one-shot delay. The default values have therefore been changed to values more easily used as-is for delay purposes.
An API for synchronization required when independently getting and using nn::snd::Voice has been added.
For further details, refer to the following function reference manual entries and Chapter 8, Running in the System Core, in the Sound Programmer's Guide.
Synchronization processing with sound threads has been added to the following demos that independently obtain and use nn::snd::Voice.
Execution used to stop on an assert if there was an attempt to play a region where no waveform was assigned for an instrument being used as a sequence sound. The assert has been removed and playback no longer stops. (Debug and Development versions only. Release versions already ignored the assert.)
The fact that no sound is produced when an attempt is made to play a note in a region where no waveform is assigned has been added to Chapter 8, Troubleshooting, in the Sound System Manual.
A bug was fixed where tempo was slightly off and/or could not be delayed more than a fixed amount when playing sequence sounds whose time base was 480 with a tempo of 78 or less.
A bug was fixed where execution would fall into an infinite loop inside the sound library when a sound thread was operating at a particular timing during stream playback.
A bug was fixed where execution would occasionally stop on an exception when calling the nw::snd::SoundSystem::GetVoiceCount function.
A bug was fixed where volume was not being calculated correctly if pan-related parameters (described later) were left set to default values.
The term "pan-related parameters" refers to the following.
A checkbox was added for Output Labels by Item to the Convert tab of the Project Settings dialog. When this check box is selected, ID headers are divided into files by type for export.
Added a check box to Display the full file path in the General tab of the Options dialog. When this check box is selected, the full path is given for the project name in the title bar.
When sequence sounds with a time base of 480 and a tempo of 78 or slower were previewed on the PC, the sounds would not play. That problem has been corrected.
This symptom reoccurred from version NW4C-1.1.0.
An exception occurred when the percussion tab was opened after deleting a key region. That problem has been fixed.
Changed the specification so that now, when a waveform file has been set to loop but the same frame has been specified for both the starting and stopping points, it is handled as if the waveform file has been set to not loop.
When instruments are disabled, the pertinent instruments are not included in the cinl file (the instrument label file) at conversion time.
This was done so that conversion errors occur in sequences that reference the labels of disabled instruments.
Noise occurred when extremely short, silent waveforms were played. That problem was fixed.
When the compression format for instruments was changed in SoundMaker, that change was not reflected in the result of the converter. That problem was fixed.
If a Sample Map was split in two and then one of the assigned waveform files was deleted, sound would play even when the deleted region was referenced when the note-on command was performed on the sequence sound.
This was due to a converter bug that resulted in waveform allocation remaining behind in the deleted region if the Sample Map had an empty region when it was split in two. The problem has now been corrected.
With this correction, regions with no waveform allocation do not make sounds when note-on is performed.
An error occurred with the sound project converter (NW4C_SoundProjectConverter.exe) when options were written first. That problem has been corrected.
Details descriptions of FxRever class and FxDelay class parameters have been added.
For more details, see the following function reference manual entries.
Text was added to the manual's Troubleshooting chapter to explain what to do when characters no longer display in lists while using SoundMaker.
The fact that this function does not work correctly if data from multiple sound archives has been loaded into the sound heap has been added to the function reference manual.
A feature has been added to the nn::snd::SetClippingMode function to select the clipping mode. This can be selected from the OutputMode screen.
The feature for importing cia files was deleted from CTR_SDK-0.14.0 and later versions of DevMenu, so the feature for creating cia files has been deleted from SoundPlayer.
Under SoundPlayer, negative values could be set for the effect parameters listed below. That has been corrected.
A bug was fixed where destroying an instance of SoundHeap without calling SoundHeap::Create causes execution to stop on an assert.
A bug was fixed where execution would stop on an assert if the SoundSystem::Finalize was called when a sound thread was running in the system core.
Even if a parameter in the EnvR column was changed in the SoundMaker Wave Sound list, there were problems where:
These problems have been fixed.
A feature for running sound threads in the system core has been added. For more details, see the following documentation.
An API member function has been added for converting the serial numbers (indices) of sounds, banks, or players to an ID for each item.
For more details, see the following function reference entries.
A delay (FxDelay) has been added as a type of effect. For more details, see the function reference manual.
Although there was no effect up to this version even if the loadBlockSize argument was specified using the SoundDataManager::LoadData function, this is now supported and split loading is now possible.
The span sequence command now functions effectively in the runtime library.
The reverb parameter can now be changed using FxReverb::SetParam even if SoundSystem::AppendEffect has already been called. For more details, see the function reference manual.
The following spelling mistake has been fixed:
If the MemorySoundArchive::GetItemLabel function was called without a string table included in the sound archive, execution would stop on an exception. This has been changed so that NULL is returned.
In conjunction, the statement "returns an empty string" in the SoundArchive::GetItemLabel function reference, has been changed to "returns NULL'.
Fixed a bug where execution of effect processing would stop on an exception if the SoundSystem::AppendEffect function or SoundSystem::ClearEffect function was called at a certain time.
Added Unspecified as an item to the MIDI Keyboard Input combo box in the Tools > Options > MIDI tab.
Up until now, when only one corresponding MIDI device was connected it would invariably be selected as MIDI Keyboard Input. The new item enables this device to be deselected.
It is now possible to import in units of NTR bank files.
When an HTML sound list contained an empty sound set, the sound set filters did not display correctly. That problem has been fixed.
When the directory specified for Stream file output destination path was two or more levels deep, the playback of stream sounds would stop on an exception error when played on a SoundPlayer created using SoundPlayer creation. That problem has been fixed.
When Open File was performed using the All Files filter, an exception error would occur if any file other than a cbnk file was specified. That problem has been fixed.
If conversion was conducted without setting the NW4C_ROOT environment variable an exception would occur after conversion. That problem has been fixed.
The fact that effects are processed by the CPU was added to the reference manual entries for the following classes.
An explanation of the map files generated during conversion has been added to the "Created Files" page of the SoundMaker User's Guide.
The map file provides information about such things as ROM size and bank capacity.
Documentation for demos located under $NW4C_ROOT/demo/snd has been added to the function reference manual.
Revisions were made in this manual to correct shortcomings in the explanation about sharing in the description of wave archives in the Wave Sound and Bank items in the Sound Set Tab of the Practical Guide of the SoundMaker User's Manual.
When a UIC-MIDI device is directly connected to a TS Board, a PARTNER-CTR Debugger (white box), or a test unit, SoundPlayer can now receive the MIDI signals for Play Preview.
When a sound archive that did not contain a string table was loaded to SoundPlayer/HioSoundPlayer, the process would halt when the application was launching or when the sound archive was reloading. That problem has been fixed.
If the sound archive does not contain a string table, instead of item names (e.g., SE_YOSHI, etc.) the string "..." will display.
The sequence commands frontbypass_on and frontbypass_off have been added. For details, see the Sequence Data Manual.
Also, changed the jump_seq sequence of SampleData/Sound/Projects/simple/seg/se.cseq (sequence sound SEQ_JUMP) to that which uses the corresponding command.
The SoundHandle::SetSurroundPan() function for setting the surround pan has been added.
For more details, see the function reference manual.
The StreamSoundHandle::SetTrackSurroundPan function for setting the surround pan of stream tracks has been added.
For more details, see the function reference manual.
A bug has been fixed where an insufficiency of sequence tracks would arise, because sequence tracks were not being freed if after the sequence sound was started it was stopped in the same frame or if it was forcibly stopped by playback of another sound.
A bug has been fixed where all sounds were being put into front bypass mode whenever a binary sound archive file (*.bcsar) created under a version of SoundMaker prior to NW4C-1.0.0 was loaded by the NW4C-1.0.0 sound runtime library.
A bug has been fixed where the pitch would even for sounds other than Sound3DActor when Sound3DActor::SetPitch was called when using 3D sound.
A bug was fixed where where sound would drop out during playback when 9 or more sound archives were registered.
A bug was fixed where calling the SoundSystem::SetSrcType function had no effect.
Specifications were changed so that preview playback is possible for sounds in a read-only sound set.
A bug was fixed where NITRO-SoundMaker project import on the desktop would fail.
Fixed a bug where scales were not being displayed in the percussion list.
A bug was fixed where loop noise would occur when during ADPCM encoding with the loop start frame set to 0.
Wave data must be re-converted.
A bug was fixed where noise would occur during stream table looping.
Wave data must be re-converted.
Although the sequence data manual implied that both the loop command and call command could each be nested up to three layers deep, this was clarified to mean "up to three layers deep in total."
The description of volume that can be set in each SoundMaker list has been revised. If sound data volume is set to 127, playback is made at an equal volume (x1) as source data.
For more details, see the chapter Operating Sound Parameter Controls in the Sound System Manual.
Made it so that surround pan can also be set under SoundPlayer like volume, pitch and pan.
Although sound IDs used to be reset when a sound archive was reloaded with HioSoundPlayer, this has been changed to that sound IDs are saved without reset.
However, if the specified sound ID is larger than the number of sounds stored in a sound archive after reloading, they are reset just as in the past.
A bug was fixed where parameters such as volume and pitch were not being applied at the start of sound playback.
Added the variable command bank_select_v and random command bank_select_r to the sequence command bank_select.
For details, see the Sequence Data Manual.
bank_select_seq of SampleData\Sound\Projects\simple\seq\se.cseq has also been slightly changed, so refer to it as well.
When a stream sound was played, sometimes noise would be generated at the end of data and when looping. That has been fixed.
The library and converted have been revised. Data must be reconverted to reflect these changes.
Up to this version, when calling functions that play/stop sounds or that change parameters, results were reflected immediately. However, to increase processing efficiency inside the sound library, specifications have changed so that requests for sounds are first buffered and then issued when the nw::snd::SoundArchivePlayer::Update function is called. Actual processing is subsequently performed in separate thread.
Note that the effect of this is that, after a function for changing sound parameters has been called, modified values sometimes cannot be obtained even when getting the same parameter using a function that obtains information using sound handles.
The API function FxReverb has been added and specifications have changed.
The following support has been added to increase the speed of FxReverb.
For more details, see the function reference manual.
nn::snd::SetSoundOutputMode is now called internally when nn::snd::SetSoundOutputMode is called.
For more details, see SoundSystem::SetOutputMode in the function reference manual.
A bug was fixed where noise would occur when FxReverb was used.
A bug has been fixed where execution would stop on an assert when the FxReverb destructor was called after a call to FxReverb::ReleaseWorkBuffer.
A bug has been fixed where execution would stop on an assert if the note gn9 was played by particular instruments.
The following bugs related to stream sound playback have been fixed.
A bug was fixed where writing sequence variables would fail when using the following functions.
The following columns were added to Wave Sound List for specifying the send volume for each bus.
For further details, refer to the SoundMaker User's Guide.
Frontbypass mode is now supported by the various sounds (stream sounds, wave sounds and sequence sounds).
This can be set in the various SoundMaker lists.
For details, see the SoundMaker User's Guide or sounds located in the SampleData/Sound/Projects/simple folder.
Creation of SoundPlayer would fail in some cases when some place other than output was set as the output destination for the Sound Archive. The bug has been fixed.
The following bugs relating to list operations were fixed.
You can try out effects on SoundPlayer. For further details, refer to the SoundPlayer chapter in the SoundMaker User's Guide.
A bug made it impossible to import SoundPlayer-TS.cia. That has been fixed
A bug has been fixed where execution would fail at time of data conversion when making parallel builds of the sample demo ($NW4C_ROOT/demos/snd).
A bug has been fixed where noise was being introduced during looping when playing the sine waveform (SampleData/Sound/Projects/simple/aif/sin440.aiff) included in sample data.
Fixed a bug where parameters listed under the Velocity Region that can be set on the Percussion List or Parameter Panel were not being reflected correctly in binary sound archive files (bcsar) (or more accurately speaking, in binary bank files (bcbnk)).
The following bugs were fixed with the waveform converter.
Fixed a bug where sounds were broken off or did not play during PC emulation playback or playback on actual hardware using SoundPlayer when converting an 8-bit PCM .wav or .aiff file.
A bug was fixed where a dialog box not containing any warning message was being displayed when converting a project that accesses a non-existent bank (.bcnk) file.
There was a bug when a non-existent Starting Playback Position was specified during sequence sound conversion that made it hard to know the label and Starting Playback Position at which the error occurred.
This bug has been fixed so the user can know the Label and Starting Playback Position.
An example is shown below.
The facts that a text string table must already be included in the sound archive file when calling the above functions and that RomSoundArchive::LoadLabelStringData must be called beforehand when utilizing RomSoundArchive have been added to the descriptions of these functions.
For more details, see the function reference manual.
Entries for the following API functions, already available for use, have been added to the function reference manual.
The descriptions of item names that can be set in each SoundMaker list have been revised. For further details, refer to the SoundMaker User's Guide.
The SoundSystem::SetSoundFrameUserCallback function has been added.
Up to this version, use of the nw::snd::internal API was required if an attempt was made to add a process to be called during a sound thread cycle. Instead, a callback function set using this function is now called during the sound thread cycle.
For more details, see the function reference manual and demo samples for the following functions.
The member bool autoCreateSoundThread has been added to the SoundSystem::SoundSystemParam structure passed as an argument to the SoundSystem::Initialize function which is used to initialize the nw::snd library. Setting autoCreateSoundThread to false initializes the library without creating or starting a sound thread within the nw::snd library.
Up to this version, the nn::snd::WaitForDspSync and nn::snd::SendParameterToDsp functions of CTR_SDK were hidden in the nw::snd library, but now this setting can be used when you want to call these functions independently.
For more details, see the function reference manual and demo samples for the following functions.
An API function for changing the bank set for each track of a sequence sound has been added. For more details, see the reference manual entry for the following function.
Reverb has been added as an effect. For more details, see the function reference manual and demo samples for the following functions.
Support has been added for calculating mix values according to the output mode. For more details, see the reference manual entry for the following function.
SoundSystem::SetOutputMode function
A bug has been fixed where execution would stop if an attempt was made to create 7 or more instances of SoundArchivePlayer.
A bug has been fixed where, after a user call to the Stop() function of the sound library, library operations would become unstable and applications would stop upon subsequent sound processing.
This bug would often occur when starting and stopping voices frequently or when playing and stopping sounds frequently.
A bug where the pan setting for a stream sound was not being reflected has been fixed. However, a bug where the pan mode is always processed as dual pan remains.
A bug has been fixed where, during playback of looped stream sounds, the right part of the stream sound was not being played before and after the loop.
The TEG2 version SoundPlayer Create menu has been removed due to termination of CTR-TEG2 support.
A bug has been fixed where execution would freeze if interactive input was requested by a command being executed using Command before conversion or Command after conversion. Such commands can be canceled by pressing the Cancel button.
Note that interactive input is not supported when using Command before conversion or Command after conversion.
Fixed a bug where waveform shapes were unstable in the loop end region when using ADPCM to convert looped waveforms.
A precaution on using the nw::snd and nn::snd libraries simultaneously has been added to the Sound Programmer's Guide.
Also, two related sample demos have been added.
The bank_select command has been added to the sequence data manual. This is equivalent to CC0 when using SMF control codes.
For details, see the Sequence Data Manual.
The following additions have been made to the SoundPlayer lower screen display.
SoundPlayer now allows the output mode to be changed using the Y button and the surround depth value to be changed using the L/R buttons.
HioSoundPlayer.cci has been added. HioSoundPlayer.cci can reload Sound Archives via Host IO. HioSoundPlayer.cci can be found in $NW4C_ROOT/tools/SoundPlayer/.
For further details, refer to the SoundMaker User's Guide.
A bug has been fixed where execution would stop on an assert if the SoundSystem::Initialize function was called again after the SoundSystem::Finalize function.
If the starting playback position was changed for a text sequence sound that caused a conversion error, an error would occur. This bug has been fixed.
(Overall) Moved the SoundMaker sample data to $NW4C_ROOT/SampleData/Sound/Projects.
The OMakefile and vcproj files for the demo were adjusted to accommodate this change.
The following function has been added for setting and getting the number of voices used in a sound stream.
The following functions included in the NW4C-0.7.0 snapshot have been removed or had their name changed.
For more details, see the function reference manual.
The function SoundDataManager::IsDataLoaded, for checking if a specified item has been loaded, was added.
For more details, see the function reference manual.
Up to this version, the most recent sound thread process load could be obtained using the SoundSystem::GetSoundThreadProcessTick function, but this function has been abolished because it was hard to use and the following functions were added.
For more information, see the Function Reference Manual.
Instances of SoundActor and Sound3DActor can now be reused. First call Finalize and then re-call Initialize in order to reuse.
A feature was added to the SoundMaker menus to create a SoundPlayer executable file (SoundPlayer.cci). From the Preview menu, click TS SoundPlayer creation or TEG2 SoundPlayer creation.
A column was added to the following lists to display the duration of waveform data. A column that displays the ticks was also added to some of the lists.
For further details, refer to the SoundMaker User's Guide.
A description has been added regarding the fact that, when waveform data (a waveform archive) is included in a sound archive initialized using the MemorySoundArchive function, that sound archive must be loaded in device memory.
The following two points have been added to the function reference manual entry for the SoundHandle class.
function argument of SoundActor::ForEachSoundA bug has been fixed where a copy of the function object was being generated internally when a function object was passed in the function argument.
A debug text string was being output when separately loading waveform archives, but this has been fixed so that it is no longer displayed.
The following bugs related to stream sound playback have been fixed.
A bug has been fixed where control flow would not return if stream sound playback was stopped immediately after having starting.
Specifically, control flow would not return in the case of code such as the following.
m_ArchivePlayer.StartSound( &m_Handle, STRM_MARIOKART ); m_Handle.Stop( 0 ); // Control flow wouldn't return from this function
A bug has been fixed where execution would stop on an exception during stream sound playback if memory not cleared to zero was passed to the SoundSystem::Initialize.
A bug has been fixed with member variable assignment inside the SoundActor::Finalize function.
A bug has been fixed where execution would stop on an assert like the following when playing back sounds.
Failed assertion at snd_OperateChannel.cpp:873 v >= 0
If SoundMaker was started by specifying a relative path to a project file as a startup parameter, the Project Settings file would not be saved properly, which caused an error when attempting to exit the program. This bug has been fixed.
The snapshot version of NW4C-0.7.0 had a bug that prevented SoundPlayer from being created if the absolute path of the project (.cspj) file contained a space. This bug has been fixed.
A bug has been fixed where intermediate files were prevented from being input and output correctly after editing and saving actor players, user data, or EnvelopeRelease.
If the demos were built in parallel, the build system would attempt to convert the same project file more than once, which caused a conversion error. This bug has been fixed.
Fixed a bug that caused a conversion error if an instrument's program number was set to a value of 255 or higher.
The correct maximum value is 32,767.
The following bugs with the Sound Project converter have been fixed.
Fixed a bug that caused the sound IDs within CSID files not to be output correctly during conversion of projects that contained multiple sound sets.
The following points have been changed with the support of CTR_SDK-0.9.1.
The main reason for changes is improved performance.
When the number of instrument region divisions is a multiple of 4, playing a sequence sound when playing an instrument would cause execution to stop on a failed assertion. This bug has been fixed.
With the new CTR-TS board support in SoundPlayer, the following *.wsf files were added for creating both TS and TEG2 versions of CCI files.
We removed the MakeSoundPlayer.wsf file formerly included in the package.
SoundActor is now supported. Please refer to the following documentation.
Sound Actor, in the SoundProgrammer's Guide.
Support for 3D sounds has been added. Please refer to the following documentation.
3D Sound, in the Sound System manual.
Execution now either stops on a failed assertion or false is returned if the stream buffer passed to nw::snd::SoundArchivePlayer::Initialize() is other than device memory. (Behavior differs depending on the build target).
A SoundPlayer tool that can be used with CTR-TEG2 has been added. See the $NW4C_ROOT/tools/SoundPlayer/Readme.txt file for details on use.
With the addition of this SoundPlayer tool, we have removed the old $NW4C_ROOT/demos/snd/SoundPlayer version.
Made actor players and 3D sound parameters configurable in SoundMaker.
This entailed a version update to the (Project Name).cspj.settings file. The previous (Project Name).cspj.settings file is reset once.
The sample program in the Sound Programmer's Guide has been revised to match the API equivalent to NW4C-0.5.0.
A bug has been fixed where the correct current playback position could not be obtained using WaveSoundHandle::GetPlaySamplePosition().
A bug has been fixed where the correct current playback position could not be obtained using StreamSoundHandle::GetPlaySamplePosition().
A bug has been fixed where control flow would not return if SoundSystem::Finalize() was called.
A bug has been fixed where control flow would not return if stream sound playback was stopped.
The following bugs related to pausing sounds when running on CTR-TEG2 have been fixed.
Fixed a bug that caused errors and internal errors to occur during attempts to convert a project with groups that referenced disabled items.
Fixed a bug that prevented errors from being displayed correctly during conversion of a bank with duplicate program numbers or an instrument that was not between 0 and 255.
A bug has been fixed that caused an internal error to occur upon an attempt to convert a project satisfying the following conditions.
The following bugs have been fixed beginning from the update to CTR_SDK-0.8.2.
The maximum number of tracks that can be added to a stream has been changed to 4. Specifications have changed so that a "!" icon is displayed when there are five or more tracks on the Multi-Track Setup dialog. This has been changed so the icon is displayed.
A bug has been fixed where a conversion error resulted when 16 or more tracks were allocated by a sequence sound (alloctrack 0xffff for a .cseq text sequence).
Attaching five or more tracks to a stream now causes an error.
Removed unnecessary parameters from ADPCM-encoded waveform data. This includes
Note that compatibility is not preserved with old versions of the data or libraries. You must reconvert data when you use version 0.5.0 or later of the NW4C libraries.
A description of the nw::snd::SoundArchive::SetExternalFileRoot function has been added to the Function Reference Manual.
A troubleshooting section has been added to the appendices of the User's Guide.
A description of envelope application targets related to the instrument list and percussion list pages in the User's Guide have been gathered together on the instrument parameters page.
Due to problems with execution stopping on an assert when the heap size of the player heap equaled certain values, specifications have changed so that execution stops on an assert if the buffer passed to the SoundArchivePlayer::Initialize function is not aligned at 32-byte boundaries.
For more details, see the reference manual.
Although threads are created inside SoundSystem::InitSoundSystem, specifications have changed so that the user passes the memory for the thread stack.
The functions InitSoundSystem and ShutdownSoundSystem have been renamed to Initialize and Finalize to match the naming conventions of CTR_SDK functions.
In previous versions, InitSoundSystem was overloaded as two types, but with this change there is now only one type. The types and names of member variables of the SoundSystemParam structure have been changed accordingly.
For more details, see the reference manual.
The following function names have been changed to match the naming conventions for functions of the CTR_SDK.
Fixed a bug that sometimes prevented preprocessor instructions in MUS files from being included in the CSEQ files when NITRO-SoundMaker intermediate files were imported.
A bug that caused per-region envelope specifications for banks to be lost when NITRO-SoundMaker intermediate files were imported has been fixed.
A bug that caused waveform data conversion to fail for some sampling rates has been fixed.
A bug has been fixed where calling the SoundArchive::GetSoundUserParam function would result in a link error.
A bug has been fixed where groups could not be loaded.
A bug has been fixed where execution would fail on an assert while loading data when loading separate waveform archives was enabled.
A bug has been fixed where execution would stop when loading waveform icons with the individual load setting set to ON.
The Sound Programmer's Guide was comprehensively revised to reflect features equivalent to NW4C-0.4.1.
The following reference manual entries have been added.
OutputMode
SrcType
The following points in the Sound System Manual have been changed or revised.
The SoundArchive::GetSoundUserParam function has been added to access user information regarding sounds that can be set under SoundMaker.
For more information, see the Reference Manual.
The demos holdSound and labelString have been added to the $NW4C_ROOT/demos/snd/ directory.
Features for verifying operations included in demo samples have been deleted. The waveArchive demo has also been deleted.
A bug has been fixed where even if the master volume was changed using the nw::snd::SoundSystem::SetMasterVolume function, there was no actual discernable difference in the sound.
A bug that caused Sample Maps to be displayed backwards when PCM8 and ADPCM were used as compression formats for the waveform files has been fixed.
A bug that caused an error when new sequence sounds were created and thus prevented items from being added has been fixed.
A bug has been fixed where currently cannot unsupported features were being displayed on the GUI.
The Register Related Items setting can now be specified from the Create New Group dialog box.
A feature has been added that allows projects for other platforms (for example, NintendoWare for Revolution SoundMaker and NITRO-SoundMaker) to be imported. Such projects can be imported by selecting File → Import → Project from Other Platform. Then, in the Open dialog box, select an .rspj, .sprj, or .sarc file with the Files of type: set to Project from other platform.
In order to support compilation with RVCT, the BOM was removed for CSID files.
Updated the binary waveform file format (.bcwav) in order to support the TEG2 hardware. To play legacy sounds on a TEG2 board, you'll have to reconvert the Sound Archives.
The sound library now supports TEG2.
The sound playback interface used by functions such as nw::snd::SoundStartable::StartSound has been adjusted.
A bug has been fixed with some demos where noise would result when using stream sounds.
Creating a new bank using the Create New Bank dialog box would create a file with the .rbnk extension, but this bug has been fixed.
If a new instrument was created when there were no items registered in the instrument list, the program number would start from [1] instead of [0]. That has been corrected.
A bug has been fixed where changing a bank within the Multibank Settings dialog would only change the display without actually changing the data internally.
Fixed a bug that prevented users from editing envelopes if an instrument's envelope setting was changed from Specify Envelopes by Instrument to Specify Envelopes by Region, unless the user reopened the project.
Editing an envelope for an instrument in the Parameters panel would cause an exception-type error to occur, but this bug has been fixed.
When sound set files were saved, the sound's Player priorities would not be saved correctly, but this bug has been fixed.
If the Project Tree was minimized while a sound set's name was being edited, the application would stop responding, but this bug has been fixed.
When multiple list items were dragged and dropped, the list order would change in the place where they were moved. The problem was fixed.
Specifying an item name that didn't exist among the group items used to cause an application error, but this bug has been fixed.
When reference waveforms for the sample maps were changed, the folder displayed in the Open File dialog box would not be the folder in which the waveforms are registered. That problem was fixed.
When the File Path list item was changed, the registered file name would not be filled in for Filename in the Open File dialog box. That problem has been fixed.
An exception error would occur if the user specified a file by double-clicking in a blank part of the sample map. That problem has been fixed.
An exception error would occur if the Bank tab was closed while a bank-list was being edited. That problem has been fixed.
The names of the items in the Project Settings area of the project file were not being loaded correctly, but this bug has been fixed.
Running a conversion operation would cause all opened bank panels to close, but this bug has been fixed.
Corrected the following bugs in SoundMaker:
Update conversion would fail to run after the following operations were done, but this issue has since been corrected.
If an error occurred while converting an instrument, the user would not be able to jump to the cause of the error from the Conversion Log pane, but this bug has now been fixed.
Although there did not used to be a check, a check has been added for inconsistencies in binary file versions and library versions for some sound-related files.
The libnw_snddec.a library has been deleted. Equivalent functionality is provided by PcSDK and CTR_SDK.
Builds under CTR_SDK are now possible. At present, playback can be confirmed only for some sounds.
Attempting to open a project when banks are registered in the Preview Bank would always result in an error, after which the project could not be opened. This bug has been fixed.
Fixed a bug that prevented a group's Data Size value from being updated if the Output Method of that group group was set to "Don't output."
If a nested group contained any wave sound sets or a banks for which Waveform Archive was set to Automatic (Shared), a conversion error would occur, but this bug has been fixed.
If the version of a Project Settings file supported by SoundMaker doesn't match the version of the Project Settings file being loaded, the application will no longer load the settings.
This specification change is a temporary fix; in future versions, it will be possible to load Project Settings files created using older versions of the application.
Added the Register Related Items column to the group items list.
It is now possible to include all related items by changing this setting. For example, you can now register all banks and/or waveform archives referenced by a sequence sound within a group.
A bug has been fixed where changing a bank within the Multibank Settings dialog would only change the display without actually changing the data internally.
If data created under NintendoWare 0.2.0 is used under NintendoWare 0.2.1,
Specifications of the nw::snd::SoundDataManager::LoadData function have been added.
Up to this version, unless banks and wave sound data were already loaded, associated waveform archives could not be loaded. These waveform archives can now be loaded.
For example, data would fail to load up to this version when making a call such as LoadData(SEQ_MARIOKART, LOAD_WARC). However, now only waveform archives associated with the bank referenced by SEQ_MARIOKART can be loaded.
The originalSoundHeap demo has been added as a reference for users who are implementing their own original sound heap.
The MemorySoundArchive class, for dealing with binary sound archive files deployed in memory, has been added.
For details, see the memorySoundArchive demo.
Fixed a bug in which, if the user initiated an update and convert operation after changing the output location, some of the files would not be output to the new location.
The output filenames for binary stream sounds were changed as follows:
A bug was fixed in which the items within HTML sound lists would always be output, regardless of whether they were configured for output.
If a project file was moved and then reopened, an error message would be displayed, and users were unable to open the project until they deleted the Project Settings file. This bug has been fixed.
Added a button to the toolbar of the main window that displays the Preview Bank pane.
MIDI signals received from the device configured in the MIDI Sequencer Input Devices field would not play through preview banks. This bug has been fixed.
The code for creating a new sound set had a bug that prevented waveform archives from displaying in the project tree. This bug also prevented saved projects from being opened, but it has been fixed.
A note regarding the fact that documents have been written based on Revolution documentation has been added to sound-related documents.
A bug that involved batch edits to waveform archives was fixed.
It is now possible to perform batch edits on cells within waveform archives that are set to load individually.
Descriptions of the role of waveform archives and individual loading under Waveform Archive on the Sound Set tab have been revised.
The description of the output method under Group on the Sound Set tab has been revised.
Information related to the context menu in the description of preview bank operations under Preview Bank of the Preview feature has been deleted.
A table giving the relationship of sound playback operations under Overview of the Preview feature has been revised.
A bug that involved list operations for sequence sounds has been fixed.
Copy and paste operations in the sequence sound list would cause the bank settings for sequence sounds to become invalid, after which they no longer displayed correctly. This bug has been fixed.
A bug that involved searching references in waveform archives was fixed.
Searches for references to waveform archives would always return zero results in the Search Results pane, but this has been fixed.
A bug with sequence sound lists was fixed.
A bug was fixed where attempts to change banks would only change the display without changing the actual banks.
A bug with the group item creation dialog has been fixed.
Waveform archives could not be selected, but this has been fixed.
The following issues with SoundMaker have been corrected:
CONFIDENTIAL